Troubleshoot Calico Pods di Cluster Kubernetes Not Ready

Image

Pada artikel ini, saya ingin membagi langkah langkah cara penyelesaian masalah atau troubleshoot terkait masalah atau issue calico pods di cluster kubernetes mengalami status not ready.

Sekilas tentang Calico. Calico adalah salah 1 Container Network Interface (CNI) yang dapat digunakan atau di-integrasikan ke dalam kubernetes.

Kubernetes sebagai salah 1 contoh dari container orchestrator memerlukan Container Network Interface (CNI) agar container atau pods di dalam cluster dapat saling berinteraksi atau terhubung. Selain itu CNI juga dapat digunakan jika client dari luar cluster memerlukan interaksi atau akses ke service di dalam cluster Kubernetes.

Pada artikel ini, saya menggunakan lingkungan sistem Cluster Kubernetes yang terdiri dari 1 node master dan 2 node worker. Node dijalankan di atas Ubuntu Linux 20.04 yang berjalan di On Premise. Versi Kubernetes yang digunakan adalah versi 1.19.7 dengan Docker yang dijalankan sebagai Container Runtime Interface.

Langkah langkah troubleshoot di artikel ini mungkin dapat dijadikan acuan, jika ditemukan masalah yang kurang lebih serupa.

Berikut langkah-langkahnya:

  1. Cek pods Calico yang mengalami status not ready.
    Gunakan command berikut:

     kubectl get pods -o wide -n kube-system  
    

    Image

  2. Jika dilihat dari gambar di atas, status pods calico di setiap node adalah 0/1 yang berarti tidak ready

  3. Untuk analisa awal, dapat menjabarkan logs yang ada di pods calico yang tidak ready atau not ready.
    Contohnya dapat menggunakan command berikut:

     kubectl desribe pods [nama_pods] -n kube-system  
    

    Image

  4. Pada artikel ini, issue yang kami alami adalah karena di ubuntu yang berjalan terdiri dari beberapa network interface dan Calico kesulitan mendeteksi IP yang akan digunakan.
    Berikut contoh daftar ip yang ada di interface network saat menjalankan command ip a

    Image

  5. Solusi yang kami gunakan adalah dengan sedikit merubah manifest calico.yml yang dijalankan di cluster kubernetes
    Menambahkan IP_AUTODETECTION_METHOD dengan mereferensi interace ens yang digunakan ubuntu sebagai primary network interface

     # Specify Interface
     - name: IP_AUTODETECTION_METHOD
       value: "interface=ens.*"  
    

    Image

  6. Setelah itu jalankan atau apply kembali manifest calico.yml

  7. Setelah menambahkan solusi di atas, ekspektasi yang diharapkan adalah status pods Calico di setiap nodes akan berubah menjadi 1/1 yang berarti pods ready

    Image

Sekian beberapa langkah yang dapat dilakukan jika mengalami pods not ready di cluster Kubernetes.
Semoga bermanfaat.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

Situs yang Didukung WordPress.com.

Atas ↑

%d blogger menyukai ini: