Container Service for Kubernetes (ACK) menyediakan fitur diagnostik jaringan untuk membantu Anda memecahkan masalah jaringan umum, seperti koneksi antar pod, antara kluster ACK dan Internet, serta antara Layanan LoadBalancer dan Internet. Topik ini menjelaskan cara kerja fitur diagnostik jaringan dan cara menggunakannya untuk mendiagnosis masalah koneksi.
Saat menggunakan fitur diagnostik jaringan, ACK menjalankan program pengumpulan data pada setiap node dalam kluster dan mengumpulkan hasil diagnostik. Program ini mengumpulkan pesan kesalahan utama dari log sistem dan informasi operasional seperti versi sistem, beban, Docker, dan Kubelet. Program pengumpulan data tidak mengumpulkan informasi bisnis atau data sensitif.
Prasyarat
Sebuah kluster ACK dikelola telah dibuat.
Pengenalan diagnostik jaringan
Fitur diagnostik jaringan di konsol ACK memungkinkan Anda menentukan alamat IP sumber dan tujuan, port tujuan, serta protokol dari koneksi yang bermasalah untuk dengan cepat mendiagnosis koneksi. Anda tidak memerlukan pengetahuan tentang arsitektur jaringan kontainer, plug-in jaringan, atau pemeliharaan kernel sistem untuk menggunakan fitur ini.
Fitur diagnostik jaringan dikembangkan berdasarkan proyek open source KubeSkoop. KubeSkoop adalah alat diagnostik jaringan Kubernetes untuk berbagai plug-in jaringan dan penyedia Infrastruktur sebagai Layanan (IaaS). Anda dapat menggunakan KubeSkoop untuk mendiagnosis masalah jaringan umum dalam kluster Kubernetes, serta memantau dan menganalisis jalur kritis kernel dengan menggunakan Extended Berkeley Packet Filter (eBPF). Topik ini hanya memperkenalkan diagnostik jaringan. Untuk informasi lebih lanjut tentang pemantauan dan analisis mendalam, lihat Gunakan KubeSkoop untuk Memecahkan Masalah Jaringan.
Cara kerja fitur diagnostik jaringan

Buat Topologi: Fitur ini secara otomatis membuat topologi berdasarkan informasi jaringan yang Anda berikan dan informasi yang dikumpulkan dari kluster ACK, termasuk informasi tentang pod, node, Layanan, dan kebijakan jaringan.
Kumpulkan Informasi: Fitur diagnostik jaringan mengumpulkan informasi tentang waktu proses, tumpukan jaringan, dan infrastruktur jaringan. Informasi tersebut digunakan untuk pemecahan masalah dan analisis jaringan.
Simulasikan Rute Jaringan: Fitur diagnostik jaringan menjalankan perintah pada Instance Elastic Compute Service (ECS) atau menerapkan pod kolektor di kluster ACK untuk mengumpulkan informasi tumpukan jaringan dari node atau kontainer yang didiagnosis, termasuk perangkat jaringan, sysctl, iptables, dan IPVS. Selain itu, fitur ini juga mengumpulkan informasi tentang tabel rute, grup keamanan, dan gateway NAT di cloud. Sistem membandingkan informasi yang dikumpulkan dengan konfigurasi jaringan yang diharapkan untuk mengidentifikasi masalah konfigurasi jaringan. Sebagai contoh, sistem mensimulasikan iptables dan rute, memeriksa status perangkat jaringan, serta memverifikasi tabel rute dan aturan grup keamanan di cloud.
Dapatkan Hasil Diagnostik: Fitur diagnostik jaringan membandingkan konfigurasi jaringan aktual dengan konfigurasi yang diharapkan, lalu menyoroti node abnormal dan masalah jaringan dalam topologi jaringan.
Bekerja dengan fitur diagnostik jaringan
Batasan
Pod yang akan didiagnosis harus dalam keadaan Running.
Layanan LoadBalancer untuk akses eksternal hanya mendukung instance Classic Load Balancer (CLB) Lapisan 4, dengan jumlah pod backend tidak lebih dari 10.
Kluster ACK Serverless dan node virtual tidak mendukung diagnostik jaringan.
Prosedur
Masuk ke konsol ACK. Di panel navigasi sebelah kiri, klik Clusters.
Di halaman Clusters, klik nama kluster yang ingin Anda diagnosis. Di panel navigasi sebelah kiri, pilih .
Di halaman Diagnosis, klik Network diagnosis. Di halaman Network diagnosis, klik Diagnosis.
Di panel Network, tentukan Source address, Destination address, Destination port, dan Protocol, baca peringatan, dan pilih I know and agree, lalu klik Create diagnosis.
Untuk informasi lebih lanjut tentang parameter, lihat Parameter untuk Diagnostik Masalah Jaringan Umum.

