Ú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