포스트

02. aks 따라하기 클러스터 만들고 배포하기

02. aks 따라하기 클러스터 만들고 배포하기

02. AKS 따라하기 - 클러스터 만들고 배포하기

AKS 클러스터 만들기

1
az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 1 --generate-ssh-keys --attach-acr kimkyuheongregistry
  • node count는 2 이상으로 하면 배포가 되지 않는다.
  • 지역과 배포 모델을 잘 설정해야한다…
  • 최대한 작은 용량과 적은 노드로 클러스터를 만들어야 오류가 발생하지 않는다.

kubectl을 사용해 클러스터 연결

1
 az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
  • 로컬 kubect1과 AKS 클러스터를 상호 작용 할 수 있도록 설정 업데이트
  • AKS 클러스터에서 성공적으로 만들어진 리소스를 볼 수 있다.
1
kubectl get nodes
  • pod 확인을 통해 배포를 확인
1
2
3
NAME                                STATUS   ROLES   AGE     VERSION
aks-agentpool-18280304-vmss000000   Ready    agent   6h59m   v1.28.10
virtual-node-aci-linux              Ready    agent   6h57m   v1.25.0-vk-azure-aci-1.6.1

배포

매니페스트 파일 업데이트

  • /aks-store-quickstart.yaml 파일에 대해서 적절하게 image 를 수정한다.
1
2
3
4
5
6
7
8
9
10
11
containers:
...
- name: order-service
  image: <acrName>.azurecr.io/aks-store-demo/order-service:latest
...
- name: product-service
  image: <acrName>.azurecr.io/aks-store-demo/product-service:latest
...
- name: store-front
  image: <acrName>.azurecr.io/aks-store-demo/store-front:latest
...
  • image 주소는 aks portal에서 확인할 수도 있다.

배포

  • 매니페스트 파일 분석하고 , 정의된 쿠버네티스 개체를 만드는 명령어를 사용해 배포
1
kubectl apply -f aks-store-quickstart.yaml
  • pod을 확인
1
kubectl get pods

# Issue Pod이 정상적으로 동작하지 않은 이슈가 발생

1
2
3
4
5
6
7
order-service-6769f779fb-ll4ll      0/1     ImagePullBackOff   0          18m
order-service-779f786b64-fx5qm      0/1     ImagePullBackOff   0          24m
product-service-7b658f9b77-nhqzh    0/1     ImagePullBackOff   0          24m
product-service-8676b7ccf-7qbfp     0/1     ImagePullBackOff   0          82m
store-front-7d8674668-gpgvh         0/1     ImagePullBackOff   0          24m
store-front-7f9ff8f654-96rcs        0/1     ImagePullBackOff   0          82m

  • kubectl get pods 를 통해 실행했지만 ImagePullBackOff 상태로 인해 서비스가 가용되지 않음

Pod의 상태 확인

1
kubectl describe pod store-front-7d8674668-gpgvh 

1. AKS 클러스터에 연결 가능한지 테스트

1
az aks check-acr --resource-group myResourceGroup --name myAKSCluster --acr kimkyuheongregistry.azurecr.io
1
2
az aks update-credentials --resource-group myResourceGroup --name myAKSCluster --reset-service-principal --service-principal <service-principal-id> --client-secret <service-principal-password>

1
az aks update -n myAKSCluster -g myResourceGroup --attach-acr kimkyuheongregistry

AKS 클러스터 재 연결을 시도해보았지만 여전히 ImagePullBackOff 상태가 지속됨

2. Pod 재배포

현재 Deployment 확인

1
kubectl get deployment store-front -o yaml

Deployment 업데이트

1
kubectl edit deployment store-front

Edit cancelled, no changes made. 로 인해 해결되지 않음

3. Pod 삭제

store-front pod을 삭제하였다

1
kubectl delete pod store-front-7d8674668-gpgvh

pod들이 Running으로 바뀌었다.

1
2
3
4
5
6
7
makeline-service-6fc9df6887-kv8q9   1/1     Running   0          154m
mongodb-0                           1/1     Running   0          154m
order-service-779f786b64-fx5qm      1/1     Running   0          161m
product-service-7b658f9b77-nhqzh    1/1     Running   0          161m
rabbitmq-0                          1/1     Running   0          4h20m
store-admin-74df59cbd5-f2pxg        1/1     Running   0          154m
store-front-7d8674668-w2ckk         1/1     Running   0          49s
  • store-front만 삭제하였는데 왜 다른 pod들이 정상으로 돌아간 이유는 모르겠음.
  • 2번의 update에서 해결되었지만 초기화 작업을 거치는 동안 해결 되었을 가능성도 있다고 생각한다.

  • 정상적으로 pod이 Runnuing 상태가 된다면
1
kubectl get service store-front --watch
1
2
3
NAME          TYPE           CLUSTER-IP    EXTERNAL-IP      PORT(S)        AGE
store-front   LoadBalancer   10.0.190.33   135.237.25.215   80:31128/TCP   4h24m
STATUS        REASON          MESSAGE
  • EXTERNAL-IP 를 통해 배포된 웹 사이트를 확인 할 수 있다.

리소스 정리

도커를 통해 중시 시키기

1
kubectl delete -f aks-store-quickstart.yaml

모든 pod의 제거 확인

1
kubectl get pods
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.