Integrálás a Kubernetes üzembe helyezésével a Helm használatával

A Kubernetesben üzemeltetett alkalmazások az Alkalmazáskonfiguráció szolgáltatói kódtár használatával férhetnek hozzá az alkalmazáskonfiguráció adataihoz. Az alkalmazáskonfiguráció-szolgáltató beépített gyorsítótárazási és frissítési képességekkel rendelkezik, így az alkalmazások újratelepítés nélkül is dinamikus konfigurációval rendelkezhetnek. Ha nem szeretné frissíteni az alkalmazást, ez az oktatóanyag bemutatja, hogyan hozhat adatokat az alkalmazáskonfigurációból a Kubernetesbe a Helm használatával az üzembe helyezéssel. Így az alkalmazás továbbra is hozzáférhet a konfigurációhoz a Kubernetes változóiból és titkos kulcsaiból. A Helm-frissítést akkor futtatja, ha azt szeretné, hogy az alkalmazás új konfigurációs módosításokat hajtson végre.

Tipp.

A Kubernetesben üzemeltetett számítási feladatok beállításainak megtekintése Azure-alkalmazás konfiguráció eléréséhez.

A Helm módot kínál a Kubernetesben futó alkalmazások definiálására, telepítésére és frissítésére. A Helm-diagram tartalmazza a Kubernetes-alkalmazások példányának létrehozásához szükséges információkat. A konfiguráció a diagramon kívül, egy values.yaml nevű fájlban van tárolva.

A kiadási folyamat során a Helm egyesíti a diagramot a megfelelő konfigurációval az alkalmazás futtatásához. A values.yaml-ben definiált változók például környezeti változókként hivatkozhatnak a futó tárolókon belül. A Helm támogatja a Kubernetes Titkos kulcsok létrehozását is, amelyek adatkötetként csatlakoztathatók, vagy környezeti változókként vannak közzétéve.

A values.yaml fájlban tárolt értékeket felülbírálhatja, ha további YAML-alapú konfigurációs fájlokat ad meg a parancssorban a Helm futtatásakor. Azure-alkalmazás Konfiguráció támogatja a konfigurációs értékek YAML-fájlokba való exportálását. Az exportálási képesség üzembe helyezésbe való integrálásával a Kubernetes-alkalmazások kihasználják az Alkalmazáskonfigurációban tárolt konfigurációs értékeket.

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Az alkalmazáskonfiguráció értékeit használhatja az alkalmazások a Kubernetesben a Helm használatával történő üzembe helyezésekor.
  • Kubernetes-titkos kód létrehozása Key Vault-referencia alapján az alkalmazáskonfigurációban.

Ez az oktatóanyag alapszintű ismereteket feltételez a Kubernetes helmel való kezeléséről. További információ az alkalmazások Helmrel való telepítéséről az Azure Kubernetes Service-ben.

Előfeltételek

Kulcsértékek hozzáadása

Adja hozzá az alábbi kulcsértékeket az Alkalmazáskonfigurációs áruházhoz, és hagyja meg a címke és a tartalomtípus alapértelmezett értékeit. Ha többet szeretne tudni arról, hogyan adhat hozzá kulcsértékeket egy áruházhoz az Azure Portal vagy a parancssori felület használatával, lépjen a Kulcs-érték létrehozása elemre.

Kulcs Érték
settings.color Fehér
settings.message Adatok Azure-alkalmazás konfigurációjából

Key Vault-hivatkozás hozzáadása az alkalmazáskonfigurációhoz

  1. Jelentkezzen be az Azure Portalra, és adjon hozzá egy titkos kulcsot a Key Vaulthoz Jelszó és érték myPassword névvel.

  2. Válassza ki az előző szakaszban létrehozott App Configuration Store-példányt.

  3. Válassza a Configuration Explorer lehetőséget.

  4. Válassza a + Kulcstartó létrehozása>referenciát, majd adja meg a következő értékeket:

    • Kulcs: Válassza a secrets.password lehetőséget.
    • Címke: Hagyja üresen ezt az értéket.
    • Előfizetés, erőforráscsoport és kulcstartó: Adja meg az előző lépésben létrehozott kulcstartóban lévő értékeknek megfelelő értékeket.
    • Titkos kód: Válassza ki az előző szakaszban létrehozott jelszó nevű titkos kulcsot.

