Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A CLI do Desenvolvedor do Azure fornece suporte para Helm e Kustomize melhorarem o processo de provisionamento e implantação no AKS (Serviço de Kubernetes do Azure). Helm e Kustomize são ferramentas que ajudam você a configurar e gerenciar aplicativos kubernetes. Nas seções a seguir, você aprenderá a habilitar e personalizar o suporte para essas ferramentas em seus azd modelos.
Habilitar o suporte do Helm
Para habilitar o suporte do Helm, verifique se você tem a CLI do Helm instalada. Habilite o sinalizador de recursos do azd helm executando o azd config comando:
azd config set alpha.aks.helm on
Configuração e implantação do Helm
azd O suporte ao Helm permite que você defina uma lista de gráficos do Helm a serem instalados para cada azd serviço. Use as seções de configuração helm e k8s no arquivo azure.yaml para definir uma lista de repositórios ou releases do helm a serem instalados.
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 manipula as seguintes tarefas usando a helm seção:
- Adiciona todos os repositórios do Helm referenciados e/ou os atualiza
- Instala os gráficos do Helm referenciados
- Aguarda que um lançamento do Helm faça a transição para um estado implantado
- Lista serviços e entradas relevantes definidos nos recursos implantados
Habilitar o suporte ao Kustomize
Para habilitar o suporte ao Kustomize, verifique se você tem a CLI do Kustomize instalada. Habilite o azd sinalizador de recurso Kustomize usando o azd config comando:
azd config set alpha.aks.kustomize on
Configuração e implantação do Kustomize
O recurso Kustomize permite que você use o Kustomize como parte das implantações do Kubernetes e fornece os seguintes recursos:
- Suporta
baseevariantconfigurações -
editsque pode ser executado antes das implantações -
configMapGeneratorem ambientesazd
Configure os recursos do Kustomize usando as seguintes azure.yaml seções:
-
dir: caminho relativo do serviço para o diretório Kustomize que contém um arquivokustomization.yaml.- Dá suporte à substituição de variável de ambiente.
-
edits: matriz de expressões de edição que são aplicadas antes da implantação- Dá suporte à substituição de variável de ambiente
-
env: mapa de pares chave/valor gerados antes da implantação- Valores de mapa dão suporte à substituição de variável de ambiente
Casos de uso
azd dá suporte aos seguintes casos de uso do Kustomize.
Implantar manifestos K8s
A configuração a seguir executa o comando kubectl apply -k <dir> que aponta para a pasta de 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
Usar camadas sobrepostas para implantar com variantes diferentes
Esse caso de uso normalmente é usado para ter configurações personalizadas para implantação em diferentes estágios ou ambientes, como dev, test e prod. No exemplo a seguir, o usuário pode especificar a ${AZURE_ENV_NAME} variável de ambiente no diretório kustomize para usar automaticamente os ambientes do azd como sua convenção de sobreposição padrão:
# 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 implantação
Um caso de uso comum para modificar o kustomization.yaml é alterar os nomes/versões de imagens de contêiner que são utilizados como parte da sua implantação.
O exemplo a seguir especifica uma configuração edits e define qualquer comando válido kustomize edit ... .
azd interpola automaticamente todas as variáveis de ambiente referenciadas dentro do 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 em mapas de configuração
Mapas ou segredos de configuração são críticos na configuração de seus clusters K8s. Como o kustomize não dá suporte a nenhuma substituição direta de variável de ambiente , podemos usar o kustomize configMapGenerator com um .env arquivo.
A kustomize seção de configuração dá suporte a uma env seção em que um ou muitos pares chave/valor podem ser definidos. Essa configuração gera automaticamente um arquivo temporário .env no diretório kustomization que pode ser usado por um configMapGenerator.
A configuração a seguir 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}
Gera um mapa de configuração K8s com o nome especificado e que contém todos os pares chave/valor referenciados no arquivo .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