Dalam tutorial ini, kita akan mempelajari cara membuat dan mengelola Pod Kubernetes. Pertama, kita akan mulai dengan apa itu Pod di Kubernetes dan bagaimana cara kerja Pod. Selanjutnya, kita akan melihat sekilas jenis-jenis Pod. Dan kemudian kita akan melihat cara membuat Pod baru dan cara melihat informasi Pod dari baris perintah. Terakhir, kita akan belajar cara menghapus Pod saat tidak diperlukan lagi.
Contents
Apa itu Pod di Kubernetes?Jenis-Jenis Pod KubernetesBagaimana cara kerja POD?Membuat DeploymentAccess DeploymentDelete DeploymentJalankan Pod Dengan GambarKesimpulanApa itu Pod di Kubernetes?2 unit komputasi terkecil yang dapat digunakan yang dapat Anda bangun dan kendalikan. Pod adalah kumpulan dari satu atau lebih container dengan penyimpanan bersama dan sumber daya jaringan, serta seperangkat aturan tentang bagaimana container harus dijalankan.
Isi Pod selalu ditempatkan bersama, dijadwalkan bersama, dan dieksekusi di lingkungan yang sama. Sebuah Pod mewakili “host logis” khusus aplikasi: ia mencakup satu atau lebih container aplikasi yang terhubung erat.
Dalam perspektif Docker, Pod setara dengan satu set container Docker dengan ruang nama dan volume sistem file yang sama.
Jenis Pods Kubernetes
Dalam cluster Kubernetes , ada dua jenis Pods.
Single Container POD: Kasus penggunaan Kubernetes yang paling sering adalah pendekatan “satu-wadah-per-Pod”; dalam skenario ini, pertimbangkan sebuah Pod sebagai pembungkus di atas satu kontainer; Kubernetes memelihara Pod daripada container secara langsung.Multiple Containers POD: Sebuah Pod dapat mengenkapsulasi aplikasi yang terdiri dari banyak container yang terhubung erat yang perlu berbagi sumber daya. Kontainer ini dikelompokkan bersama untuk membentuk satu unit layanan dan kontainer ini akan berkomunikasi satu sama lain.Bagaimana cara kerja POD?
Setiap Pod dirancang untuk mengeksekusi satu instance aplikasi. Anda dapat menggunakan beberapa Pod, satu untuk setiap instance, jika Anda perlu memperluas aplikasi Anda secara horizontal. Ini biasanya disebut sebagai replikasi di Kubernetes. Sumber daya beban kerja dan pengontrolnya biasanya memproduksi dan mengelola Pod yang direplikasi dalam sebuah grup.
Tujuan utama Kubernetes adalah untuk menyebarkan aplikasi dalam bentuk wadah dalam satu set mesin yang disebut sebagai node pekerja di Cluster Kubernetes.
Kubernetes tidak meluncurkan container secara langsung di dalam node, tetapi container tersebut dienkapsulasi sebagai Pod yang merupakan instance tunggal dari aplikasi.
Dalam Cluster Kubernetes, sebuah node terdiri dari Pod dan Pod terdiri dari Container. Misalnya, Anda memiliki satu instance aplikasi yang berjalan dalam satu wadah yang dienkapsulasi oleh sebuah Pod.
Jika jumlah pengguna yang mengakses aplikasi meningkat, Anda perlu meningkatkan skala aplikasi Anda. Dalam hal ini, Anda mungkin perlu menjalankan instance tambahan untuk berbagi beban.
Untuk meningkatkan aplikasi, Anda perlu memutar Pod baru tambahan di node dengan aplikasi yang sama. Jika beban semakin meningkat dan node saat ini tidak memiliki kapasitas, maka Anda perlu memiliki node tambahan untuk menjalankan Pod dengan container aplikasi yang sama.
Demikian pula, untuk scaling down, Anda perlu menghapus Pod.
yang ada Semoga Anda mendapatkan ide dasar tentang Pod Kubernetes. Sekarang mari kita lihat cara membuat dan mengelola Pod di Kubernetes.
Sebelum memulai, pastikan Anda telah menginstal Kubernetes di sistem Anda. Tautan berikut berisi instruksi tentang cara mengatur penyebaran cluster Kubernetes single node dan multinode di Linux.
Cara Menginstal Kubernetes Menggunakan Minikube Di CentOS LinuxMenginstal Cluster Kubernetes Menggunakan Kubeadm Di RHEL, CentOS, AlmaLinux, Rocky Linux
Setelah Kubernetes diinstal, Anda dapat mulai membuat Pod .
Biasanya Anda tidak perlu membuat Pod secara langsung, bahkan Pod tunggal sekalipun. Sebagai gantinya, buat mereka menggunakan sumber daya beban kerja seperti Deployment atau Job. Deployment menyediakan pembaruan deklaratif untuk Pod dan ReplicaSets.
Create a Deployment
Buat contoh penerapan menggunakan image “echoserver” yang ada. Ini adalah server HTTP sederhana dan kami dapat mengeksposnya pada port 8080 menggunakan –port option.
A container image adalah file yang membungkus program dan semua dependensi perangkat lunaknya dalam data biner. Gambar kontainer adalah paket perangkat lunak independen yang dapat dieksekusi yang membuat asumsi yang sangat spesifik tentang lingkungan eksekusinya.
Dalam artikel ini, kita akan membahas semua demonstrasi dalam satu cluster node.
Anda dapat mengetahui detail node dengan menjalankan perintah di bawah ini sebagai root user
# kubectl get nodes
Contoh output:
NAME PERAN STATUS VERSI USIA ostechnix Ready Master 25h v1.22.3
Sekarang, gunakan contoh aplikasi bernama “hello-ostechnix” menggunakan perintah di bawah ini. Anda dapat memberi nama sesuai dengan kenyamanan Anda.
# kubectl create deployment hello-ostechnix –image=k8s.gcr.io/echoserver:1.10
Contoh output:
deployment.apps/hello-ostechnix create [[email protected] ~]#
Deployment dibuat, verifikasi penerapan menggunakan perintah di bawah ini.
# kubectl get deployments
Sample output:
NAME READY UP-TO-DATE AVAILABLE AGE hello-ostechnix 1/1 1 1 85s
Access Deployment
Untuk mengakses penerapan ini sebagai layanan, Anda harus mengeksposnya sebagai sebuah layanan. Gunakan perintah di bawah ini untuk mengekspos penerapan pada port 8080.
# kubectl mengekspos penerapan hello-ostechnix –type=NodePort –port=8080
Sample output:
service/hello-ostechnix expose
Gunakan perintah di bawah ini untuk mendapatkan URL layanan yang terbuka .
# minikube service hello-ostechnix --url
Contoh output:
http://192.168.181.131:30525
Copy URL dan paste di browser Anda, itu akan mencantumkan rincian aplikasi yang digunakan.
Pastikan port 30525 diizinkan di Anda router atau firewall. Jika port ini diblokir, Anda tidak dapat melihat informasi Pod di browser.
Delete Deployment
Pertama, hapus layanan “hello-ostechnix” menggunakan perintah:
# kubectl delete services hello-ostechnix
Contoh output:
service "hello-ostechnix" deleteyy penerapan "hello-ostechnix":# kubectl hapus penerapan hello-ostechnixContoh keluaran:
deployment.apps "hello-ostechnix" deleteSetelah Anda menghapus penerapan, Pod yang terkait dengan aplikasi akan dihentikan. Diperlukan beberapa detik untuk menyelesaikan penghentian.
# kubectl get podsContoh output:
NAME STATUS SIAP MULAI KEMBALI USIA hello-ostechnix-5d4cf4df75-jlwff 1/1 Mengakhiri 0 57mSetelah menghentikan penerapan, aplikasi tidak akan dapat diakses lagi#.
kubectl get podsSample Output:
Tidak ada sumber daya yang ditemukan di namespace.Run Pod default Dengan Images
Kita dapat menggunakan perintah ‘kubectl run’ untuk membuat dan menjalankan aplikasi di Pod.
$ kubectl run --image=Di sini, nama Pod bisa apa saja dan nama image harus spesifik yang akan tersedia di Docker Hub atau repositori lokal mana pun.
Mari kita membuat Pod dengan Nginx image.
# kubectl run ostechnix-nginx –image=nginx
Sample output:pod/ostechnix-nginx createA Pod bernama ‘ostechnix-nginx’ telah dibuat. Anda dapat memverifikasi status Pod dengan perintah di bawah ini.
# kubectl get pods
Sample output:NAME READY STATUS RESTARTS AGE ostechnix-nginx 1/1 Running 0 4m20sAnda bisa mendapatkan informasi tambahan seperti tempat menjalankan Pod dan IP Pod dengan menggunakan opsi ‘wide’.
# kubectl get pods -o wideContoh output:
<
pre>NAME STATUS SIAP MULAI KEMBALI USIA NODE NODE KESIAPAN GERBANG ostechnix-nginx 1/1 Menjalankan 0 38m 172.17.0.6 ostechnix Anda bisa mendapatkan informasi lengkap tentang POD menggunakan perintah ‘kubectl Explain’.
# kubectl Explain Pod ostechnix-nginxPerintah ini akan memberi Anda detail lengkap POD seperti detail container dan statusnya, Detail Event yang terjadi sejak Pod dibuat.
<
pre>Name: ostechnix-nginx Namespace: default Prioritas: 0 Node: ostechn ix/192.168.181.131 Waktu Mulai: Kam, 03 Feb 2022 01:40:48 -0800 Label: run=ostechnix-nginx Anotasi: Status: Menjalankan IP: 172.17.0.6 IP: IP: 172.17.0.6 Wadah: ostechnix-nginx: ID Penampung: buruh pelabuhan://29eeb0392247aef193d6dff0138f8ef132dfb6359d8e67c3a5e4a21d7e259989 Gambar: nginx ID Gambar: docker-pullable://[email protected]:2834dc507516af02784808c5f4800def167e:4800b7d038b True Restart Hitungan: 0 Lingkungan: Mount: /var/run/secrets/kubernetes.io/serviceaccount dari kube-api-access-ggvk6 (ro) Kondisi: Jenis Status Diinisialisasi True Ready True ContainersReady True PodScheduled True Volume: kube-api- access-ggvk6: Jenis: Proyeksi (volume yang berisi data yang disuntikkan dari berbagai sumber) TokenExpirationSeconds: 3607 ConfigMapName: kube-root-ca.crt ConfigMapOptional: DownwardAPI: true QoS Class: BestEffort Node-Selectors: Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exist for 300s node.kubernetes.io/unreachable:NoExecute op=Exists untuk 300-an Acara: Jenis Alasan Usia Dari Pesan —- —— —- —- ——- Normal Terjadwal 7m26s default-scheduler Berhasil menetapkan default/ostechnix-nginx ke ostechnix Normal Menarik kubelet 7m24s Menarik gambar “nginx” Normal Menarik 7m20s kubelet Berhasil menarik gambar “nginx” dalam 4.114836826s Normal Dibuat 7m20s kubelet Dibuat wadah ostechnix-nginx Normal Mulai 7m20s kubelet Mulai wadah ostechnix-nginx [[email protected] ~]#setelah Anda selesai , Anda dapat menghapus Pod dengan menggunakan perintah ‘kubectl delete’.
# kubectl delete pod ostechnix-nginxSample ou tput:
pod "ostechnix-nginx" deleteVerifikasi apakah Pod dihapus dengan mendaftar Pod yang tersedia:
# kubectl get pod Tidak ada sumber daya yang ditemukan di namespace default.Conclusion
Dalam tutorial ini, kita telah mempelajari konsep Pod di Kubernetes, sebuah aplikasi sederhana deployment dan cara menjalankan Pod. Kami akan memiliki detail lebih lanjut tentang membuat Pod dengan file definisi YAML di detail kami yang akan datang.
Resource:
https://kubernetes.io/docs/concepts/workloads/pods/