Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure Developer CLI prend en charge Helm et Kustomize pour améliorer le processus d’approvisionnement et de déploiement sur Azure Kubernetes Service (AKS). Helm et Kustomize sont des outils qui vous aident à configurer et gérer des applications Kubernetes. Dans les sections à l’avance, vous allez apprendre à activer et personnaliser la prise en charge de ces outils dans vos azd
modèles.
Activer la prise en charge de Helm
Pour activer la prise en charge de Helm, vérifiez que l’interface CLI Helm est installée. Activez l’indicateur de azd
fonctionnalité Helm en exécutant la azd config
commande :
azd config set alpha.aks.helm on
Configuration et déploiement Helm
azd
La prise en charge de Helm vous permet de définir une liste de graphiques Helm à installer pour chaque azd
service. Utilisez les helm
sections et k8s
les sections de configuration du azure.yaml
fichier pour définir une liste de référentiels helm ou de mises en production à installer.
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
La azd deploy
commande gère les tâches suivantes à l’aide de la helm
section :
- Ajoute tous les référentiels Helm référencés et/ou les met à jour
- Installe les graphiques Helm référencés
- Attend que helm soit mis en production pour passer à un état déployé
- Répertorie les services et les ingresses pertinents définis dans les ressources déployées
Activer la prise en charge de Kustomize
Pour activer la prise en charge de Kustomize, vérifiez que l’interface CLI Kustomize est installée. Activez l’indicateur azd
de fonctionnalité Kustomize à l’aide de la azd config
commande :
azd config set alpha.aks.kustomize on
Configuration et déploiement kustomize
La fonctionnalité Kustomize vous permet d’utiliser Kustomize dans le cadre des déploiements Kubernetes et fournit les fonctionnalités suivantes :
- Prise en charge
base
etvariant
configurations edits
qui peuvent être exécutés avant les déploiementsconfigMapGenerator
avecazd
des environnements
Configurez les fonctionnalités Kustomize à l’aide des sections suivantes azure.yaml
:
dir
: chemin relatif du service vers votre répertoire Kustomize qui contient unkustomization.yaml
fichier.- Prend en charge la substitution de variable d’environnement.
edits
: tableau d’expressions de modification appliquées avant le déploiement- Prend en charge la substitution de variable d’environnement
env
: Mappage des paires clé/valeur générées avant le déploiement- Les valeurs de mappage prennent en charge la substitution des variables d’environnement
Cas d’utilisation
Les cas d’usage Kustomize suivants sont pris en charge par azd
.
Déployer des manifestes k8s
La configuration suivante exécute une kubectl apply -k <dir>
commande qui pointe vers votre dossier manifestes qui contient 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
Utiliser des superpositions pour effectuer un déploiement avec différentes variantes
Ce cas d’usage est généralement utilisé pour avoir des configurations personnalisées pour le déploiement sur différentes phases ou environnements, tels que dev
, test
et prod
. Dans l’exemple suivant, l’utilisateur peut spécifier la ${AZURE_ENV_NAME}
variable d’environnement dans le répertoire kustomize pour tirer automatiquement parti des environnements azd comme convention de superposition par défaut :
# 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}
Modifier kustomization.yaml
avant le déploiement
Un cas d’usage courant pour modifier le kustomization.yaml
fichier consiste à modifier les noms/versions d’images conteneur utilisés dans le cadre de votre déploiement.
L’exemple suivant spécifie une edits
configuration et définit n’importe quelle commande valide kustomize edit ...
. azd
interpole automatiquement toutes les variables d’environnement référencées dans la edit
commande.
# 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}
Utiliser des azd
variables d’environnement dans des mappages de configuration
Les cartes de configuration ou les secrets sont essentiels dans la configuration de vos clusters k8s. Étant donné que kustomize ne prend pas en charge la substitution de variable d’environnement directe, nous pouvons tirer parti de kustomize configMapGenerator
avec un .env
fichier.
La kustomize
section de configuration prend en charge une env
section dans laquelle une ou plusieurs paires clé/valeur peuvent être définies. Cette configuration génère automatiquement un fichier temporaire .env
dans votre répertoire kustomization qui peut être utilisé par un configMapGenerator
.
La configuration suivante crée une .env
paire clé/valeur spécifiée.
# 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}
Génère configMapGenerator
un mappage de configuration k8s avec le nom spécifié et contient toutes les paires clé/valeur référencées dans le .env
fichier.
# kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
- service.yaml
- ingress.yaml
configMapGenerator:
- name: todo-web-config
envs:
- .env