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