Memecahkan masalah platform untuk kluster Kubernetes dengan dukungan Azure Arc
Dokumen ini menyediakan panduan pemecahan masalah untuk masalah dengan konektivitas, izin, dan agen Kubernetes dengan dukungan Azure Arc. Ini juga menyediakan panduan pemecahan masalah untuk Azure GitOps, yang dapat digunakan di kluster Kubernetes yang didukung Azure Arc atau Azure Kubernetes Service (AKS).
Untuk bantuan memecahkan masalah yang terkait dengan ekstensi, seperti GitOps (Flux v2), Azure Monitor Container Insights, Open Service Mesh, lihat Memecahkan masalah ekstensi untuk kluster Kubernetes dengan dukungan Azure Arc.
Azure CLI
Sebelum menggunakan az connectedk8s
atau az k8s-configuration
perintah CLI, pastikan bahwa Azure CLI diatur untuk bekerja terhadap langganan Azure yang benar.
az account set --subscription 'subscriptionId'
az account show
Jika Anda melihat kesalahan seperti cli.azext_connectedk8s.custom: Failed to download and install kubectl
, jalankan az aks install-cli --install-location ~/.azure/kubectl-client/kubectl
sebelum mencoba menjalankan az connectedk8s connect
lagi. Perintah ini menginstal klien kubectl, yang diperlukan agar perintah berfungsi.
Agen Azure Arc
Semua agen untuk Kubernetes dengan dukungan Azure Arc disebarkan sebagai pod di azure-arc
namespace layanan. Semua Pod harus berjalan dan melewati pemeriksaan kesehatan.
Pertama, verifikasi rilis Bagan Azure Arc Helm:
$ helm --namespace default status azure-arc
NAME: azure-arc
LAST DEPLOYED: Fri Apr 3 11:13:10 2020
NAMESPACE: default
STATUS: deployed
REVISION: 5
TEST SUITE: None
Jika rilis Bagan Helm tidak ditemukan atau hilang, coba sambungkan kluster ke Azure Arc lagi.
Jika rilis Bagan Helm ada dengan STATUS: deployed
, periksa status agen menggunakan kubectl
:
$ kubectl -n azure-arc get deployments,pods
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/cluster-metadata-operator 1/1 1 1 3d19h
deployment.apps/clusterconnect-agent 1/1 1 1 3d19h
deployment.apps/clusteridentityoperator 1/1 1 1 3d19h
deployment.apps/config-agent 1/1 1 1 3d19h
deployment.apps/controller-manager 1/1 1 1 3d19h
deployment.apps/extension-events-collector 1/1 1 1 3d19h
deployment.apps/extension-manager 1/1 1 1 3d19h
deployment.apps/flux-logs-agent 1/1 1 1 3d19h
deployment.apps/kube-aad-proxy 1/1 1 1 3d19h
deployment.apps/metrics-agent 1/1 1 1 3d19h
deployment.apps/resource-sync-agent 1/1 1 1 3d19h
NAME READY STATUS RESTARTS AGE
pod/cluster-metadata-operator-74747b975-9phtz 2/2 Running 0 3d19h
pod/clusterconnect-agent-cf4c7849c-88fmf 3/3 Running 0 3d19h
pod/clusteridentityoperator-79bdfd945f-pt2rv 2/2 Running 0 3d19h
pod/config-agent-67bcb94b7c-d67t8 1/2 Running 0 3d19h
pod/controller-manager-559dd48b64-v6rmk 2/2 Running 0 3d19h
pod/extension-events-collector-85f4fbff69-55zmt 2/2 Running 0 3d19h
pod/extension-manager-7c7668446b-69gps 3/3 Running 0 3d19h
pod/flux-logs-agent-fc7c6c959-vgqvm 1/1 Running 0 3d19h
pod/kube-aad-proxy-84d668c44b-j457m 2/2 Running 0 3d19h
pod/metrics-agent-58fb8554df-5ll67 2/2 Running 0 3d19h
pod/resource-sync-agent-dbf5db848-c9lg8 2/2 Running 0 3d19h
Semua Pod harus menampilkan STATUS
sebagai Running
dengan baik 3/3
atau 2/2
di bawah kolom READY
. Ambil log dan jelaskan Pod yang mengembalikan Error
atau CrashLoopBackOff
. Jika ada Pod yang terjebak dalam status Pending
, mungkin ada sumber daya yang tidak mencukupi pada node kluster. Meningkatkan skala kluster Anda bisa membuat pod ini beralih ke Running
status.
Penyediaan sumber daya gagal/Kesalahan waktu habis layanan
Jika Anda melihat kesalahan ini, periksa status Azure untuk melihat apakah ada peristiwa aktif yang berdampak pada status layanan Kubernetes dengan dukungan Azure Arc. Jika demikian, tunggu hingga peristiwa layanan diselesaikan, lalu coba onboarding lagi setelah menghapus sumber daya kluster yang terhubung yang ada. Jika tidak ada peristiwa layanan, dan Anda terus menghadapi masalah saat onboarding, buka permintaan dukungan sehingga kami dapat menyelidiki masalah tersebut.
Kesalahan klaim kelebihan
Jika Anda menerima klaim kelebihan penggunaan, pastikan bahwa perwakilan layanan Anda bukan bagian dari lebih dari 200 grup Microsoft Entra. Jika demikian, Anda harus membuat dan menggunakan perwakilan layanan lain yang bukan anggota lebih dari 200 grup, atau menghapus perwakilan layanan asli dari beberapa grupnya dan mencoba lagi.
Klaim kelebihan penggunaan juga dapat terjadi jika Anda telah mengonfigurasi lingkungan proksi keluar tanpa mengizinkan titik https://<region>.obo.arc.azure.com:8084/
akhir untuk lalu lintas keluar.
Jika tidak ada yang berlaku, buka permintaan dukungan sehingga kami dapat melihat masalah tersebut.
Masalah saat menyambungkan kluster Kubernetes ke Azure Arc
Menyambungkan kluster ke Azure Arc memerlukan akses ke langganan Azure dan cluster-admin
akses ke kluster target. Jika Anda tidak dapat mencapai kluster, atau jika Anda memiliki izin yang tidak memadai, menyambungkan kluster ke Azure Arc akan gagal. Pastikan Anda telah memenuhi semua prasyarat untuk menyambungkan kluster.
Tip
Untuk panduan visual untuk memecahkan masalah koneksi, lihat Mendiagnosis masalah koneksi untuk kluster Kube yang diaktifkan Arc.
Masalah resolusi DNS
Untuk bantuan terkait masalah yang terkait dengan resolusi DNS pada kluster Anda, lihat Men-debug Resolusi DNS.
Masalah konektivitas jaringan keluar
Masalah dengan konektivitas jaringan keluar dari kluster mungkin muncul karena alasan yang berbeda. Pertama pastikan semua persyaratan jaringan telah terpenuhi.
Jika Anda mengalami masalah konektivitas, dan kluster Anda berada di belakang server proksi keluar, pastikan Anda melewati parameter proksi selama onboarding kluster Anda dan bahwa proksi dikonfigurasi dengan benar. Untuk informasi selengkapnya, lihat Menyambungkan menggunakan server proksi keluar.
Anda mungkin melihat kesalahan yang mirip dengan yang berikut ini:
An exception has occurred while trying to execute the cluster diagnostic checks in the cluster. Exception: Unable to pull cluster-diagnostic-checks helm chart from the registry 'mcr.microsoft.com/azurearck8s/helmchart/stable/clusterdiagnosticchecks:0.1.2': Error: failed to do request: Head "https://mcr.microsoft.com/v2/azurearck8s/helmchart/stable/clusterdiagnosticchecks/manifests/0.1.2": dial tcp xx.xx.xx.219:443: i/o timeout
Kesalahan ini terjadi ketika https://k8connecthelm.azureedge.net
titik akhir diblokir. Pastikan jaringan Anda memungkinkan konektivitas ke titik akhir ini dan memenuhi semua persyaratan jaringan lainnya.
Tidak dapat mengambil sertifikat MSI
Masalah saat mengambil sertifikat MSI biasanya disebabkan oleh masalah jaringan. Periksa untuk memastikan semua persyaratan jaringan telah terpenuhi, lalu coba lagi.
Izin kluster tidak mencukupi
Jika file kubeconfig yang disediakan tidak memiliki izin yang memadai untuk menginstal agen Azure Arc, perintah Azure CLI mengembalikan kesalahan: Error: list: failed to list: secrets is forbidden: User "myuser" cannot list resource "secrets" in API group "" at the cluster scope
Untuk mengatasi masalah ini, pastikan bahwa pengguna yang menghubungkan kluster ke Azure Arc memiliki peran yang cluster-admin
ditetapkan.
Tidak dapat menyambungkan kluster OpenShift ke Azure Arc
Jika az connectedk8s connect
waktu habis dan gagal saat menyambungkan kluster OpenShift ke Azure Arc:
Pastikan bahwa kluster OpenShift memenuhi prasyarat versi: 4.5.41+ atau 4.6.35+ atau 4.7.18+.
Sebelum Anda menjalankan
az connectedk8s connnect
, jalankan perintah ini pada kluster:oc adm policy add-scc-to-user privileged system:serviceaccount:azure-arc:azure-arc-kube-aad-proxy-sa
Batas waktu penginstalan
Menyambungkan kluster Kube ke Azure Arc dengan Kube yang diaktifkan memerlukan pemasangan agen Arc Azure pada kluster tersebut. Jika klaster berjalan melalui koneksi internet yang lambat, penarikan gambar kontainer untuk agen mungkin memakan waktu lebih lama daripada batas waktu Azure CLI.
Kesalahan batas waktu Helm
Anda mungkin melihat kesalahan Unable to install helm release: Error: UPGRADE Failed: time out waiting for the condition
. Untuk mengatasi masalah ini, coba langkah-langkah berikut:
Jalankan perintah berikut:
kubectl get pods -n azure-arc
Periksa apakah
clusterconnect-agent
pod atauconfig-agent
menampilkancrashloopbackoff
, atau apakah tidak semua kontainer berjalan:NAME READY STATUS RESTARTS AGE cluster-metadata-operator-664bc5f4d-chgkl 2/2 Running 0 4m14s clusterconnect-agent-7cb8b565c7-wklsh 2/3 CrashLoopBackOff 0 1m15s clusteridentityoperator-76d645d8bf-5qx5c 2/2 Running 0 4m15s config-agent-65d5df564f-lffqm 1/2 CrashLoopBackOff 0 1m14s
azure-identity-certificate
Jika tidak ada, identitas terkelola yang ditetapkan sistem belum diinstal.kubectl get secret -n azure-arc -o yaml | grep name:
name: azure-identity-certificate
Untuk mengatasi masalah ini, coba hapus penyebaran Arc dengan menjalankan
az connectedk8s delete
perintah dan instal ulang. Jika masalah terus terjadi, itu bisa menjadi masalah dengan pengaturan proksi Anda. Dalam hal ini, coba sambungkan kluster Anda ke Azure Arc melalui proksi untuk menyambungkan kluster Anda ke Arc melalui proksi. Verifikasi juga bahwa semua prasyarat jaringan telah terpenuhi.clusterconnect-agent
Jika pod danconfig-agent
berjalan, tetapikube-aad-proxy
pod hilang, periksa kebijakan keamanan pod Anda. Pod ini menggunakanazure-arc-kube-aad-proxy-sa
akun layanan, yang tidak memiliki izin admin tetapi memerlukan izin untuk memasang jalur host.kube-aad-proxy
Jika pod terjebak dalamContainerCreating
status, periksa apakah sertifikat kube-aad-proxy telah diunduh ke kluster.kubectl get secret -n azure-arc -o yaml | grep name:
name: kube-aad-proxy-certificate
Jika sertifikat hilang, hapus penyebaran dan coba onboarding lagi, menggunakan nama yang berbeda untuk kluster. Jika masalah berlanjut, buka permintaan dukungan.
Kesalahan modul CryptoHash
Saat mencoba melakukan onboarding kluster Kubernetes ke platform Azure Arc, lingkungan lokal (misalnya, konsol klien Anda) dapat mengembalikan pesan kesalahan berikut:
Cannot load native module 'Crypto.Hash._MD5'
Terkadang, modul dependen gagal diunduh dengan sukses saat menambahkan ekstensi connectedk8s
dan k8s-configuration
melalui Azure CLI atau Azure PowerShell. Untuk memperbaiki masalah ini, hapus secara manual lalu tambahkan ekstensi di lingkungan lokal.
Untuk menghapus ekstensi, gunakan:
az extension remove --name connectedk8s
az extension remove --name k8s-configuration
Untuk menambahkan ekstensi, gunakan:
az extension add --name connectedk8s
az extension add --name k8s-configuration
Masalah koneksi kluster
Jika kluster Anda berada di belakang proksi keluar atau firewall, verifikasi bahwa koneksi websocket diaktifkan untuk *.servicebus.windows.net
, yang diperlukan khusus untuk fitur Cluster Connect . Selain itu, pastikan Anda menggunakan versi connectedk8s
terbaru ekstensi Azure CLI jika Anda mengalami masalah menggunakan koneksi kluster.
clusterconnect-agent
Jika pod dan kube-aad-proxy
hilang, maka fitur koneksi kluster kemungkinan dinonaktifkan pada kluster. Jika demikian, az connectedk8s proxy
gagal membuat sesi dengan kluster, dan Anda mungkin melihat kesalahan membaca Cannot connect to the hybrid connection because no agent is connected in the target arc resource.
Untuk mengatasi kesalahan ini, aktifkan fitur koneksi kluster pada kluster Anda:
az connectedk8s enable-features --features cluster-connect -n $CLUSTER_NAME -g $RESOURCE_GROUP
Untuk informasi selengkapnya, lihat Menggunakan kluster yang terhubung untuk terhubung dengan aman ke kluster Kubernetes dengan dukungan Azure Arc.
Aktifkan lokasi kustom menggunakan perwakilan layanan
Saat menyambungkan kluster Anda ke Azure Arc atau mengaktifkan lokasi kustom pada kluster yang ada, Anda mungkin melihat peringatan berikut:
Unable to fetch oid of 'custom-locations' app. Proceeding without enabling the feature. Insufficient privileges to complete the operation.
Peringatan ini terjadi saat Anda menggunakan perwakilan layanan untuk masuk ke Azure, dan perwakilan layanan tidak memiliki izin yang diperlukan. Untuk menghindari kesalahan ini, ikuti langkah-langkah berikut:
Masuk ke Azure CLI menggunakan akun pengguna Anda. Ambil ID Objek aplikasi Microsoft Entra yang digunakan oleh layanan Azure Arc:
az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query objectId -o tsv
Masuk ke Azure CLI menggunakan perwakilan layanan.
<objectId>
Gunakan nilai dari langkah sebelumnya untuk mengaktifkan lokasi kustom pada kluster:- Untuk mengaktifkan lokasi kustom saat menyambungkan kluster ke Arc, jalankan
az connectedk8s connect -n <cluster-name> -g <resource-group-name> --custom-locations-oid <objectId>
- Untuk mengaktifkan lokasi kustom pada kluster Kubernetes dengan dukungan Azure Arc yang ada, jalankan
az connectedk8s enable-features -n <cluster-name> -g <resource-group-name> --custom-locations-oid <objectId> --features cluster-connect custom-locations
- Untuk mengaktifkan lokasi kustom saat menyambungkan kluster ke Arc, jalankan
Langkah berikutnya
- Dapatkan panduan visual tentang cara mendiagnosis masalah koneksi.
- Lihat tips pemecahan masalah yang terkait dengan ekstensi kluster.