Integrace s nasazením Kubernetes pomocí Helm

Helm poskytuje způsob, jak definovat, instalovat a upgradovat aplikace běžící v Kubernetes. Graf Helm obsahuje informace potřebné k vytvoření instance aplikace Kubernetes. Konfigurace je uložena mimo samotný graf, v souboru s názvem Values. yaml.

Během procesu vydávání Helm sloučí graf se správnou konfigurací pro spuštění aplikace. Například proměnné definované v hodnotách. yaml mohou být odkazovány jako proměnné prostředí uvnitř spuštěných kontejnerů. Helm také podporuje vytváření tajných klíčů Kubernetes, které se dají připojit jako datové svazky nebo zveřejnit jako proměnné prostředí.

Hodnoty uložené v hodnotách. yaml můžete přepsat tak, že na příkazovém řádku zadáte další konfigurační soubory založené na YAML při spuštění Helm. Konfigurace aplikace Azure podporuje export hodnot konfigurace do souborů YAML. Integrací této možnosti exportu do nasazení umožníte aplikacím Kubernetes využívat konfigurační hodnoty uložené v konfiguraci aplikace.

V tomto kurzu se naučíte:

  • Při nasazování aplikace do Kubernetes pomocí Helm používejte hodnoty z konfigurace aplikace.
  • Vytvoření tajného klíče Kubernetes na základě odkazu na Key Vault v konfiguraci aplikace.

V tomto kurzu se předpokládá základní znalost správy Kubernetes pomocí Helm. Přečtěte si další informace o instalaci aplikací pomocí Helm ve službě Azure Kubernetes.

Požadavky

  • Pokud ještě nemáte předplatné Azure,vytvořte si bezplatný účet před tím, než začnete.
  • Instalace rozhraní příkazového řádku Azure (verze 2.4.0 nebo novější)
  • Nainstalovat Helm (verze 2.14.0 nebo novější)
  • Cluster Kubernetes.

Vytvoření úložiště konfigurace aplikace

  1. Pokud chcete vytvořit nové úložiště konfigurace aplikace, přihlaste se k Azure Portal. V levém horním rohu domovské stránky vyberte vytvořit prostředek. Do pole Hledat na Marketplace zadejte Konfigurace aplikace a vyberte ENTER.

    Vyhledat konfiguraci aplikace

  2. Ve výsledcích hledání vyberte Konfigurace aplikace a pak vyberte vytvořit.

    Výběr možnosti Vytvořit

  3. V podokně vytvořit konfiguraci aplikace zadejte následující nastavení:

    Nastavení Navrhovaná hodnota Popis
    Předplatné Vaše předplatné Vyberte předplatné Azure, které chcete použít k testování konfigurace aplikace. Pokud má váš účet jenom jedno předplatné, vybere se automaticky a seznam předplatných se nezobrazí.
    Skupina prostředků AppConfigTestResources Vyberte nebo vytvořte skupinu prostředků pro prostředek úložiště konfigurace aplikace. Tato skupina je užitečná k organizování více prostředků, které můžete chtít odstranit současně odstraněním skupiny prostředků. Další informace najdete v tématu použití skupin prostředků ke správě prostředků Azure.
    Název prostředku Globálně jedinečný název Zadejte jedinečný název prostředku, který se má použít pro prostředek úložiště konfigurace aplikace. Název musí být řetězec o 5 až 50 znaků a obsahovat pouze čísla, písmena a - znak. Název nesmí začínat ani končit - znakem.
    Umístění USA – střed Umístění použijte k určení geografického umístění, ve kterém je úložiště konfigurace aplikace hostované. Nejlepšího výkonu dosáhnete vytvořením prostředku ve stejné oblasti jako jiné součásti aplikace.
    Cenová úroveň Free Vyberte požadovanou cenovou úroveň. Další informace najdete na stránce s cenami konfigurace aplikací.
  4. Vyberte zkontrolovat + vytvořit a ověřte nastavení.

  5. Vyberte Vytvořit. Nasazení může trvat několik minut.

  6. Po dokončení nasazení přejděte do prostředku konfigurace aplikace. Vyberte Nastavení > Přístupové klíče. Poznamenejte si primární připojovací řetězec klíče jen pro čtení. Pomocí tohoto připojovacího řetězce později nakonfigurujete aplikaci tak, aby komunikovala s úložištěm konfigurace aplikace, které jste vytvořili.

  1. Vyberte Průzkumník konfigurace > vytvořit a přidejte následující páry klíč-hodnota:

    Klíč Hodnota
    Settings. Color White
    nastavení. zpráva Data z konfigurace aplikace Azure
  2. V tuto chvíli ponechat popisek a typ obsahu prázdné.

Přidat odkaz Key Vault do konfigurace aplikace

  1. Přihlaste se k Azure Portal a přidejte tajný klíč do Key Vault s názvem heslo a hodnotou.

  2. Vyberte instanci úložiště konfigurace aplikace, kterou jste vytvořili v předchozí části.

  3. Vyberte Průzkumník konfigurace.

  4. Vyberte + vytvořit > odkaz na Trezor klíčů a pak zadejte následující hodnoty:

    • Klíč: vyberte tajné klíče. Password.
    • Popisek: Nechte tuto hodnotu prázdnou.
    • Předplatné, Skupina prostředků a Trezor klíčů: zadejte hodnoty odpovídající klíčům v trezoru klíčů, který jste vytvořili v předchozím kroku.
    • Tajný kód: vyberte tajný kód s názvem heslo , které jste vytvořili v předchozí části.

