Materi kali ini saya akan bahas tentang Multi-Container-pods (10%)
Multi kontainer pods porsi nya ada 10% dari total ujian CKAD, jadi cukup penting juga untuk di kuasai. materi yang di ujiankan berdassarkan materi ini adalah:
- mengerti design multi kontainer pod pattern (ambassador, adaptor dan sidecar)
- buat sebuah pod dengan 3 busybox kontainer, kontainer 1 jalankan
lslalusleep 3600, kontainer 2 jalankanecho Hello Worldlalusleep 3600, kontainer 3 jalankanecho this third container, lalusleep 3600
// pertama kita buat pod dengan satu kontainer dengan opsi --dry-run suapa tidak di eksekusi oleh kubectl, lalu kita save ke file dengan nama multi-kontainer-pod.yaml
kubectl run busybox --image=busybox --restart=Never --dry-run -o yaml -- /bin/sh -c "ls; sleep 3600" > multi-container-pod.yaml
// edit file multi-container-pod.yaml, opsi saat ujian adalan pakai vi, vim atau nano.
vim multi-container-pod.yaml
// save dan jalan kubectl create -f multi-container-pod.yaml
kubectl create -f multi-container-pod.yaml
isi file multi-container-pod.yaml harus seperti berikut ini :
|
|
- cek log tiap container yang ada di dalam pod busybox
kubectl logs busybox -c busybox1
kubectl logs busybox -c busybox2
kubectl logs busybox -c busybox3
- cek previous log dari container busybox2
kubectl logs busybox -c busybox2 --previous
- jalan kan perintah
lsdi container busybox3
kubectl exec busybox -c busybox3 -- ls
- tampilkan metrics pod busybox dan simpan dalam file lalu verify
kubectl top pod busybox --containers
// simpan dalam file
kubectl top pod busybox --containers > file.log
cat file.log
- buat sebuah pod dengan container busybox, jalankan perintah
while true; do echo 'Hi I am from Main container' >> /var/log/index.html; sleep 5; donedengan sidecar container nginx dan expose di port 80. Gunakan emptyDir volume dan mount volume ini di /var/log untuk busybox dan /usr/share/nginx/html untuk nginx container. pastikan container running.
// buat inisial yaml file
kubectl run multi-cont-pod --image=busybox --restart=Never --dry-run -o yaml > multi-container-pod.yaml
// edit file yaml dan eksekusi kubectl create -f multi-container-pod.yaml
kubectl create -f multi-container-pod.yaml
kubectl get po multi-cont-pod
isi file multi-container-pod
|
|
- exec ke dalam 2 container tersebut untuk ngecek kalao file yg diminta exist dan query the main container dari sidecar container dengan curl localhost
// exec into main container
kubectl exec -it multi-cont-pod -c main-container -- sh
cat /var/log/index.html
// exec into sidecar container
kubectl exec -it multi-cont-pod -c sidecar-container -- sh
cat /usr/share/nginx/html/index.html
// install curl and get default page
kubectl exec -it multi-cont-pod -c sidecar-container -- sh
apt-get update && apt-get install -y curl
curl localhost
latihan yang lebih di soal no 6 dan pastikan baca soalnya dengan baik. latihannya dengan cara bikin multi container, latihan untuk masukkan perintah-perintah sederhana dengan shell script dan baca lagi sharing volume di pods.
perlu untuk latihan kubectl explain pods untuk ngelihat skema lengkap sebuah pod untuk kita jadikan rujukan.