1. 은행 계좌 조회

구성 : 은행 시스템에 자신의 계좌에 잔고 조회를 할 수 있는 시스템 - Flask 로 웹 애플리케이션 구성, etcd 로 데이터베이스 구성

https://github.com/tigera/ccol1/blob/main/yaobank.yaml

 

출처: https://gasidaseo.notion.site/MSA-14-382799b72d5d49a9a15dcafd123c1aa8#df5cb24d8e88436e92fe131c5b0fd97e

 

# 생성
curl -s -O https://raw.githubusercontent.com/tigera/ccol1/main/yaobank.yaml
sed -i 's/nodeSelector/#nodeSelector/g' yaobank.yaml && sed -i 's/kubernetes.io/#kubernetes.io/g' yaobank.yaml
sed -i 's/istio-injection: disabled/istio-injection: enabled/g' yaobank.yaml  # (옵션) istio 사용 시 Auto Injection with namespace label
kubectl apply -f yaobank.yaml

# (옵션) kubens 네임스페이스 변경
kubens yaobank

# 확인
kubectl get all -n yaobank
[root@k8s-m:~ (DKOS-K8S:yaobank)]# kubectl get all
NAME                            READY   STATUS    RESTARTS   AGE
pod/customer-68d67b588d-l79tc   1/1     Running   0          6m59s
pod/database-899b4f58f-vjxgv    1/1     Running   0          6m59s
pod/summary-748b977d44-k47zw    1/1     Running   0          6m59s
pod/summary-748b977d44-pls6q    1/1     Running   0          6m59s

NAME               TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
service/customer   NodePort    10.104.149.17   <none>        80:30180/TCP   6m59s
service/database   ClusterIP   10.101.28.129   <none>        2379/TCP       7m
service/summary    ClusterIP   10.97.223.187   <none>        80/TCP         7m

NAME                       READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/customer   1/1     1            1           6m59s
deployment.apps/database   1/1     1            1           7m
deployment.apps/summary    2/2     2            2           6m59s

NAME                                  DESIRED   CURRENT   READY   AGE
replicaset.apps/customer-68d67b588d   1         1         1       6m59s
replicaset.apps/database-899b4f58f    1         1         1       7m
replicaset.apps/summary-748b977d44    2         2         2       6m59s

# customer 파드 웹 접속 확인
CUSTOMER=$(kubectl get pods -n yaobank -l app=customer -o jsonpath={.items[0].status.podIP})
curl $CUSTOMER
혹은
curl <노드IP>:>NodePort>

apt install -y lynx
lynx -dump <노드IP>:<NodePort>
[root@k8s-m:~ (DKOS-K8S:yaobank)]# lynx -dump 192.168.100.10:30180
                              Welcome to YAO Bank
Name: Spike Curtis
Balance: 2389.45
   [1]Log Out >>
References
   1. http://192.168.100.10:30180/logout

# customer 파드 Shell 접속 후 데이터베이스(etcd) 파드 접속 확인
CUSTOMER_POD=$(kubectl get pods -n yaobank -l app=customer -o name)
kubectl exec -it $CUSTOMER_POD -n yaobank -c customer -- /bin/bash
-----------------------------------------
curl -s http://database:2379/v2/keys?recursive=true | python -m json.tool
exit
-----------------------------------------

# 혹은 직접 데이터베이스(etcd) 파드 접속 확인 : 5명의 account(고객) 정보 출력
DATABASE=$(kubectl get pods -n yaobank -l app=database -o jsonpath={.items[0].status.podIP})
curl -s $DATABASE:2379/v2/keys | jq
curl -s $DATABASE:2379/v2/keys?recursive=true | jq

# 삭제
kubectl delete -f yaobank.yaml

'Kubernetes > Tool' 카테고리의 다른 글

Helm (외부자료)  (0) 2025.02.27
(1) KIND란?  (0) 2025.01.24
클러스터 설치 - kubeadm ver  (0) 2023.12.12
kubectl 명령어로 익히는 쿠버네티스의 주요 오브젝트  (0) 2023.11.28
환경설정 k (kubectl), krew 플러그인  (1) 2023.11.27

+ Recent posts