Di halaman Diagnosis result, Anda dapat melihat hasil diagnosis. Bagian Packet paths menampilkan semua node yang didiagnosis.
Node abnormal disorot. Untuk informasi lebih lanjut tentang hasil diagnosis umum, lihat Hasil Diagnosis Umum dan Solusi.

Parameter untuk diagnostik masalah jaringan umum
Skenario 1: Mendiagnosis jaringan antara pod dan node
Anda dapat menggunakan fitur diagnostik jaringan untuk mendiagnosis jaringan antara pod atau antara pod dan node. Tabel berikut menjelaskan parameter.
Parameter | Deskripsi |
Alamat sumber | Alamat IP dari pod atau node. |
Alamat tujuan | Alamat IP dari pod atau node lainnya. |
Port tujuan | Port yang akan didiagnosis. |
Protokol | Protokol yang akan didiagnosis. |
Skenario 2: Mendiagnosis jaringan antara pod dan Layanan atau antara node dan Layanan
Anda dapat menentukan IP kluster dari Layanan untuk memeriksa apakah node atau pod dapat mengakses Layanan dan memverifikasi konfigurasi jaringan Layanan. Tabel berikut menjelaskan parameter.
Parameter | Deskripsi |
Alamat sumber | Alamat IP dari pod atau node. |
Alamat tujuan | IP kluster dari Layanan. |
Port tujuan | Port yang akan didiagnosis. |
Protokol | Protokol yang akan didiagnosis. |
Skenario 3: Mendiagnosis resolusi DNS
Saat alamat tujuan adalah nama domain, Anda perlu memeriksa tidak hanya koneksi antara alamat sumber dan tujuan tetapi juga layanan DNS di kluster. Anda dapat menggunakan fitur diagnostik jaringan untuk memeriksa apakah pod dapat mengakses Layanan kube-dns di namespace kube-system.
Jalankan perintah berikut untuk menanyakan IP kluster Layanan kube-dns di namespace kube-system:
kubectl get svc -n kube-system kube-dnsOutput yang Diharapkan:
kube-dns ClusterIP 172.16.XX.XX <none> 53/UDP,53/TCP,9153/TCP 6d
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEOutput menunjukkan bahwa IP kluster Layanan kube-dns adalah 172.16.XX.XX. Tentukan IP kluster Layanan kube-dns sebagai alamat tujuan dan konfigurasikan parameter lainnya.
Parameter | Deskripsi |
Alamat sumber | Alamat IP dari pod atau node. |
Alamat tujuan | IP kluster Layanan kube-dns. |
Port tujuan | 53 |
Protokol | udp |
Skenario 4: Mendiagnosis jaringan antara pod atau node dan Internet
Anda dapat menggunakan fitur diagnostik jaringan untuk mendiagnosis jaringan antara pod atau node dan alamat IP publik. Jika alamat tujuan adalah nama domain, Anda perlu mendapatkan alamat IP publik yang dipetakan ke nama domain tersebut. Tabel berikut menjelaskan parameter.
Parameter | Deskripsi |
Alamat sumber | Alamat IP dari pod atau node. |
Alamat tujuan | Alamat IP publik. |
Port tujuan | Port yang akan didiagnosis. |
Protokol | Protokol yang akan didiagnosis. |
Skenario 5: Mendiagnosis jaringan antara Internet dan Layanan LoadBalancer
Jika akses eksternal ke Layanan LoadBalancer gagal, Anda dapat menentukan alamat IP publik sebagai alamat sumber dan alamat IP eksternal Layanan LoadBalancer sebagai alamat tujuan untuk mendiagnosis koneksi. Tabel berikut menjelaskan parameter.
Parameter | Deskripsi |
Alamat sumber | Alamat IP publik. |
Alamat tujuan | Alamat IP eksternal Layanan LoadBalancer. |
Port tujuan | Port yang akan didiagnosis. |
Protokol | Protokol yang akan didiagnosis. |
Hasil diagnosis umum dan solusi
Hasil Diagnosis | Deskripsi | Solusi |
pod container ... belum siap | Kontainer dalam pod belum siap. | Periksa status kesehatan pod dan perbaiki pod. |
kebijakan jaringan ... menolak paket dari ... | Paket diblokir oleh kebijakan jaringan. | Ubah kebijakan jaringan. |
tidak ada proses yang mendengarkan pada ... | Tidak ada proses pendengar di kontainer atau di node yang menggunakan protokol saat ini untuk mendengarkan port. | Periksa apakah proses pendengar berjalan normal dan verifikasi parameter untuk diagnostik jaringan, seperti port dan protokol. |
tidak ada rute ke host .../rute tidak valid ... untuk paket ... | Tidak ditemukan rute atau rute tidak menunjuk ke tujuan yang diinginkan. | Periksa apakah plug-in jaringan berfungsi dengan normal. |
... tidak memiliki grup keamanan yang sama | Dua Instance ECS menggunakan grup keamanan yang berbeda. Paket mungkin dibuang. | Konfigurasikan Instance ECS untuk menggunakan grup keamanan yang sama. |
grup keamanan ... tidak mengizinkan paket ... | Paket diblokir oleh grup keamanan Instance ECS. | Ubah aturan grup keamanan untuk menerima paket dari alamat IP tertentu. |
| Tabel rute tidak berisi rute yang menunjuk ke alamat tujuan. | Jika alamat tujuan adalah alamat IP publik, periksa konfigurasi Gateway NAT Internet. |
| Rute di tabel rute tidak menunjuk ke alamat tujuan yang diinginkan. | Jika alamat tujuan adalah alamat IP publik, periksa konfigurasi Gateway NAT Internet. |
tidak ada entri snat di gateway nat ... | Entri SNAT yang diinginkan tidak ditemukan di Gateway NAT Internet. | Periksa konfigurasi SNAT Gateway NAT Internet. |
backend ... status kesehatan untuk port ..., bukan "normal" | Beberapa pod backend dari instance CLB gagal melewati pemeriksaan kesehatan. | Periksa apakah pod backend yang diinginkan terhubung dengan instance CLB dan apakah aplikasi yang berjalan di pod backend terkait sehat. |
tidak dapat menemukan port pendengaran ... untuk slb ... | Port pendengaran tidak ditemukan di instance CLB. | Periksa konfigurasi Layanan LoadBalancer dan parameter untuk diagnostik jaringan, seperti port dan protokol. |
status loadbalancer untuk ... port ... bukan "running" | Pendengar instance CLB tidak dalam keadaan Running. | Periksa apakah port pendengaran normal. |
layanan ... tidak memiliki endpoint yang valid | Layanan tidak memiliki endpoint. | Periksa apakah pemilih label Layanan berfungsi sesuai harapan, apakah endpoint Layanan ada, dan apakah endpoint tersebut sehat. Untuk informasi lebih lanjut tentang akses internal ke Layanan LoadBalancer, lihat Instance CLB tidak dapat diakses dari dalam kluster. |