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 Bereitstellungs- und Bereitstellungsprozess für 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
Steuerfeature-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
Abschnitte und k8s
Konfigurationsabschnitte in der azure.yaml
Datei, um eine Liste der Helmrepositorys oder Versionen 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 Helmdiagramme.
- 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
base
undvariant
Konfigurationen edits
die vor Bereitstellungen ausgeführt werden kannconfigMapGenerator
mitazd
Umgebungen
Konfigurieren Sie Kustomize-Features mithilfe der folgenden azure.yaml
Abschnitte:
dir
: Relativer Pfad vom Dienst zu Ihrem Kustomize-Verzeichnis, das einekustomization.yaml
Datei enthält.- Unterstützt die Ersetzung von Umgebungsvariablen.
edits
: Array des Bearbeitungsausdrucks, der vor der Bereitstellung angewendet wird- Unterstützt die Ersetzung von Umgebungsvariablen
env
: Zuordnung von Schlüssel-Wert-Paaren, die vor der Bereitstellung generiert wurden- Kartenwerte unterstützen die Ersetzung von Umgebungsvariablen
Anwendungsfälle
Die folgenden Kustomize-Anwendungsfälle werden von azd
.
Bereitstellen von k8s-Manifesten
Die folgende Konfiguration führt einen kubectl apply -k <dir>
Befehl aus, der auf den Manifestordner verweist, der eine 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
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 zu verwenden, z dev
. B. und test
prod
. Im folgenden Beispiel kann der Benutzer die ${AZURE_ENV_NAME}
Umgebungsvariable innerhalb des Kustomize-Verzeichnisses angeben, um die azd-Umgebungen automatisch als Standardüberlagerungskonvention zu nutzen:
# 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}
Vor der Bereitstellung ändern kustomization.yaml
Ein gängiger Anwendungsfall zum Ändern des kustomization.yaml
Containers besteht darin, die Containerimagenamen /-versionen zu ändern, die als Teil der Bereitstellung verwendet 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 von azd
Umgebungsvariablen in Konfigurationszuordnungen
Konfigurationszuordnungen oder geheime Schlüssel sind bei der Konfiguration Ihrer k8s-Cluster von entscheidender Bedeutung. Da kustomize keine direkte Ersetzung von Umgebungsvariablen unterstützt, können wir die Kustomize configMapGenerator
mit einer .env
Datei nutzen.
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
.
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