Helm-diagram létrehozása

Először hozzon létre egy minta Helm-diagramot a következő paranccsal:

helm create mychart

A Helm létrehoz egy mychart nevű új könyvtárat az alábbi struktúrával.

Tipp.

További információért kövesse ezt a diagramok útmutatót .

mychart
|-- Chart.yaml
|-- charts
|-- templates
|   |-- NOTES.txt
|   |-- _helpers.tpl
|   |-- deployment.yaml
|   |-- ingress.yaml
|   `-- service.yaml
`-- values.yaml

Ezután frissítse a deployment.yaml fájl spec:template:spec:containers szakaszát. Az alábbi kódrészlet két környezeti változót ad hozzá a tárolóhoz. Az értékek dinamikusan lesznek beállítva az üzembe helyezéskor.

env:
- name: Color
    value: {{ .Values.settings.color }}
- name: Message
    value: {{ .Values.settings.message }}

A frissítés utáni teljes deployment.yaml fájlnak az alábbihoz hasonlóan kell kinéznie.

apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: {{ include "mychart.fullname" . }}
  labels:
    app.kubernetes.io/name: {{ include "mychart.name" . }}
    helm.sh/chart: {{ include "mychart.chart" . }}
    app.kubernetes.io/instance: {{ .Release.Name }}
    app.kubernetes.io/managed-by: {{ .Release.Service }}
spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
      app.kubernetes.io/name: {{ include "mychart.name" . }}
      app.kubernetes.io/instance: {{ .Release.Name }}
  template:
    metadata:
      labels:
        app.kubernetes.io/name: {{ include "mychart.name" . }}
        app.kubernetes.io/instance: {{ .Release.Name }}
    spec:
      containers:
        - name: {{ .Chart.Name }}
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
          imagePullPolicy: {{ .Values.image.pullPolicy }}
          env:
            - name: Color
              value: {{ .Values.settings.color }}
            - name: Message
              value: {{ .Values.settings.message }}
          ports:
            - name: http
              containerPort: 80
              protocol: TCP
          livenessProbe:
            httpGet:
              path: /
              port: http
          readinessProbe:
            httpGet:
              path: /
              port: http
          resources:
{{ toYaml .Values.resources | indent 12 }}
    {{- with .Values.nodeSelector }}
      nodeSelector:
{{ toYaml . | indent 8 }}
    {{- end }}
    {{- with .Values.affinity }}
      affinity:
{{ toYaml . | indent 8 }}
    {{- end }}
    {{- with .Values.tolerations }}
      tolerations:
{{ toYaml . | indent 8 }}
    {{- end }}

A bizalmas adatok Kubernetes-titkos kulcsként való tárolásához adjon hozzá egy secrets.yaml fájlt a sablonok mappájába.

Tipp.

További információ a Kubernetes Titkos kulcsok használatáról.

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  password: {{ .Values.secrets.password | b64enc }}

Végül frissítse a values.yaml fájlt a következő tartalommal, hogy opcionálisan adja meg a deployment.yaml és a secrets.yaml fájlokban hivatkozott konfigurációs beállítások és titkos kódok alapértelmezett értékeit. A tényleges értékeket felülírja az alkalmazáskonfigurációból lekért konfiguráció.

# settings will be overwritten by App Configuration
settings:
  color: red
  message: myMessage

Konfiguráció átadása az alkalmazáskonfigurációból a Helm-telepítésben

Először töltse le a konfigurációt az Alkalmazáskonfigurációból egy myConfig.yaml fájlba. Kulcsszűrővel csak a beállításokkal kezdődő kulcsokat töltheti le. Ha az Ön esetében a kulcsszűrő nem elegendő a Key Vault-hivatkozások kulcsainak kizárásához, a --skip-keyvault argumentum használatával kizárhatja őket.

Tipp.

További információ az exportálási parancsról.

