다른 구성 요소
이번 실습에서는 Kustomize의 강력한 기능을 사용하여 샘플 애플리케이션의 나머지 부분을 효율적으로 배포할 것입니다. 다음 kustomization 파일은 다른 kustomization들을 참조하고 여러 구성 요소를 함께 배포하는 방법을 보여줍니다:
~/environment/eks-workshop/base-application/kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- catalog
- carts
- checkout
- orders
- ui
- other
팁
catalog API가 이 kustomization에 포함되어 있는데, 이미 배포하지 않았나요?
Kubernetes는 선언적 메커니즘을 사용하기 때문에 catalog API의 매니페스트를 다시 적용할 수 있으며, 모든 리소스가 이미 생성되어 있으므로 Kubernetes가 아무 작업도 수행하지 않을 것으로 예상할 수 있습니다.
이 kustomization을 클러스터에 적용하여 나머지 구성 요소를 배포합니다:
~$kubectl apply -k ~/environment/eks-workshop/base-application
완료되면 kubectl wait을 사용하여 계속 진행하기 전에 모든 구성 요소가 시작되었는지 확인할 수 있습니다:
~$kubectl wait --for=condition=Ready --timeout=180s pods \
-l app.kubernetes.io/created-by=eks-workshop -A
이제 각 애플리케이션 구성 요소에 대한 Namespace가 생성됩니다:
~$kubectl get namespaces -l app.kubernetes.io/created-by=eks-workshop
NAME STATUS AGE
carts Active 62s
catalog Active 7m17s
checkout Active 62s
orders Active 62s
other Active 62s
ui Active 62s
구성 요소를 위해 생성된 모든 Deployment도 확인할 수 있습니다:
~$kubectl get deployment -l app.kubernetes.io/created-by=eks-workshop -A
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
carts carts 1/1 1 1 90s
carts carts-dynamodb 1/1 1 1 90s
catalog catalog 1/1 1 1 7m46s
checkout checkout 1/1 1 1 90s
checkout checkout-redis 1/1 1 1 90s
orders orders 1/1 1 1 90s
orders orders-postgresql 1/1 1 1 90s
ui ui 1/1 1 1 90s
샘플 애플리케이션이 이제 배포되었으며 이 워크샵의 나머지 실습에서 사용할 기반을 제공할 준비가 되었습니다!
팁
Kustomize에 대해 더 자세히 알고 싶다면 이 워크샵에서 제공하는 선택적 모듈을 살펴보세요.