Azure 개발자 CLI는 AKS(Azure Kubernetes Service)에 대한 프로비저닝 및 배포 프로세스를 개선하기 위해 Helm 및 Kustomize를 지원합니다. Helm 및 Kustomize는 Kubernetes 애플리케이션을 구성하고 관리하는 데 도움이 되는 도구입니다. 앞의 섹션에서는 템플릿에서 이러한 도구 azd
에 대한 지원을 사용하도록 설정하고 사용자 지정하는 방법을 알아봅니다.
Helm 지원 사용
Helm 지원을 사용하도록 설정하려면 Helm CLI가 설치되어 있는지 확인합니다. azd
명령을 실행하여 Helm 기능 플래그를 사용하도록 설정합니다.azd config
azd config set alpha.aks.helm on
Helm 구성 및 배포
azd
Helm 지원을 사용하면 각 azd
서비스에 설치할 Helm 차트 목록을 정의할 수 있습니다. 파일의 helm
구성 섹션 및 k8s
구성 섹션을 azure.yaml
사용하여 설치할 Helm 리포지토리 또는 릴리스 목록을 정의합니다.
name: todo-nodejs-mongo-aks
metadata:
template: todo-nodejs-mongo-aks@0.0.1-beta
services:
argocd:
host: aks
k8s:
namespace: argo
service:
name: argocd-server
helm:
repositories:
- name: argo
url: https://argoproj.github.io/argo-helm
releases:
- name: argocd
chart: argo/argo-cd
version: 5.51.4
jupyterhub:
host: aks
k8s:
namespace: jupyterhub
service:
name: proxy-public
helm:
repositories:
- name: jupyterhub
url: https://hub.jupyter.org/helm-chart/
releases:
- name: jupyterhub
chart: jupyterhub/jupyterhub
version: 3.1.0
이 azd deploy
명령은 섹션을 사용하여 helm
다음 작업을 처리합니다.
- 참조된 Helm 리포지토리를 추가하고/또는 업데이트합니다.
- 참조된 Helm 차트를 설치합니다.
- Helm 릴리스가 배포된 상태로 전환될 때까지 기다립니다.
- 배포된 리소스 내에 정의된 관련 서비스 및 수신을 나열합니다.
Kustomize 지원 사용
Kustomize 지원을 사용하도록 설정하려면 Kustomize CLI가 설치되어 있는지 확인합니다. azd
다음 명령을 사용하여 Kustomize 기능 플래그를 azd config
사용하도록 설정합니다.
azd config set alpha.aks.kustomize on
구성 및 배포 Kustomize
Kustomize 기능을 사용하면 Kubernetes 배포의 일부로 Kustomize를 사용할 수 있으며 다음 기능을 제공합니다.
- 지원 및
base
variant
구성 edits
배포 전에 실행할 수 있는configMapGenerator
환경과 함께azd
다음 azure.yaml
섹션을 사용하여 Kustomize 기능을 구성합니다.
dir
: 서비스에서 파일이 포함된 Kustomize 디렉터리에 대한 상대 경로입니다kustomization.yaml
.- 환경 변수 대체를 지원합니다.
edits
: 배포 전에 적용되는 편집 식의 배열- 환경 변수 대체 지원
env
: 배포 전에 생성된 키/값 쌍의 맵- 지도 값은 환경 변수 대체를 지원합니다.
사용 사례
다음 Kustomize 사용 사례는 .에서 azd
지원됩니다.
k8s 매니페스트 배포
다음 구성은 다음을 kubectl apply -k <dir>
포함하는 매니페스트 폴더를 가리키는 명령을 수행합니다.kustomization.yaml
# azure.yaml
name: todo-nodejs-mongo-aks
metadata:
template: todo-nodejs-mongo-aks@0.0.1-beta
services:
api:
project: ./src/api
language: js
host: aks
k8s:
kustomize:
dir: ./kustomize/base
오버레이를 사용하여 다양한 변형으로 배포
이 사용 사례는 일반적으로 다른 단계 또는 환경(예: dev
test
prod
및)에 배포하기 위한 사용자 지정 구성을 포함하는 데 사용됩니다. 다음 예제에서 사용자는 kustomize 디렉터리 내에서 환경 변수를 지정 ${AZURE_ENV_NAME}
하여 azd 환경을 기본 오버레이 규칙으로 자동으로 활용할 수 있습니다.
# azure.yaml
name: todo-nodejs-mongo-aks
metadata:
template: todo-nodejs-mongo-aks@0.0.1-beta
services:
api:
project: ./src/api
language: js
host: aks
k8s:
kustomize:
dir: ./kustomize/overlays/${AZURE_ENV_NAME}
배포 전에 수정 kustomization.yaml
수정에 kustomization.yaml
대한 일반적인 사용 사례는 배포의 일부로 사용되는 컨테이너 이미지 이름/버전을 수정하는 것입니다.
다음 예제에서는 구성을 edits
지정하고 유효한 kustomize edit ...
명령을 설정합니다. azd
는 명령 내에서 edit
참조되는 모든 환경 변수를 자동으로 보간합니다.
# azure.yaml
name: todo-nodejs-mongo-aks
metadata:
template: todo-nodejs-mongo-aks@0.0.1-beta
services:
api:
project: ./src/api
language: js
host: aks
k8s:
kustomize:
dir: ./kustomize/overlays/${AZURE_ENV_NAME}
edits:
- set image todo-api=${SERVICE_API_IMAGE_NAME}
구성 맵 내에서 환경 변수 사용 azd
구성 맵 또는 비밀은 k8s 클러스터를 구성하는 데 중요합니다. kustomize는 직접 환경 변수 대체를 지원하지 않으므로 파일로 kustomize configMapGenerator
를 .env
활용할 수 있습니다.
구성 섹션에서는 kustomize
하나 이상의 키/값 쌍을 정의할 수 있는 섹션을 지원 env
합니다. 이 구성은 에서 사용할 configMapGenerator
수 있는 kustomization 디렉터리 내에서 임시 .env
파일을 자동으로 생성합니다.
다음 구성은 지정된 키/값 쌍을 사용하여 .env
만듭니다.
# azure.yaml
name: todo-nodejs-mongo-aks
metadata:
template: todo-nodejs-mongo-aks@0.0.1-beta
services:
api:
project: ./src/api
language: js
host: aks
k8s:
kustomize:
dir: ./kustomize/overlays/${AZURE_ENV_NAME}
edits:
- set image todo-api=${SERVICE_API_IMAGE_NAME}
env:
AZURE_AKS_IDENTITY_CLIENT_ID: ${AZURE_AKS_IDENTITY_CLIENT_ID}
AZURE_KEY_VAULT_ENDPOINT: ${AZURE_KEY_VAULT_ENDPOINT}
APPLICATIONINSIGHTS_CONNECTION_STRING: ${APPLICATIONINSIGHTS_CONNECTION_STRING}
지정된 configMapGenerator
이름의 k8s 구성 맵을 생성하고 파일 내에서 참조되는 모든 키/값 쌍을 .env
포함합니다.
# kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
- service.yaml
- ingress.yaml
configMapGenerator:
- name: todo-web-config
envs:
- .env