연습 - configmaps를 사용하여 애플리케이션 향상
애플리케이션 백 엔드를 배포했으므로 이제 ConfigMap을 사용하여 애플리케이션 프런트 엔드를 배포해야 합니다.
시작하기 전에
참고
이 연습은 선택 사항입니다. 이 연습을 완료하려면 시작하기 전에 Azure 구독을 만들어야 합니다. Azure 계정이 없거나 지금 만들지 않으려는 경우 제시되는 정보를 이해할 수 있도록 지침을 끝까지 읽어 보세요.
ConfigMap 만들기
configmap.yaml
이라는 새 YAML 파일을 만들고 다음 코드에 붙여넣어 ConfigMap 사양을 만듭니다.apiVersion: v1 kind: ConfigMap metadata: name: ship-manager-config namespace: default data: config.js: | const config = (() => { return { 'VUE_APP_BACKEND_BASE_URL': 'http://ship-manager-backend.{your-dns-zone}.aksapp.io', } })()
앞에서 만든 ZONE_NAME 변수의 값으로 바꿉
{your-dns-zone}
다.파일을 저장하고 닫습니다.
kubectl apply
명령을 사용하여 클러스터에 변경 내용을 적용합니다.kubectl apply -f configmap.yaml
kubectl get configmap
명령을 사용해 ConfigMap을 쿼리하여 결과를 확인합니다.kubectl get configmap ship-manager-config
애플리케이션 만들기
frontend.yaml
이라는 새 YAML 파일을 만들고 다음 코드에 붙여넣어 배포 사양을 만듭니다.apiVersion: apps/v1 kind: Deployment metadata: name: contoso-ship-manager-frontend namespace: default spec: replicas: 1 selector: matchLabels: app: contoso-ship-manager-frontend template: metadata: labels: app: contoso-ship-manager-frontend spec: containers: - image: mcr.microsoft.com/mslearn/samples/contoso-ship-manager:frontend name: contoso-ship-manager-frontend ports: - containerPort: 80 name: http volumeMounts: - name: config mountPath: /usr/src/app/dist/config.js subPath: config.js volumes: - name: config configMap: name: ship-manager-config ---
ConfigMap이 Deployment 개체에 탑재되는 방법을 확인합니다. 키를 지정하지 않습니다. 즉,
subPath
키를 지정해야 합니다.subpath
는 컨테이너 내의 파일 이름입니다.세 개의 대시 아래에 다음 코드를 붙여넣어 서비스 및 수신 사양을 만듭니다.
apiVersion: v1 kind: Service metadata: name: contoso-ship-manager-frontend namespace: default spec: selector: app: contoso-ship-manager-frontend ports: - name: http port: 80 targetPort: 80 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: contoso-ship-manager-frontend namespace: default annotations: spec.ingressClassName: webapprouting.kubernetes.azure.com spec: rules: - host: contoso-ship-manager.{your-dns-zone}.aksapp.io http: paths: - path: / pathType: Prefix backend: service: name: contoso-ship-manager-frontend port: name: http
수신에서 이전에 만든 ZONE_NAME 변수의 값으로 바꿉
{your-dns-zone}
다.파일을 저장한 후 닫습니다.
kubectl apply
명령을 사용하여 애플리케이션을 배포합니다.kubectl apply -f frontend.yaml
명령을 사용하여 Kubernetes API를 쿼리하여 결과를 확인합니다
kubectl get deployment
.kubectl get deployment contoso-ship-manager-frontend
API를 사용할 수 있는 경우 다음 예제와 유사한 출력을 가져와야 합니다.
NAME READY UP-TO-DATE AVAILABLE AGE contoso-ship-manager-frontend 1/1 1 1 18s