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