Mendefinisikan Variabel Lingkungan untuk sebuah Kontainer
Laman ini menunjukkan bagaimana cara untuk mendefinisikan variabel lingkungan (environment variable) untuk sebuah Container di dalam sebuah Pod Kubernetes.
Sebelum kamu memulai
Kamu harus memiliki klaster Kubernetes, dan perangkat baris perintah kubectl juga harus dikonfigurasikan untuk berkomunikasi dengan klastermu. Jika kamu belum memiliki klaster, kamu dapat membuatnya dengan menggunakan minikube, atau kamu juga dapat menggunakan salah satu dari tempat mencoba Kubernetes berikut ini:
Untuk melihat versi, tekankubectl version
.
Mendefinisikan sebuah variabel lingkungan untuk sebuah Container
Ketika kamu membuat sebuah Pod, kamu dapat mengatur variabel lingkungan untuk Container-Container yang berjalan di dalam sebuah Pod.
Untuk mengatur variabel lingkungan, sertakan bagian env
atau envFrom
pada berkas konfigurasi.
Dalam latihan ini, kamu membuat sebuah Pod yang menjalankan satu buah Container.
Berkas konfigurasi untuk Pod tersebut mendefinisikan sebuah variabel lingkungan dengan nama DEMO_GREETING
yang bernilai "Hello from the environment"
.
Berikut berkas konfigurasi untuk Pod tersebut:
apiVersion: v1
kind: Pod
metadata:
name: envar-demo
labels:
purpose: demonstrate-envars
spec:
containers:
- name: envar-demo-container
image: gcr.io/google-samples/node-hello:1.0
env:
- name: DEMO_GREETING
value: "Hello from the environment"
- name: DEMO_FAREWELL
value: "Such a sweet sorrow"
-
Buatlah sebuah Pod berdasarkan berkas konfigurasi YAML tersebut:
kubectl apply -f https://k8s.io/examples/pods/inject/envars.yaml
-
Tampilkan Pod-Pod yang sedang berjalan:
kubectl get pods -l purpose=demonstrate-envars
Keluarannya mirip seperti ini:
NAME READY STATUS RESTARTS AGE envar-demo 1/1 Running 0 9s
-
Dapatkan sebuah shell ke Container yang sedang berjalan di Pod kamu:
kubectl exec -it envar-demo -- /bin/bash
-
Di shell kamu, jalankan perintah
printenv
untuk melihat daftar variabel lingkungannya.root@envar-demo:/# printenv
Keluarannya mirip seperti ini:
NODE_VERSION=4.4.2 EXAMPLE_SERVICE_PORT_8080_TCP_ADDR=10.3.245.237 HOSTNAME=envar-demo ... DEMO_GREETING=Hello from the environment DEMO_FAREWELL=Such a sweet sorrow
-
Untuk keluar dari shell tersebut, masukkan perintah
exit
.
Catatan: Variabel-variabel lingkungan yang diatur menggunakan bagianenv
atauenvFrom
akan mengesampingkan variabel-variabel lingkungan yang ditentukan di dalam image kontainer.
Menggunakan variabel-variabel lingkungan di dalam konfigurasi kamu
Variabel-variabel lingkungan yang kamu definisikan di dalam sebuah konfigurasi Pod dapat digunakan di tempat lain dalam konfigurasi, contohnya di dalam perintah-perintah dan argumen-argumen yang kamu atur dalam Container-Container milik Pod.
Pada contoh konfigurasi berikut, variabel-variabel lingkungan GREETING
, HONORIFIC
, dan NAME
disetel masing-masing menjadi Warm greetings to
, The Most Honorable
, dan Kubernetes
.
Variabel-variabel lingkungan tersebut kemudian digunakan dalam argumen CLI yang diteruskan ke Container env-print-demo
.
apiVersion: v1
kind: Pod
metadata:
name: print-greeting
spec:
containers:
- name: env-print-demo
image: bash
env:
- name: GREETING
value: "Warm greetings to"
- name: HONORIFIC
value: "The Most Honorable"
- name: NAME
value: "Kubernetes"
command: ["echo"]
args: ["$(GREETING) $(HONORIFIC) $(NAME)"]
Setelah dibuat, perintah echo Warm greetings to The Most Honorable Kubernetes
dijalankan di Container tersebut.
Selanjutnya
- Pelajari lebih lanjut tentang variabel lingkungan.
- Pelajari tentang menggunakan informasi rahasia sebagai variabel lingkungan.
- Lihat EnvVarSource.