GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menggunakan Variabel Lingkungan dengan Diagram Helm

Pendahuluan

Diagram helm adalah cara yang nyaman dan efisien untuk mengumpulkan sumber daya Kubernetes dan membangun kluster aplikasi. Mereka juga dapat menggunakan variabel lingkungan pada mesin lokal untuk menentukan nilai yang akan digunakan penerapan Kubernetes Anda.

Tutorial ini akan membahas berbagai cara Anda dapat menyertakan variabel lingkungan dalam penerapan Kubernetes Anda.

Prasyarat

  • Akses ke terminal/baris perintah
  • Minikube diinstal dan dikonfigurasi (lihat panduan kami tentang Cara Menginstal Minikube di Ubuntu dan Cara Menginstal Minikube di CentOS)
  • Helm dipasang dan dikonfigurasi

Cara Menggunakan Variabel Lingkungan dengan Helm

Ada dua metode menggunakan variabel lingkungan dengan diagram Helm:

  • Menggunakan objek rahasia di Kubernetes untuk memasang variabel lingkungan dalam penerapan.
  • Menulis pembantu khusus di bagan Helm.

Untuk tutorial ini, kami menggunakan USERNAME dan PASSWORD variabel lingkungan.

Memasang Variabel Lingkungan di Deployment Kubernetes

1. Tambahkan baris berikut ke values.yaml file di bagan Helm Anda:

username: root
password: password

2. Buat file baru bernama secret.yaml dan tambahkan ke template map. Tambahkan konten berikut ke file:

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

3. Edit env bagian penerapan Kubernetes Anda untuk menyertakan variabel baru yang ditentukan dalam secret.yaml berkas:

...
      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. Atur variabel lingkungan ke nilai yang Anda inginkan. Misalnya, setel USERNAME variabel ke hello_user :

export USERNAME=hello_user

5. Terapkan variabel ke bagan Helm dengan menggabungkannya dengan helm install perintah:

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

Dimana:

  • [chart name] adalah nama bagan Helm yang Anda gunakan.
  • [chart path] adalah jalur ke bagan Helm yang Anda gunakan.

Jika Anda ingin menguji setelan baru sebelum menerapkannya, gunakan dry run modus:

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

Menambahkan Pembantu Khusus di Helm

1. Gunakan env bagian values.yaml file untuk mendefinisikan variabel sensitif dan tidak sensitif. Gunakan normal dan secret kategori untuk membuat daftar variabel yang sesuai:

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

Dengan menggunakan metode ini, kami kemudian menambahkan USERNAME dan PASSWORD variabel ke secret kategori:

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

Dimana:

  • [username] adalah nilai yang ingin Anda tetapkan untuk USERNAME variabel.
  • [password] adalah nilai yang ingin Anda tetapkan untuk PASSWORD variabel.

2. Tambahkan jalur ke values.yaml file ke bagian bawah .gitignore . Anda berkas:

charts/values.yaml

3. Buat file bernama secrets.yaml di templates folder dan tambahkan konten berikut:

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

4. Temukan helpers.tpl file di templates map. Tambahkan yang berikut ini ke bagian bawah file untuk menulis fungsi pembantu baru:

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

5. Panggil helper yang Anda buat dengan menambahkan yang berikut ke pod.yaml . Anda berkas:

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

Ubuntu
  1. Bagaimana cara menggunakan variabel atom di C?

  2. Cara mengatur variabel lingkungan Linux dengan Ansible

  3. Betapa tidak disetelnya banyak variabel lingkungan

  1. Bagaimana saya menggunakan Vagrant dengan libvirt

  2. Referensi Variabel Lingkungan *di* /etc/environment?

  3. Cara membaca variabel lingkungan dari suatu proses

  1. Cara Menggunakan Perintah wget Dengan Contoh

  2. Cara menggunakan Perintah Shutdown Linux dengan Contoh

  3. Cara Mengatur Variabel Lingkungan di Linux