Mendiagnosis masalah koneksi untuk kluster Kubernetes dengan dukungan Azure Arc

Jika Anda mengalami masalah saat menyambungkan kluster ke Azure Arc, itu mungkin karena salah satu masalah yang tercantum di sini. Kami menyediakan dua bagan alur dengan bantuan terpandu: satu jika Anda tidak menggunakan server proksi, dan yang berlaku jika koneksi jaringan Anda menggunakan server proksi.

Tip

Langkah-langkah dalam diagram alur ini berlaku baik Anda menggunakan Azure CLI atau Azure PowerShell untuk menyambungkan kluster Anda. Namun, beberapa langkah memerlukan penggunaan Azure CLI. Jika Anda belum menginstal Azure CLI, pastikan untuk melakukannya sebelum memulai.

Koneksi tanpa proksi

Tinjau diagram alur ini untuk mendiagnosis masalah Anda saat mencoba menyambungkan kluster ke Azure Arc tanpa server proksi. Detail selengkapnya tentang setiap langkah disediakan di bawah ini.

Flowchart showing a visual representation of checking for connection issues when not using a proxy.

Apakah identitas Azure memiliki izin yang memadai?

Tinjau prasyarat untuk menghubungkan kluster dan pastikan bahwa identitas yang Anda gunakan untuk menghubungkan kluster memiliki izin yang diperlukan.

Apakah Anda menjalankan Azure CLI versi terbaru?

Pastikan Anda memiliki versi terbaru yang terinstal.

Jika Anda menyambungkan kluster dengan menggunakan Azure PowerShell, pastikan Anda menjalankan versi terbaru.

Apakah ekstensi adalah connectedk8s versi terbaru?

Perbarui ekstensi Azure CLI connectedk8s ke versi terbaru dengan menjalankan perintah ini:

az extension update --name connectedk8s

Jika Anda belum menginstal ekstensi, Anda dapat melakukannya dengan menjalankan perintah berikut:

az extension add --name connectedk8s

Apakah kubeconfig menunjuk ke kluster yang tepat?

Jalankan kubectl config get-contexts untuk mengonfirmasi nama konteks target. Kemudian atur konteks default ke kluster yang tepat dengan menjalankan kubectl config use-context <target-cluster-name>.

Apakah semua penyedia sumber daya yang diperlukan terdaftar?

Pastikan bahwa penyedia sumber daya Microsoft.Kubernetes, Microsoft.KubernetesConfiguration, dan Microsoft.ExtendedLocation terdaftar.

Apakah semua persyaratan jaringan terpenuhi?

Tinjau persyaratan jaringan dan pastikan bahwa tidak ada titik akhir yang diperlukan yang diblokir.

Apakah semua pod dalam azure-arc namespace layanan berjalan?

Jika semuanya bekerja dengan benar, pod Anda semuanya harus dalam status Running . Jalankan kubectl get pods -n azure-arc untuk mengonfirmasi apakah status pod apa pun bukan Running.

Masih mengalami masalah?

Langkah-langkah di atas akan menyelesaikan banyak masalah koneksi umum, tetapi jika Anda masih tidak dapat tersambung dengan sukses, buat file log pemecahan masalah lalu buka permintaan dukungan sehingga kami dapat menyelidiki masalah lebih lanjut.

Untuk menghasilkan file log pemecahan masalah, jalankan perintah berikut:

az connectedk8s troubleshoot -g <myResourceGroup> -n <myK8sCluster>

Saat Anda membuat permintaan dukungan, di bagian Detail tambahan, gunakan opsi Unggah file untuk mengunggah file log yang dihasilkan.

Koneksi dengan server proksi

Jika Anda menggunakan server proksi pada setidaknya satu komputer, selesaikan lima langkah pertama bagan alur non-proksi (melalui pendaftaran penyedia sumber daya) untuk langkah-langkah pemecahan masalah dasar. Kemudian, jika Anda masih mengalami masalah, tinjau diagram alur berikutnya untuk langkah-langkah pemecahan masalah tambahan. Detail selengkapnya tentang setiap langkah disediakan di bawah ini.

Flowchart showing a visual representation of checking for connection issues when using a proxy.

Apakah mesin menjalankan perintah di belakang server proksi?

Jika mesin menjalankan perintah di belakang server proksi, Anda harus mengatur semua variabel lingkungan yang diperlukan. Untuk informasi selengkapnya, lihat Menyambungkan menggunakan server proksi keluar.

Contohnya:

export HTTP_PROXY="http://<proxyIP>:<proxyPort>"
export HTTPS_PROXY="https://<proxyIP>:<proxyPort>"
export NO_PROXY="<cluster-apiserver-ip-address>:<proxyPort>"

Apakah server proksi hanya menerima sertifikat tepercaya?

Pastikan untuk menyertakan jalur file sertifikat dengan menyertakan --proxy-cert <path-to-cert-file> saat menjalankan az connectedk8s connect perintah.

az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-cert <path-to-cert-file>

Apakah server proksi dapat menjangkau titik akhir jaringan yang diperlukan?

Tinjau persyaratan jaringan dan pastikan bahwa tidak ada titik akhir yang diperlukan yang diblokir.

Apakah server proksi hanya menggunakan HTTP?

Jika server proksi Anda hanya menggunakan HTTP, Anda dapat menggunakan proxy-http untuk kedua parameter.

Jika server proksi Anda disiapkan dengan HTTP dan HTTPS, jalankan az connectedk8s connect perintah dengan --proxy-https parameter dan --proxy-http yang ditentukan. Pastikan Anda menggunakan --proxy-http untuk proksi HTTP dan --proxy-https untuk proksi HTTPS.

az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-https https://<proxy-server-ip-address>:<port> --proxy-http http://<proxy-server-ip-address>:<port>  

Apakah server proksi memerlukan rentang lewati untuk komunikasi layanan-ke-layanan?

Jika Anda memerlukan rentang lewati, gunakan --proxy-skip-range <excludedIP>,<excludedCIDR> dalam perintah Anda az connectedk8s connect .

az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-https https://<proxy-server-ip-address>:<port> --proxy-http http://<proxy-server-ip-address>:<port> --proxy-skip-range <excludedIP>,<excludedCIDR>

Apakah semua pod dalam azure-arc namespace layanan berjalan?

Jika semuanya bekerja dengan benar, pod Anda semuanya harus dalam status Running . Jalankan kubectl get pods -n azure-arc untuk mengonfirmasi apakah status pod apa pun bukan Running.

Masih mengalami masalah?

Langkah-langkah di atas akan menyelesaikan banyak masalah koneksi umum, tetapi jika Anda masih tidak dapat tersambung dengan sukses, buat file log pemecahan masalah lalu buka permintaan dukungan sehingga kami dapat menyelidiki masalah lebih lanjut.

Untuk menghasilkan file log pemecahan masalah, jalankan perintah berikut:

az connectedk8s troubleshoot -g <myResourceGroup> -n <myK8sCluster>

Saat Anda membuat permintaan dukungan, di bagian Detail tambahan, gunakan opsi Unggah file untuk mengunggah file log yang dihasilkan.

Langkah berikutnya