GNU/Linux >> Belajar Linux >  >> Linux

Cara Memulai Ulang Pod di Kubernetes [Kiat Cepat K8s]

Kadang-kadang Anda mungkin berada dalam situasi di mana Anda perlu me-restart Pod Anda. Misalnya, jika Pod Anda dalam keadaan error.

Bergantung pada kebijakan mulai ulang, Kubernetes sendiri mencoba memulai ulang dan memperbaikinya.

Tetapi jika itu tidak berhasil dan jika Anda tidak dapat menemukan sumber kesalahannya, memulai ulang Kubernetes Pod secara manual adalah cara tercepat untuk membuat aplikasi Anda berfungsi kembali.

Cara memulai ulang Pod di Kubernetes

Sayangnya, tidak ada perintah kubectl restart pod untuk tujuan ini. Berikut adalah beberapa cara untuk memulai ulang Pod Anda:

  1. Peluncuran Pod dimulai ulang
  2. Menskalakan jumlah replika

Mari saya tunjukkan kedua metode secara detail.

Metode 1:Peluncuran Pod dimulai ulang

Mulai dari Kubernetes versi 1.15, Anda dapat memulai ulang penerapan Anda secara bergulir.

Controller membunuh satu Pod pada satu waktu dan bergantung pada ReplicaSet untuk meningkatkan Pod baru sampai semua Pod lebih baru dari waktu restart. Menurut pendapat saya, ini adalah cara terbaik untuk me-restart pod Anda karena aplikasi Anda tidak akan down.

Catatan: IP pod individu akan diubah.

Mari kita ambil contoh. Anda memiliki penerapan bernama my-dep yang terdiri dari dua pod (karena replika disetel ke dua).

[email protected]:~# kubectl get deployments
NAME     READY   UP-TO-DATE   AVAILABLE   AGE
my-dep   2/2     2            2           13s

Ayo dapatkan detail podnya:

[email protected]:~# kubectl get pod -o wide
NAME                      READY   STATUS    RESTARTS   AGE   IP               NODE          NOMINATED NODE   READINESS GATES
my-dep-6d9f78d6c4-8j5fq   1/1     Running   0          47s   172.16.213.255   kworker-rj2   <none>           <none>
my-dep-6d9f78d6c4-rkhrz   1/1     Running   0          47s   172.16.213.35    kworker-rj1   <none>           <none>

Sekarang mari kita luncurkan restart untuk penerapan my-dep dengan perintah seperti ini:

kubectl rollout restart deployment name_of_deployment

Apakah Anda ingat nama penerapan dari perintah sebelumnya? Gunakan di sini:

[email protected]:~# kubectl rollout restart deployment my-dep
deployment.apps/my-dep restarted

Anda dapat melihat proses pod lama dihentikan dan pod baru dibuat menggunakan kubectl get pod -w perintah:

[email protected]:~# kubectl get pod -w
NAME                      READY   STATUS              RESTARTS   AGE
my-dep-557548758d-kz6r7   1/1     Running             0          5s
my-dep-557548758d-svg7w   0/1     ContainerCreating   0          1s
my-dep-6d9f78d6c4-8j5fq   1/1     Running             0          69s
my-dep-6d9f78d6c4-rkhrz   1/1     Terminating         0          69s
my-dep-6d9f78d6c4-rkhrz   0/1     Terminating         0          69s
my-dep-557548758d-svg7w   0/1     ContainerCreating   0          1s
my-dep-557548758d-svg7w   1/1     Running             0          3s
my-dep-6d9f78d6c4-8j5fq   1/1     Terminating         0          71s
my-dep-6d9f78d6c4-8j5fq   0/1     Terminating         0          72s
my-dep-6d9f78d6c4-rkhrz   0/1     Terminating         0          74s
my-dep-6d9f78d6c4-rkhrz   0/1     Terminating         0          74s
my-dep-6d9f78d6c4-8j5fq   0/1     Terminating         0          76s
my-dep-6d9f78d6c4-8j5fq   0/1     Terminating         0          76s

Jika Anda memeriksa Pod sekarang, Anda dapat melihat detail yang telah berubah di sini:

[email protected]:~# kubectl get pod -o wide
NAME                      READY   STATUS    RESTARTS   AGE   IP               NODE          NOMINATED NODE   READINESS GATES
my-dep-557548758d-kz6r7   1/1     Running   0          42s   172.16.213.43    kworker-rj1   <none>           <none>
my-dep-557548758d-svg7w   1/1     Running   0          38s   172.16.213.251   kworker-rj2   <none>           <none>

Metode 2. Menskalakan Jumlah Replika

Dalam lingkungan CI/CD, proses untuk me-reboot pod Anda ketika ada kesalahan bisa memakan waktu lama karena harus melalui seluruh proses build lagi.

Cara yang lebih cepat untuk mencapai ini adalah menggunakan kubectl scale perintah untuk mengubah nomor replika menjadi nol dan setelah Anda menetapkan angka lebih tinggi dari nol, Kubernetes membuat replika baru.

Mari kita coba. Periksa Pod Anda terlebih dahulu:

[email protected]:~# kubectl get pod
NAME                      READY   STATUS    RESTARTS   AGE
my-dep-557548758d-kz6r7   1/1     Running   0          11m
my-dep-557548758d-svg7w   1/1     Running   0          11m

Dapatkan informasi penerapan:

[email protected]:~# kubectl get deployments
NAME     READY   UP-TO-DATE   AVAILABLE   AGE
my-dep   2/2     2            2           12m

Sekarang, atur nomor replika ke nol:

[email protected]:~# kubectl scale deployment --replicas=0 my-dep
deployment.apps/my-dep scaled

Dan kemudian atur kembali menjadi dua:

[email protected]:~# kubectscale deployment --replicas=2 my-dep
deployment.apps/my-dep scaled

Periksa pod sekarang:

[email protected]:~# kubectl get pod
NAME                      READY   STATUS    RESTARTS   AGE
my-dep-557548758d-d2pmd   1/1     Running   0          10s
my-dep-557548758d-gprnr   1/1     Running   0          10s

Anda telah berhasil me-restart Kubernetes Pods.

Gunakan salah satu metode di atas untuk membuat aplikasi Anda bekerja dengan cepat dan aman tanpa memengaruhi pengguna akhir.

Setelah melakukan latihan ini, pastikan Anda menemukan masalah inti dan memperbaikinya karena memulai ulang pod Anda tidak akan perbaiki masalah yang mendasarinya.

Semoga Anda menyukai tip Kubernetes ini. Jangan lupa untuk berlangganan lebih banyak lagi.

Rakesh Jain
DevOps Profesional | RHCA | Jenkins | Git | buruh pelabuhan | Kubernet | Mungkin | Prometheus | Grafana | AWS Cloud

Linux
  1. Cara Menyinkronkan Subtitle Dengan Film [Kiat Singkat]

  2. Cara Menginstal Curl di Ubuntu [Kiat Singkat]

  3. Cara Menghapus Pengguna Dari Grup di Linux [Kiat Singkat]

  1. Cara men-deploy pod pertama Anda di Cluster Kubernetes

  2. Cara Menemukan Panjang String di Bash [Kiat Singkat]

  3. Cara Menghapus Pod di Kubernetes [Tips Cepat K8s]

  1. Cara Menghapus Deployment Kubernetes [Tips Cepat K8s]

  2. Cara Membaca Node di Kubernetes [Kiat K8 Cepat]

  3. Bagaimana cara menjalankan riwayat Pod di Kubernetes Node?