GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come utilizzare le variabili d'ambiente con i grafici Helm

Introduzione

I grafici Helm sono un modo comodo ed efficiente per raccogliere risorse Kubernetes e creare cluster di applicazioni. Possono anche utilizzare variabili di ambiente su macchine locali per definire valori da utilizzare per la tua distribuzione Kubernetes.

Questo tutorial tratterà diversi modi in cui puoi includere variabili di ambiente nella tua distribuzione Kubernetes.

Prerequisiti

  • Accesso al terminale/riga di comando
  • Minikube installato e configurato (consulta le nostre guide su Come installare Minikube su Ubuntu e Come installare Minikube su CentOS)
  • Timone installato e configurato

Come utilizzare le variabili d'ambiente con Helm

Esistono due metodi per utilizzare le variabili di ambiente con i grafici Helm:

  • Utilizzo dell'oggetto segreto in Kubernetes per montare le variabili di ambiente in una distribuzione.
  • Scrivere un assistente personalizzato in un grafico Helm.

Per questo tutorial, utilizziamo il USERNAME e PASSWORD variabili di ambiente.

Montaggio delle variabili d'ambiente in una distribuzione Kubernetes

1. Aggiungi le seguenti righe a values.yaml file nel tuo grafico Helm:

username: root
password: password

2. Crea un nuovo file chiamato secret.yaml e aggiungilo al template cartella. Aggiungi il seguente contenuto al file:

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

3. Modifica l'env sezione della tua distribuzione Kubernetes per includere le nuove variabili definite in secret.yaml file:

...
      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. Impostare le variabili di ambiente sui valori desiderati. Ad esempio, imposta il USERNAME variabile in hello_user :

export USERNAME=hello_user

5. Applicare le variabili al grafico Helm combinandole con helm install comando:

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

Dove:

  • [chart name] è il nome della carta Helm che stai utilizzando.
  • [chart path] è il percorso verso la carta di Helm che stai utilizzando.

Se desideri testare le nuove impostazioni prima di applicarle, utilizza il ciclo di prova modalità:

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

Aggiunta di un assistente personalizzato in Helm

1. Usa env sezione di values.yaml file per definire variabili sensibili e non sensibili. Usa il normal e secret categorie per elencare le variabili appropriate:

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

Usando questo metodo, aggiungiamo quindi il USERNAME e PASSWORD variabili al secret categoria:

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

Dove:

  • [username] è il valore che desideri impostare per USERNAME variabile.
  • [password] è il valore che desideri impostare per la PASSWORD variabile.

2. Aggiungi il percorso a values.yaml file in fondo al tuo .gitignore file:

charts/values.yaml

3. Crea un file chiamato secrets.yaml nei templates cartella e aggiungi il seguente contenuto:

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

4. Trova il helpers.tpl file nei templates cartella. Aggiungi quanto segue in fondo al file per scrivere una nuova funzione di supporto:

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

5. Chiama l'assistente che hai creato aggiungendo quanto segue al tuo pod.yaml file:

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

Ubuntu
  1. Come uso Vagrant con libvirt

  2. Fare riferimento a variabili d'ambiente *in* /etc/environment?

  3. Come usare le variabili atomiche in C?

  4. Come impostare le variabili di ambiente Linux con Ansible

  5. Come annullare l'impostazione di molte variabili d'ambiente

Come utilizzare le variabili in Ansible Playbook

Come installare e utilizzare Helm in Kubernetes

Come utilizzare le variabili negli script della shell

Come utilizzare GeoIP con Nginx su Ubuntu 16.04

Come impostare/disimpostare le variabili d'ambiente in Linux

Come utilizzare l'autenticazione a due fattori con Ubuntu