Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Developer CLI ger stöd för Helm och Kustomize för att förbättra etablerings- och distributionsprocessen till Azure Kubernetes Service (AKS). Helm och Kustomize är verktyg som hjälper dig att konfigurera och hantera Kubernetes-program. I de kommande avsnitten får du lära dig hur du aktiverar och anpassar stöd för dessa verktyg i dina azd mallar.
Aktivera Helm-stöd
Om du vill aktivera Helm-stöd kontrollerar du att Helm CLI är installerat.
azd Aktivera helm-funktionsflaggan genom att azd config köra kommandot:
azd config set alpha.aks.helm on
Helm-konfiguration och -distribution
azd Med Helm-stöd kan du definiera en lista över Helm-diagram som ska installeras för varje azd tjänst. Använd konfigurationsavsnitten helmk8s och azure.yaml i filen för att definiera en lista över helm-lagringsplatser eller versioner som ska installeras.
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
Kommandot azd deploy hanterar följande uppgifter med hjälp av avsnittet helm :
- Lägger till alla refererade Helm-lagringsplatser och/eller uppdaterar dem
- Installerar de refererade Helm-diagrammen
- Väntar på att Helm-releasen ska övergå till ett driftsatt tillstånd
- Visar relevanta tjänster och ingresser som definierats i de distribuerade resurserna
Aktivera Kustomize-stöd
Om du vill aktivera Kustomize-stöd kontrollerar du att Kustomize CLI är installerat. Aktivera funktionsflaggan azd Kustomize med kommandot azd config :
azd config set alpha.aks.kustomize on
Kustomize-konfiguration och distribution
Med funktionen Kustomize kan du använda Kustomize som en del av Kubernetes-distributioner och tillhandahåller följande funktioner:
- Stöd
baseochvariantkonfigurationer -
editssom kan köras före driftsättningar -
configMapGeneratormedazdmiljöer
Konfigurera Kustomize-funktioner med hjälp av följande azure.yaml avsnitt:
-
dir: Relativ sökväg från tjänsten till din Kustomize-katalog som innehåller enkustomization.yamlfil.- Stöder ersättning av miljövariabler.
-
edits: Matris med redigeringsuttryck som tillämpas före distributionen- Stöder ersättning av miljövariabler
-
env: Karta över nyckel/värde-par som genererats före distributionen- Kartvärden stöder miljövariabelersättning
Användningsfall
azd stöder följande Kustomize-användningsfall.
Distribuera K8s-manifest
Följande konfiguration utför ett kubectl apply -k <dir> kommando som pekar på din manifestmapp som innehåller en 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
Använd överlägg för att distribuera med olika varianter
Det här användningsfallet används vanligtvis för att ha anpassade konfigurationer för distribution till olika faser eller miljöer, till exempel dev, test och prod. I följande exempel kan användaren ange ${AZURE_ENV_NAME} miljövariabeln i katalogen kustomize för att automatiskt använda azd-miljöerna som standardöverläggskonvention:
# 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}
Ändra kustomization.yaml före distribution
Ett vanligt användningsfall för att modifiera kustomization.yaml är att ändra de bildnamn/versioner för behållare som används som en del av din distribution.
I följande exempel anges en edits-konfiguration och vilket giltigt kustomize edit ...-kommando som helst.
azd interpolerar automatiskt alla miljövariabler som refereras i edit kommandot.
# 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}
Använda azd miljövariabler i konfigurationskartor
Konfigurationskartor eller hemligheter är viktiga för att konfigurera dina K8s-kluster. Eftersom kustomize inte stöder någon direkt miljövariabelersättning kan vi använda kustomize configMapGenerator med en .env fil.
Konfigurationsavsnittet kustomize stöder ett env avsnitt där ett eller flera nyckel/värde-par kan definieras. Den här konfigurationen genererar automatiskt en tillfällig .env fil i kustomiseringskatalogen som kan användas av en configMapGenerator.
Följande konfiguration skapar en .env med de angivna nyckel-/värdeparen.
# 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 Genererar en K8s-konfigurationskarta med det angivna namnet och innehåller alla nyckel/värde-par som refereras i .env filen.
# kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
- service.yaml
- ingress.yaml
configMapGenerator:
- name: todo-web-config
envs:
- .env