Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Azure Developer CLI bietet Unterstützung für Helm und Kustomize, um den Prozess der Bereitstellung und des Deployments für den Azure Kubernetes Service (AKS) zu verbessern. Helm und Kustomize sind Tools, mit denen Sie Kubernetes-Anwendungen konfigurieren und verwalten können. In den folgenden Abschnitten erfahren Sie, wie Sie die Unterstützung für diese Tools in Ihren azd Vorlagen aktivieren und anpassen.
Aktivieren der Helmunterstützung
Um die Helm-Unterstützung zu aktivieren, stellen Sie sicher, dass die Helm CLI installiert ist. Aktivieren Sie das azd Helm-Feature-Flag, indem Sie den azd config Befehl ausführen:
azd config set alpha.aks.helm on
Helmkonfiguration und -bereitstellung
azd Mit der Helmunterstützung können Sie eine Liste der Helmdiagramme definieren, die für jeden azd Dienst installiert werden sollen. Verwenden Sie die helm- und k8s-Konfigurationsabschnitte in der azure.yaml-Datei, um eine Liste der Helm-Repositories oder Releases zu definieren, die installiert werden sollen.
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
Der azd deploy Befehl behandelt die folgenden Aufgaben mithilfe des helm Abschnitts:
- Fügt alle referenzierten Helm-Repositorys hinzu und/oder aktualisiert sie.
- Installiert die referenzierten Helm-Charts.
- Wartet auf die Helm-Freigabe auf den Übergang zu einem bereitgestellten Zustand
- Listet relevante Dienste und Ingresse auf, die innerhalb der bereitgestellten Ressourcen definiert sind.
Aktivieren der Kustomize-Unterstützung
Um die Kustomize-Unterstützung zu aktivieren, stellen Sie sicher, dass die Kustomize CLI installiert ist. Aktivieren Sie das azd Kustomize-Feature-Flag mit dem azd config Befehl:
azd config set alpha.aks.kustomize on
Kustomize-Konfiguration und -Bereitstellung
Mit dem Kustomize-Feature können Sie Kustomize als Teil von Kubernetes-Bereitstellungen verwenden und die folgenden Features bereitstellen:
- Unterstützt
baseundvariantKonfigurationen -
editsdie vor Bereitstellungen ausgeführt werden können -
configMapGeneratormitazdUmgebungen
Konfigurieren Sie Kustomize-Features mithilfe der folgenden azure.yaml Abschnitte:
-
dir: Relativer Pfad vom Dienst zu Ihrem Kustomize-Verzeichnis, das einekustomization.yamlDatei enthält.- Unterstützt die Ersetzung von Umgebungsvariablen.
-
edits: Array von Bearbeitungsausdrücken, die vor der Bereitstellung angewendet werden- Unterstützt die Ersetzung von Umgebungsvariablen
-
env: Abbildung der Schlüssel-Wert-Paare, die vor der Bereitstellung generiert wurden- Kartenwerte unterstützen die Ersetzung von Umgebungsvariablen
Anwendungsfälle
azd unterstützt die folgenden Kustomize-Anwendungsfälle.
Bereitstellen von K8s-Manifesten
Die folgende Konfiguration führt einen kubectl apply -k <dir>-Befehl aus, der auf deinen Manifestordner verweist, der ein kustomization.yaml enthält.
# 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
Verwenden von Überlagerungen für die Bereitstellung mit unterschiedlichen Varianten
Dieser Anwendungsfall wird in der Regel verwendet, um benutzerdefinierte Konfigurationen für die Bereitstellung in verschiedenen Phasen oder Umgebungen, wie z. B. dev, test und prod, zu erstellen. Im folgenden Beispiel kann der Benutzer die ${AZURE_ENV_NAME} Umgebungsvariable im Kustomize-Verzeichnis angeben, um die azd-Umgebungen automatisch als Standardüberlagerungskonvention zu verwenden:
# 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}
Ändern Sie kustomization.yaml vor der Bereitstellung
Ein gängiger Anwendungsfall zum Anpassen von kustomization.yaml ist das Ändern der Image-Namen/-Versionen von Containern, die im Rahmen Ihrer Bereitstellung genutzt werden.
Im folgenden Beispiel wird eine edits Konfiguration angegeben und ein beliebiger gültiger kustomize edit ... Befehl festgelegt.
azd Interpoliert automatisch alle Umgebungsvariablen, auf die innerhalb des edit Befehls verwiesen wird.
# 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}
Verwenden Sie azd Umgebungsvariablen in Konfigurationskarten
Konfigurationszuordnungen oder geheime Schlüssel sind für die Konfiguration Ihrer K8s-Cluster wichtig. Da kustomize keine direkte Ersetzung von Umgebungsvariablen unterstützt , können wir die Kustomize configMapGenerator mit einer .env Datei verwenden.
Der kustomize Konfigurationsabschnitt unterstützt einen env Abschnitt, in dem ein oder mehrere Schlüssel-Wert-Paare definiert werden können. Diese Konfiguration generiert automatisch eine temporäre .env-Datei in Ihrem Kustomisierungsverzeichnis, die von einem configMapGenerator verwendet werden kann.
Die folgende Konfiguration erstellt ein .env mit den angegebenen Schlüssel-Wert-Paaren.
# 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}
Die configMapGenerator generiert eine K8s-Konfigurationszuordnung mit dem angegebenen Namen und enthält alle Schlüssel-Wert-Paare, auf die in der .env Datei verwiesen wird.
# kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
- service.yaml
- ingress.yaml
configMapGenerator:
- name: todo-web-config
envs:
- .env