Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Azure Developer CLI fornece suporte para Helm e Kustomize para melhorar o processo de provisionamento e implementação do Azure Kubernetes Service (AKS). Helm e Kustomize são ferramentas que ajudam a configurar e gerir aplicações Kubernetes. Nas secções seguintes, aprende como ativar e personalizar o suporte para estas ferramentas nos seus azd modelos.
Ativar o suporte ao Helm
Para ativar o suporte Helm, certifique-se de que tem a CLI Helm instalada. Ative a flag de funcionalidade azd executando o comando azd config:
azd config set alpha.aks.helm on
Configuração e implantação do Helm
azd O suporte Helm permite-lhe definir uma lista de cartas Helm para instalar para cada azd serviço. Utilize as seções de configuração helm e k8s no ficheiro azure.yaml para definir uma lista de repositórios ou lançamentos helm para instalar.
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
O azd deploy comando gere as seguintes tarefas usando a helm secção:
- Adiciona quaisquer repositórios de Helm referenciados e/ou atualiza-os
- Instala os gráficos de Helm referenciados
- Aguarda o lançamento do Helm para transitar para o estado de implantação
- Lista os serviços e entradas relevantes definidos dentro dos recursos implementados
Ativar o suporte Kustomize
Para ativar o suporte Kustomize, certifique-se de que tem a CLI Kustomize instalada. Ative a funcionalidade Kustomize através da flag azd usando o comando azd config.
azd config set alpha.aks.kustomize on
Configuração e implementação com o Kustomize
A funcionalidade Kustomize permite-lhe usar Kustomize como parte das implementações do Kubernetes e oferece as seguintes funcionalidades:
- Suporta
baseevariantconfigurações -
editsque pode ser executado antes das implementações -
configMapGeneratoremazdambientes
Configure as funcionalidades do Kustomize usando as seguintes azure.yaml secções:
-
dir: Caminho relativo do serviço para o diretório Kustomize que contém o ficheirokustomization.yaml.- Suporta substituição de variáveis de ambiente.
-
edits: Array de expressões de edição que são aplicadas antes da implementação- Suporta substituição de variáveis de ambiente
-
env: Mapa dos pares chave/valor gerados antes da implementação- Os valores do mapa suportam substituição de variáveis de ambiente
Casos de uso
azd suporta os seguintes casos de uso Kustomize.
Implementar manifestos K8s
A configuração seguinte executa um kubectl apply -k <dir> comando que aponta para a pasta manifests, que contém um 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
Use overlays para implantar em diferentes variantes
Este caso de uso é tipicamente usado para ter configurações personalizadas para implantação em diferentes estágios ou ambientes, como dev, test e prod. No exemplo seguinte, o utilizador pode especificar a ${AZURE_ENV_NAME} variável de ambiente dentro do diretório kustomize para usar automaticamente os ambientes azd como convenção de sobreposição predefinida:
# 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}
Modificar kustomization.yaml antes da implementação
Um caso de uso comum para modificar o kustomization.yaml é modificar os nomes/versões das imagens do contentor usados como parte da sua implementação.
O exemplo seguinte especifica uma edits configuração e define qualquer comando válido kustomize edit ... .
azd interpola automaticamente quaisquer variáveis de ambiente referenciadas no edit comando.
# 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}
Usar azd variáveis de ambiente dentro dos mapas de configuração
Mapas de configuração ou segredos são críticos na configuração dos clusters K8s. Como o kustomize não suporta substituição direta de variáveis de ambiente , podemos usar o kustomize configMapGenerator com um .env ficheiro.
A kustomize secção de configuração suporta uma env secção onde um ou vários pares chave/valor podem ser definidos. Esta configuração gera automaticamente um ficheiro temporário .env dentro do seu diretório kustomization que pode ser usado por um configMapGenerator.
A configuração seguinte cria um .env com os pares chave/valor especificados.
# 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}
O configMapGenerator gera um mapa de configuração do K8s com o nome especificado e contém todos os pares chave/valor referenciados dentro do ficheiro .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