Cara Membuat Dan Mengelola Pod Kubernetes Di Linux

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-ostechnix

Contoh keluaran:

deployment.apps "hello-ostechnix" delete

Setelah Anda menghapus penerapan, Pod yang terkait dengan aplikasi akan dihentikan. Diperlukan beberapa detik untuk menyelesaikan penghentian.
# kubectl get pods

Contoh output:

NAME STATUS SIAP MULAI KEMBALI USIA hello-ostechnix-5d4cf4df75-jlwff 1/1 Mengakhiri 0 57m

Setelah menghentikan penerapan, aplikasi tidak akan dapat diakses lagi#.

 kubectl get pods

Sample 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 create

A 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 4m20s

Anda bisa mendapatkan informasi tambahan seperti tempat menjalankan Pod dan IP Pod dengan menggunakan opsi ‘wide’.

# kubectl get pods -o wide

Contoh 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-nginx

Perintah 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-nginx

Sample ou tput:

pod "ostechnix-nginx" delete

Verifikasi 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/

Scroll to Top