GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So verwenden Sie Umgebungsvariablen mit Helm-Diagrammen

Einführung

Helm-Diagramme sind eine bequeme und effiziente Möglichkeit, Kubernetes-Ressourcen zu sammeln und Anwendungscluster zu erstellen. Sie können auch Umgebungsvariablen auf lokalen Computern verwenden, um Werte für Ihre Kubernetes-Bereitstellung zu definieren.

Diese Anleitung behandelt verschiedene Möglichkeiten, wie Sie Umgebungsvariablen in Ihre Kubernetes-Bereitstellung einbeziehen können.

Voraussetzungen

  • Zugriff auf Terminal/Befehlszeile
  • Minikube installiert und konfiguriert (lesen Sie unsere Anleitungen zur Installation von Minikube unter Ubuntu und zur Installation von Minikube unter CentOS)
  • Helm installiert und konfiguriert

So verwenden Sie Umgebungsvariablen mit Helm

Es gibt zwei Methoden zur Verwendung von Umgebungsvariablen mit Helm-Charts:

  • Verwenden des geheimen Objekts in Kubernetes zum Mounten von Umgebungsvariablen in einer Bereitstellung.
  • Einen benutzerdefinierten Helfer in ein Helm-Diagramm schreiben.

Für dieses Tutorial verwenden wir den USERNAME und PASSWORD Umgebungsvariablen.

Mounting-Umgebungsvariablen in einer Kubernetes-Bereitstellung

1. Fügen Sie der values.yaml die folgenden Zeilen hinzu Datei in Ihrem Helm-Diagramm:

username: root
password: password

2. Erstellen Sie eine neue Datei namens secret.yaml und fügen Sie es der template hinzu Mappe. Fügen Sie der Datei folgenden Inhalt hinzu:

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

3. Bearbeiten Sie die env Abschnitt Ihrer Kubernetes-Bereitstellung, um die neuen Variablen aufzunehmen, die in secret.yaml definiert sind Datei:

...
      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. Setzen Sie die Umgebungsvariablen auf Ihre gewünschten Werte. Legen Sie beispielsweise den USERNAME fest Variable zu hello_user :

export USERNAME=hello_user

5. Wenden Sie die Variablen auf das Helm-Diagramm an, indem Sie sie mit helm install kombinieren Befehl:

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

Wo:

  • [chart name] ist der Name des Helm-Diagramms, das Sie verwenden.
  • [chart path] ist der Pfad zu dem von Ihnen verwendeten Helm-Chart.

Wenn Sie die neuen Einstellungen testen möchten, bevor Sie sie anwenden, verwenden Sie den Probelauf Modus:

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

Hinzufügen eines benutzerdefinierten Helfers in Helm

1. Verwenden Sie die env Abschnitt der values.yaml Datei zum Definieren sensibler und nicht sensibler Variablen. Verwenden Sie den normal und secret Kategorien, um die entsprechenden Variablen aufzulisten:

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

Mit dieser Methode fügen wir dann den USERNAME hinzu und PASSWORD Variablen zum secret Kategorie:

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

Wo:

  • [username] ist der Wert, den Sie für USERNAME festlegen möchten variabel.
  • [password] ist der Wert, den Sie für das PASSWORT festlegen möchten variabel.

2. Fügen Sie den Pfad zu values.yaml hinzu Datei am Ende Ihrer .gitignore Datei:

charts/values.yaml

3. Erstellen Sie eine Datei namens secrets.yaml in den templates Ordner und fügen Sie den folgenden Inhalt hinzu:

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

4. Suchen Sie helpers.tpl Datei in den templates Mappe. Fügen Sie am Ende der Datei Folgendes hinzu, um eine neue Hilfsfunktion zu schreiben:

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

5. Rufen Sie den von Ihnen erstellten Helfer auf, indem Sie Folgendes zu Ihrer pod.yaml hinzufügen Datei:

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

Ubuntu
  1. Wie ich Vagrant mit libvirt verwende

  2. Umgebungsvariablen *in* /etc/environment referenzieren?

  3. Wie verwende ich atomare Variablen in C?

  4. So setzen Sie Linux-Umgebungsvariablen mit Ansible

  5. Wie viele Umgebungsvariablen nicht gesetzt sind

So verwenden Sie Variablen im Ansible Playbook

So installieren und verwenden Sie Helm in Kubernetes

So verwenden Sie Variablen in Shell-Skripten

So verwenden Sie GeoIP mit Nginx unter Ubuntu 16.04

So setzen/löschen Sie Umgebungsvariablen in Linux

So verwenden Sie die Zwei-Faktor-Authentifizierung mit Ubuntu