Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La CLI para desarrolladores de Azure proporciona compatibilidad con Helm y Kustomize para mejorar el proceso de aprovisionamiento e implementación en Azure Kubernetes Service (AKS). Helm y Kustomize son herramientas que le ayudan a configurar y administrar aplicaciones de Kubernetes. En las secciones siguientes, aprenderá a habilitar y personalizar la compatibilidad con estas herramientas en las azd plantillas.
Habilitación de la compatibilidad con Helm
Para habilitar la compatibilidad con Helm, asegúrese de que tiene instalada la CLI de Helm. Habilite la bandera de características de azd ejecutando el comando azd config.
azd config set alpha.aks.helm on
Configuración y despliegue de Helm
azd La compatibilidad con Helm le permite definir una lista de gráficos de Helm que se van a instalar para cada azd servicio. Utilice las secciones de configuración helm y k8s en el archivo azure.yaml para definir una lista de repositorios o lanzamientos de Helm que se van a 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
El azd deploy comando controla las siguientes tareas mediante la helm sección :
- Agrega los repositorios de Helm a los que se hace referencia o los actualiza.
- Instala los gráficos de Helm a los que se hace referencia.
- Espera a que la versión de Helm pase a un estado implementado.
- Enumera los servicios y entradas pertinentes definidos dentro de los recursos implementados.
Habilitación de la compatibilidad con Kustomize
Para habilitar la compatibilidad con Kustomize, asegúrese de que tiene instalada la CLI de Kustomize. Habilite la azd marca de características Kustomize mediante el azd config comando :
azd config set alpha.aks.kustomize on
Configuración e implementación de Kustomize
La característica Kustomize permite usar Kustomize como parte de las implementaciones de Kubernetes y proporciona las siguientes características:
- Admite las configuraciones
baseyvariant -
editsque se puede ejecutar antes de las implementaciones -
configMapGeneratorconazdentornos
Configure las características de Kustomize mediante las secciones siguientes azure.yaml :
-
dir: ruta de acceso relativa del servicio al directorio Kustomize que contiene unkustomization.yamlarchivo.- Admite la sustitución de variables de entorno.
-
edits: matriz de expresiones de edición que se aplican antes de la implementación- Admite la sustitución de variables de entorno
-
env: Mapa de pares clave-valor generados antes de la implementación- Los valores de asignación admiten la sustitución de variables de entorno
Casos de uso
azd admite los siguientes casos de uso de Kustomize.
Implementación de manifiestos K8s
La siguiente configuración ejecuta el comando kubectl apply -k <dir> que señala la carpeta de su manifiesto que contiene un 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
Uso de capas superpuestas para desplegar con diferentes variantes
Este caso de uso se usa normalmente para tener configuraciones personalizadas para la implementación en diferentes fases o entornos, como dev, test y prod. En el ejemplo siguiente, el usuario puede especificar la ${AZURE_ENV_NAME} variable de entorno dentro del directorio kustomize para usar automáticamente los entornos azd como convención de superposición predeterminada:
# 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 de la implementación
Un caso de uso común para modificar el kustomization.yaml es cambiar los nombres o versiones de la imagen de contenedor que se utilizan como parte de la implementación.
En el ejemplo siguiente se especifica una edits configuración y se establece cualquier comando válido kustomize edit ... .
azd interpola automáticamente las variables de entorno a las que se hace referencia en el 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}
Uso de azd variables de entorno en mapas de configuración
Los mapas de configuración o los secretos son fundamentales para configurar los clústeres K8s. Dado que kustomize no admite ninguna sustitución directa de variables de entorno , podemos usar kustomize configMapGenerator con un .env archivo .
La kustomize sección de configuración admite una env sección en la que se pueden definir uno o varios pares clave-valor. Esta configuración genera automáticamente un archivo temporal .env dentro del directorio de kustomization que puede ser utilizado por un configMapGenerator.
La siguiente configuración crea un .env con los pares clave-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}
configMapGenerator genera un mapa de configuración de K8s con el nombre especificado y contiene todos los pares clave-valor a los que se hace referencia en el .env archivo.
# kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
- service.yaml
- ingress.yaml
configMapGenerator:
- name: todo-web-config
envs:
- .env