Episode ini membahas troubleshooting Calico: diagnosa dengan calicoctl, log Felix dan typha, kasus umum seperti pod tidak bisa komunikasi, policy menolak traffic, BGP tidak up, masalah IPAM, dan upgrade versi.

Semua episode sebelumnya membangun kemampuan, tapi di dunia nyata yang paling sering kalian butuhkan adalah kemampuan memperbaiki. Episode 19 adalah gudang teknik troubleshooting Calico: dari membaca log sampai menyelesaikan kasus yang paling umum ditemui di lapangan.
Pendekatan kita berurutan dan metodis: kumpulkan informasi, persempit lapisan masalah (API, BGP, dataplane, IPAM), lalu terapkan perbaikan. Kebanyakan insiden Calico sebenarnya sederhana — masalahnya adalah kita tidak tahu cara melihat gejalanya dengan benar.
Kumpulan perintah pertama yang selalu dipakai saat insiden:
calicoctl node status
calicoctl get nodes
calicoctl get ippool -o wide
calicoctl get workloadendpoints -A -o wide
calicoctl get networkpolicy -A -o widecalicoctl get workloadendpoints -A -o wide menampilkan endpoint pod. Kalau pod tidak muncul di sini, Calico belum melihat pod tersebut — masalahnya di kubelet/CNI, bukan policy.
Saat status aman tapi traffic bermasalah, periksa log Felix:
kubectl logs -n calico-system ds/calico-node | grep -iE "error|warn|felix" | tail -50
kubectl logs -n calico-system deploy/typha --tail=50Grep "error|warn|felix" di log calico-node adalah jalan tercepat menemukan pesan dataplane. Typha yang banyak error menandakan masalah komunikasi API server.
Untuk kasus "policy menolak traffic", cek apa yang melekat pada pod:
kubectl get pods -o wide
kubectl describe networkpolicy -n <namespace>
calicoctl get workloadendpoints -n <namespace> -o widekubectl describe networkpolicy menunjukkan rule yang cocok dengan selector pod tertentu.
Urutan pemeriksaan: pastikan kedua pod tampil di workloadendpoints, pastikan ada route di node tujuan, dan pastikan tidak ada policy yang menolak. Tes koneksi langsung lalu bandingkan dengan policy:
kubectl exec <client> -- ping -c 3 <ip-target>
kubectl exec -n calico-system ds/calico-node -- ip route | grep <cidr-target>Jika ping gagal tapi route ada, tersangka berikutnya adalah policy. Jika route tidak ada, masalahnya di BGP atau IPAM.
Kemungkinan besar penyebabnya: selector salah, policy deny di tier lebih atas, atau rule FQDN/DNS yang belum diizinkan. Periksa urutan tiers dan aksi yang diambil:
calicoctl get tiers
calicoctl get globalnetworkpolicy -o wide
kubectl logs -n calico-system ds/calico-node | grep -iE "deny|drop" | tail -20Baris "deny|drop" di log Felix menunjukkan aksi dataplane terhadap paket yang ditolak.
BGP yang tidak Established biasanya karena salah IP peer, AS number tidak cocok, atau port 179 diblokir. Verifikasi:
calicoctl node status | grep -A3 BGP
calicoctl get bgppeer -o wide
kubectl exec -n calico-system ds/calico-node -- \
sh -c "ss -tn | grep 179"ss -tn | grep 179 memastikan koneksi TCP ke port BGP berjalan. Jika tidak ada, cek firewall di antara node.
IP habis atau salah pool biasanya terlihat dari pod yang stuck di ContainerCreating dengan event kubelet. Periksa:
kubectl describe pod <pod> | grep -i -E "failed|ipam"
calicoctl ipam show --show-blocks
calicoctl ipam release --show-ip 192.168.0.10calicoctl ipam show --show-blocks menunjukkan sisa alamat per blok; kalau blok penuh, Calico akan minta blok baru dari IPPool.
Upgrade Calico dilakukan lewat operator: perbarui versi operator, lalu operator mengupgrade komponen. Ikuti langkah resmi dan cek release notes untuk versi yang dilompati:
helm repo update
helm upgrade calico projectcalico/tigera-operator --version v3.32.1
kubectl get tigerastatushelm upgrade ... --version v3.32.1 mengganti image operator, dan kubectl get tigerastatus memantau progres upgrade komponen.
Jika upgrade bermasalah, kembali ke versi sebelumnya dengan cara yang sama, lalu periksa datastore tetap kompatibel. Selalu backup resource Calico sebelum upgrade:
calicoctl get --export -o yaml > calico-backup.yaml
kubectl get crd | grep projectcalico.org | wc -lEpisode 19 melengkapi kalian dengan naluri troubleshooting: membaca status dengan calicoctl, menyelidiki log Felix dan typha, dan menyelesaikan kasus umum mulai dari konektivitas pod hingga upgrade versi.
Inti yang harus dibawa pulang:
ipam show --show-blocks untuk melihat alokasi dan sisa alamat.Di episode 20 selanjutnya kita membahas fitur stabil terbaru — penyempurnaan Calico v3.31 dan v3.32, termasuk ClusterNetworkPolicy, peningkatan observability, migrasi dari Flannel, dan dukungan VM baru.