Vytvořit graf Helm

Nejprve vytvořte ukázkový graf Helm pomocí následujícího příkazu:

helm create mychart

Helm vytvoří nový adresář s názvem Mychart se strukturou uvedenou níže.

Tip

Další informace najdete v tomto Průvodci grafy .

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

Dále aktualizujte část Specifikace: Šablona: specifikace: Containers souboru Deployment. yaml . Následující fragment kódu přidá do kontejneru dvě proměnné prostředí. Hodnoty se nastavují dynamicky v době nasazení.

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

Úplný soubor Deployment. yaml po aktualizaci by měl vypadat níže.

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

Pokud chcete uložit citlivá data jako Kubernetes tajné klíče, přidejte do složky Templates soubor tajných kódů. yaml .

Tip

Přečtěte si další informace o používání Kubernetes tajných klíčů.

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

Nakonec aktualizujte soubor Values. yaml následujícím obsahem, abyste mohli volitelně zadat výchozí hodnoty nastavení konfigurace a tajné klíče, na které se odkazuje v souborech Deployment. yaml a tajné soubory. YAML . Jejich skutečné hodnoty budou přepsány konfigurací získanými z konfigurace aplikace.

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

Předání konfigurace z konfigurace aplikace v instalaci Helm

Nejdřív Stáhněte konfiguraci z konfigurace aplikace do souboru myConfig. yaml . Pomocí klíčového filtru Stáhněte pouze ty klíče, které začínají na nastavení.. Pokud v takovém případě filtr klíčů není dostačující pro vyloučení klíčů Key Vault odkazů, můžete k jejich vyloučení použít argument --Skip-a trezor .

Tip

Přečtěte si další informace o příkazu Export.

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

Dále Stáhněte tajné klíče do souboru s názvem mySecrets. yaml. Argument příkazového řádku --Resolve-úložiště klíčů řeší odkazy na Key Vault tím, že načtou skutečné hodnoty v Key Vault. Tento příkaz budete muset spustit s přihlašovacími údaji, které mají přístupová oprávnění k odpovídajícímu Key Vault.

Upozornění

Vzhledem k tomu, že tento soubor obsahuje citlivé informace, ponechte soubor na starosti a vyčistěte ho, když ho ještě nepotřebujete.

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

Použijte argument -f upgradu Helm a předejte dva konfigurační soubory, které jste vytvořili. Přepisují hodnoty konfigurace definované v hodnotách. yaml s hodnotami exportovanými z konfigurace aplikace.

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

Můžete také použít argument --set pro upgrade Helm k předání hodnot literálních klíčů. Použití argumentu --set je dobrým způsobem, jak zabránit zachování citlivých dat na disk.

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

Přístup k řídicímu panelu Kubernetesověřte, že se konfigurace a tajné kódy úspěšně nastavily. Uvidíte, že barvy a hodnoty zpráv z konfigurace aplikace byly naplněny do proměnných prostředí kontejneru.

Spuštění aplikace pro rychlý Start – místní

V konfiguraci aplikace se do Kubernetes tajných klíčů Přidal také jeden tajný kód a heslo, které obsahuje odkaz na Key Vault.

Snímek obrazovky, který zvýrazní heslo v části data

Vyčištění prostředků

Pokud nechcete dál používat prostředky vytvořené v tomto článku, odstraňte skupinu prostředků, kterou jste tady vytvořili, abyste předešli poplatkům.

Důležité

Odstranění skupiny prostředků je nevratné. Skupina prostředků a všechny prostředky v ní se trvale odstraní. Ujistěte se, že nechtěně neodstraníte nesprávnou skupinu prostředků nebo prostředky. Pokud jste vytvořili prostředky pro tento článek v rámci skupiny prostředků, která obsahuje další prostředky, které chcete zachovat, odstraňte všechny prostředky jednotlivě z příslušného podokna, místo aby se odstranila skupina prostředků.

  1. Přihlaste se k Azure Portala vyberte skupiny prostředků.
  2. Do pole filtrovat podle názvu zadejte název vaší skupiny prostředků.
  3. V seznamu výsledků vyberte název skupiny prostředků, aby se zobrazil přehled.
  4. Vyberte Odstranit skupinu prostředků.
  5. Zobrazí se výzva k potvrzení odstranění skupiny prostředků. Zadejte název vaší skupiny prostředků, který chcete potvrdit, a vyberte Odstranit.

Po chvíli se odstraní skupina prostředků a všechny její prostředky.

Další kroky

V tomto kurzu jste exportovali data konfigurace aplikace Azure, která se mají používat v nasazení Kubernetes s Helm. Další informace o tom, jak používat konfiguraci aplikací, najdete v ukázkách Azure CLI.