az appconfig kv export -n myAppConfiguration -d file --path myConfig.yaml --key "settings.*"  --separator "." --format yaml

Ezután töltse le a titkos kulcsokat egy mySecrets.yaml nevű fájlba. A parancssori --resolve-keyvault argumentum a Key Vault-referenciákat a Key Vault tényleges értékeinek beolvasásával oldja fel. Ezt a parancsot olyan hitelesítő adatokkal kell futtatnia, amelyek hozzáférési engedélyekkel rendelkeznek a megfelelő Key Vaulthoz.

Figyelmeztetés

Mivel ez a fájl bizalmas információkat tartalmaz, tartsa körültekintően a fájlt, és törölje, ha már nincs rá szükség.

az appconfig kv export -n myAppConfiguration -d file --path mySecrets.yaml --key "secrets.*" --separator "." --resolve-keyvault --format yaml

A Helm-frissítés -f argumentumával adja át a létrehozott két konfigurációs fájlt. Felülbírálják a values.yaml fájlban definiált konfigurációs értékeket az Alkalmazáskonfigurációból exportált értékekkel.

helm upgrade --install -f myConfig.yaml -f mySecrets.yaml "example" ./mychart

A --set argumentumot is használhatja a helm-frissítéshez a literális kulcsértékek átadásához. A --set argumentum használata jó módszer a bizalmas adatok lemezen való megőrzésének elkerülésére.

$secrets = az appconfig kv list -n myAppConfiguration --key "secrets.*" --resolve-keyvault --query "[*].{name:key, value:value}" | ConvertFrom-Json

foreach ($secret in $secrets) {
  $keyvalues += $secret.name + "=" + $secret.value + ","
}

if ($keyvalues){
  $keyvalues = $keyvalues.TrimEnd(',')
  helm upgrade --install --set $keyvalues "example" ./mychart
}
else{
  helm upgrade --install "example" ./mychart
}

Ellenőrizze, hogy a konfigurációk és titkos kulcsok sikeresen be lettek-e állítva a Kubernetes-irányítópult eléréséhez. Látni fogja, hogy az Alkalmazáskonfiguráció szín - és üzenetértékei a tároló környezeti változóiba lettek feltöltve.

Quickstart app launch local

Az alkalmazáskonfigurációban key vault-referenciának minősülő titkos kulcsokat, jelszavakat és tárolókat is hozzáadtak a Kubernetes titkos kulcsaihoz.

Screenshot that highlights the password in the Data section.

Az erőforrások eltávolítása

Ha nem szeretné folytatni a cikkben létrehozott erőforrások használatát, törölje az itt létrehozott erőforráscsoportot a díjak elkerülése érdekében.

Fontos

Az erőforráscsoport törlése nem vonható vissza. Az erőforráscsoport és a benne lévő összes erőforrás véglegesen törlődik. Győződjön meg arról, hogy nem véletlenül törli a rossz erőforráscsoportot vagy erőforrásokat. Ha a cikk erőforrásait olyan erőforráscsoporton belül hozta létre, amely más megtartani kívánt erőforrásokat tartalmaz, törölje az egyes erőforrásokat a megfelelő panelről az erőforráscsoport törlése helyett.

  1. Jelentkezzen be az Azure Portalra, és válassza ki az Erőforráscsoportokat.
  2. A Szűrés név szerint mezőbe írja be az erőforráscsoport nevét.
  3. Az eredménylistában válassza ki az erőforráscsoport nevét az áttekintés megtekintéséhez.
  4. Válassza az Erőforráscsoport törlése elemet.
  5. A rendszer az erőforráscsoport törlésének megerősítését kéri. Adja meg a megerősítéshez az erőforráscsoport nevét, és válassza a Törlés lehetőséget.

Néhány pillanat múlva az erőforráscsoport és annak összes erőforrása törlődik.

Következő lépések

Ebben az oktatóanyagban exportálta Azure-alkalmazás Konfigurációs adatokat, amelyeket a Helm-lel való Kubernetes-üzemelő példányban kell használni. Ha többet szeretne megtudni az alkalmazáskonfiguráció használatáról, folytassa az Azure CLI-mintákkal.