A Helm és a Kustomize támogatása

Az Azure Developer CLI támogatást nyújt a Helm és a Kustomize számára az Azure Kubernetes Service (AKS) üzembe helyezésének és felügyeletéhez való folyamatok javításához. A Helm és a Kustomize olyan eszközök, amelyek segítenek a Kubernetes-alkalmazások konfigurálásában és kezelésében. Az alábbi szakaszokban megtudhatja, hogyan engedélyezheti és szabhatja testre az eszközök támogatását a azd sablonokban.

Helm-támogatás engedélyezése

A Helm támogatásának engedélyezéséhez győződjön meg arról, hogy telepítve van a Helm CLI. Engedélyezze a azd helm-funkciójelzőt a azd config parancs futtatásával:

azd config set alpha.aks.helm on

Helm-konfiguráció és üzembe helyezés

azd A Helm-támogatás lehetővé teszi, hogy meghatározott listában adja meg az egyes azd szolgáltatásokhoz telepítendő Helm chartokat. A azure.yaml fájlban található helm és k8s konfigurációs szakaszok segítségével definiálhatja a telepíteni kívánt helm-adattárak vagy kiadások listáját.

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

A azd deploy parancs a következő feladatokat kezeli a helm szakasz használatával:

  • Hozzáadja a hivatkozott Helm-adattárakat, és/vagy frissíti őket
  • A hivatkozott Helm-diagramok telepítése
  • Várakozás a Helm-kiadás üzembe helyezett állapotba való átmenetre
  • Az üzembe helyezett erőforrásokon belül definiált releváns szolgáltatások és bejövő forgalom listázása

Képernyőkép a Helm üzembehelyezési kimenetéről.

Kustomize-támogatás engedélyezése

A Kustomize támogatásának engedélyezéséhez győződjön meg arról, hogy telepítve van a Kustomize parancssori felület. Engedélyezze a azd Kustomize funkciójelzőt a azd config következő paranccsal:

azd config set alpha.aks.kustomize on

Kustomize konfiguráció és üzembe helyezés

A Kustomize funkció lehetővé teszi a Kustomize használatát a Kubernetes-üzemelő példányok részeként, és a következő funkciókat biztosítja:

  • Támogatja a base és variant konfigurációkat
  • edits az üzembe helyezés előtt futtatható
  • configMapGeneratorkörnyezetekkel azd

Konfigurálja a Kustomize-funkciókat a következő azure.yaml szakaszok használatával:

  • dir: Relatív elérési út a szolgáltatástól a Kustomize könyvtárhoz, amely egy kustomization.yaml fájlt tartalmaz.
    • Támogatja a környezeti változók helyettesítését.
  • edits: Az üzembe helyezés előtt alkalmazott szerkesztési kifejezések tömbje
    • Támogatja a környezeti változók helyettesítését
  • env: Az üzembe helyezés előtt létrehozott kulcs-érték párok térképe
    • A leképezési értékek támogatják a környezeti változók helyettesítését

Használati esetek

azd a következő Kustomize-használati eseteket támogatja.

K8s-jegyzékek üzembe helyezése

A következő konfiguráció egy kubectl apply -k <dir> parancsot hajt végre, amely a jegyzékfájl mappára mutat, amely egy 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

Átfedések használata a különböző változatokhoz való üzembe helyezéshez

Ez a használati eset általában egyéni konfigurációkat használ a különböző szakaszokban vagy környezetekben való üzembe helyezéshez, például deva . testprod Az alábbi példában a felhasználó megadhatja a ${AZURE_ENV_NAME} kustomize könyvtárban lévő környezeti változót, hogy automatikusan az azd környezeteket használja alapértelmezett átfedési konvencióként:

# 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}

Módosítsa kustomization.yaml az üzembe helyezés előtt

A módosítás gyakori felhasználási esete a kustomization.yamltárolólemezképek neveinek/verzióinak módosítása, amelyeket az üzembe helyezés részeként használnak.

Az alábbi példa egy konfigurációt edits határoz meg, és beállítja az érvényes kustomize edit ... parancsokat. azd automatikusan interpolálja a parancsban hivatkozott edit környezeti változókat.

# 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}

Környezeti változók használata azd konfigurációs térképeken belül

A konfigurációs térképek vagy titkok kritikus fontosságúak a K8s klaszterek konfigurálásához. Mivel a kustomize nem támogatja a közvetlen környezeti változók helyettesítését, használhatjuk a kustomize-t egy .env fájllal configMapGenerator.

A kustomize konfigurációs szakasz egy olyan szakaszt env támogat, amelyben egy vagy több kulcs/érték pár definiálható. Ez a konfiguráció automatikusan létrehoz egy ideiglenes .env fájlt a "kustomization" könyvtárban, amelyet egy configMapGenerator használhat.

Az alábbi konfiguráció létrehoz egy .env a megadott kulcs/érték párokkal.

# 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}

A configMapGenerator rendszer létrehoz egy K8s-konfigurációs leképezést a megadott névvel, és tartalmazza a fájlban .env hivatkozott kulcs-érték párokat.

# kustomization.yaml

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
  - deployment.yaml
  - service.yaml
  - ingress.yaml

configMapGenerator:
  - name: todo-web-config
    envs:
      - .env