GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak používat proměnné prostředí s Helm Charts

Úvod

Helm grafy jsou pohodlný a efektivní způsob, jak shromažďovat zdroje Kubernetes a vytvářet clustery aplikací. Mohou také používat proměnné prostředí na místních počítačích k definování hodnot, které má vaše nasazení Kubernetes používat.

Tento výukový program se bude zabývat různými způsoby, jak zahrnout proměnné prostředí do nasazení Kubernetes.

Předpoklady

  • Přístup k terminálu/příkazovému řádku
  • Minikube nainstalovaný a nakonfigurovaný (prohlédněte si naše průvodce Jak nainstalovat Minikube na Ubuntu a Jak nainstalovat Minikube na CentOS)
  • Kormidlo nainstalováno a nakonfigurováno

Jak používat proměnné prostředí s Helm

Existují dva způsoby použití proměnných prostředí s Helmovými diagramy:

  • Použití tajného objektu v Kubernetes k připojení proměnných prostředí v nasazení.
  • Psaní vlastního pomocníka do Helmova diagramu.

Pro tento tutoriál používáme USERNAME a PASSWORD proměnné prostředí.

Připojování proměnných prostředí v nasazení Kubernetes

1. Přidejte následující řádky do values.yaml soubor ve vašem diagramu Helm:

username: root
password: password

2. Vytvořte nový soubor s názvem secret.yaml a přidejte jej do template složka. Přidejte do souboru následující obsah:

apiVersion: v1
kind: Secret
metadata:
  name: {{ .Release.Name }}-auth
data:
  password: {{ .Values.password | b64enc }}
  username: {{ .Values.username | b64enc }}

3. Upravte env části vašeho nasazení Kubernetes, aby zahrnovala nové proměnné definované v secret.yaml soubor:

...
      containers:
        - name: {{ .Chart.Name }}
          securityContext:
            {{- toYaml .Values.securityContext | nindent 12 }}
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
          imagePullPolicy: {{ .Values.image.pullPolicy }}
          env:          
            - name: "USERNAME"
              valueFrom:
                secretKeyRef:
                  key:  username
                  name: {{ .Release.Name }}-auth
            - name: "PASSWORD"
              valueFrom:
                secretKeyRef:
                  key:  password
                  name: {{ .Release.Name }}-auth
...

4. Nastavte proměnné prostředí na požadované hodnoty. Nastavte například USERNAME proměnná na hello_user :

export USERNAME=hello_user

5. Použijte proměnné na graf Helm jejich zkombinováním s helm install příkaz:

helm install --set username=$USERNAME [chart name] [chart path]

Kde:

  • [chart name] je název Helmova diagramu, který používáte.
  • [chart path] je cesta k Helmově grafu, který používáte.

Chcete-li nová nastavení před použitím otestovat, použijte suchý běh režim:

helm install --dry-run --set username=$USERNAME --debug [chart name] [chart path]

Přidání vlastního pomocníka do Helm

1. Použijte env části values.yaml soubor k definování citlivých a necitlivých proměnných. Použijte normal a secret kategorie pro seznam příslušných proměnných:

secret:
  name: app-env-var-secret
env:
  normal:
    variable1: value1
    variable2: value2
    variable3: value3
  secret:
    variable4: value4
    variable5: value5
    variable6: value6

Pomocí této metody pak přidáme USERNAME a PASSWORD proměnné do secret kategorie:

…
  secret:
    USERNAME: [username]
    PASSWORD: [password]

Kde:

  • [username] je hodnota, kterou chcete nastavit pro USERNAME proměnná.
  • [password] je hodnota, kterou chcete nastavit pro PASSWORD proměnná.

2. Přidejte cestu do values.yaml soubor na konec vašeho .gitignore soubor:

charts/values.yaml

3. Vytvořte soubor s názvem secrets.yaml v templates složku a přidejte následující obsah:

apiVersion: v1
kind: Secret
metadata:
  name: {{ .Values.secret.name }}
type: Opaque
data:
  {{- range $key, $val := .Values.env.secret }}
  {{ $key }}: {{ $val | b64enc }}
  {{- end}}

4. Najděte helpers.tpl soubor v templates složka. Chcete-li napsat novou pomocnou funkci, přidejte na konec souboru následující:

{{- define "helpers.list-env-variables"}}
{{- range $key, $val := .Values.env.secret }}
- name: {{ $key }}
  valueFrom:
    secretKeyRef:
      name: app-env-secret
      key: {{ $key }}
{{- end}}
{{- end }}

5. Zavolejte pomocníka, kterého jste vytvořili přidáním následujícího do pod.yaml soubor:

…
spec:
  containers:
  - name: mycontainer
    image: redis
    env:
    {{- include "helpers.list-env-variables" . | indent 6 }}
  restartPolicy: Never

Ubuntu
  1. Jak používat atomové proměnné v C?

  2. Jak nastavit proměnné prostředí Linuxu pomocí Ansible

  3. Jak zrušit nastavení mnoha proměnných prostředí

  1. Jak používám Vagrant s libvirt

  2. Odkazování na proměnné prostředí *v* /etc/environment?

  3. Jak číst proměnné prostředí procesu

  1. Jak používat příkaz wget s příklady

  2. Jak používat Linux Shutdown Command s příklady

  3. Jak nastavit proměnné prostředí v Linuxu