Mengatasi kesalahan saat mengaktifkan atau menonaktifkan Azure Arc pada kluster beban kerja AKS Anda di AKS yang diaktifkan oleh Arc

Berlaku untuk: AKS di Azure Local, AKS di Windows Server

Artikel ini menjelaskan kesalahan yang mungkin Anda temui (dan solusinya) saat menyambungkan atau memutuskan kluster beban kerja AKS Anda ke Azure Arc menggunakan cmdlet Enable-AksHciArcConnection PowerShell dan Disable-AksHciArcConnection di AKS Arc. Untuk masalah yang tidak tercakup dalam artikel ini, lihat Pemecahan Masalah Kubernetes yang diaktifkan Arc.

Anda juga dapat membuka masalah dukungan jika tidak ada solusi yang tercantum yang berlaku untuk Anda.

Kesalahan: "Kluster beban kerja dengan nama 'my-aks-cluster' tidak ditemukan"

Kesalahan ini berarti Anda belum membuat kluster beban kerja, atau Anda salah mengeja nama kluster beban kerja.

Jalankan Get-AksHciCluster untuk memastikan Anda memiliki nama yang benar atau kluster yang ingin Anda sambungkan ke Arc ada.

Kesalahan: "System.Management.Automation.RemoteException Memulai proses onboarding Kluster "azure-arc-onboarding" diatur..."

Kesalahan berikut dapat terjadi ketika Anda menggunakan Pusat Admin Windows untuk membuat kluster beban kerja dan menyambungkannya ke Kubernetes dengan dukungan Arc:

System.Management.Automation.RemoteException Starting onboarding process Cluster "azure-arc-onboarding" set. User "azure-arc-onboarding" set. Context "azure-arc-onboarding" created. Switched to context "azure-arc-onboarding". Azure login az login: error: argument --password/-p: expected one argument usage: az login [-h] [--verbose] [--debug] [--only-show-errors] [--output {json,jsonc,yaml,yamlc,table,tsv,none}] [--query JMESPATH] [--username USERNAME] [--password PASSWORD] [--service-principal] [--tenant TENANT] [--allow-no-subscriptions] [-i] [--use-device-code] [--use-cert-sn-issuer] : Job Failed Condition]

Untuk mengatasi masalah ini, tinjau opsi di bawah ini:

  • Opsi 1: Hapus kluster beban kerja dan coba lagi menggunakan Pusat Admin Windows.
  • Opsi 2: Di PowerShell, periksa apakah kluster telah berhasil dibuat dengan menjalankan perintah Dapatkan-AksHciCluster, lalu gunakan Enable-AksHciArcConnection untuk menghubungkan kluster Anda ke Arc.

'Enable-AksHciArcConnection' gagal jika 'Connect-AzAccount' digunakan untuk masuk ke Azure

Saat Anda menggunakan Connect-AzAccount untuk masuk ke Azure, Anda mungkin mengatur langganan yang berbeda sebagai konteks default Anda daripada yang Anda berikan sebagai input ke Set-AksHciRegistration. Ketika Anda kemudian menjalankan Enable-AksHciArcConnection, perintah mengharapkan langganan yang digunakan dalam Set-AksHciRegistration. Namun, Enable-AksHciArcConnection membuat set langganan default menggunakan Connect-AzAccount, dan karenanya, dapat menyebabkan kesalahan.

Untuk mencegah kesalahan seperti ini, ikuti salah satu opsi di bawah ini:

  • Opsi 1: Jalankan Set-AksHciRegistration untuk masuk ke Azure dengan parameter yang sama (grup langganan serta sumber daya) yang digunakan saat pertama kali menjalankan perintah untuk menghubungkan host AKS Anda ke Azure untuk penagihan. Anda kemudian dapat menggunakan Enable-AksHciArcConnection -Name <ClusterName> dengan nilai default, dan kluster Anda akan terhubung ke Arc di bawah langganan penagihan host AKS dan grup sumber daya.

  • Opsi 2: Jalankan Enable-AksHciArcRegistration dengan semua parameter, subscription, resource group, location, tenantdan secret, untuk menghubungkan kluster Anda ke Azure Arc di bawah grup langganan dan sumber daya yang berbeda dari host AKS. Anda juga harus menjalankan Enable-AksHciArcRegistration jika tidak memiliki cukup izin untuk menghubungkan kluster ke Azure Arc menggunakan Akun Azure (misalnya, jika Anda bukan pemilik langganan).

Kesalahan: 'Waktu habis menunggu kondisi'

Kesalahan ini pada umumnya menunjuk ke salah satu masalah berikut:

  • Kluster dibuat di Azure VM di lingkungan virtual, atau Anda menyebarkan AKS di Azure Local pada beberapa tingkat virtualisasi.
  • Internet yang lambat menyebabkan waktu habis.

Jika salah satu skenario di atas berlaku untuk Anda, jalankan Disable-AksHciArcConnection, dan coba sambungkan lagi. Jika skenario di atas tidak berlaku untuk Anda, buka masalah dukungan untuk AKS di Azure Local.

Kesalahan: "Rahasia "sh.helm.release.v1.azure-arc.v1" tidak ditemukan"

Kesalahan ini berarti bahwa server API Kubernetes Anda tidak dapat dihubungi.

Coba jalankan Disable-AksHciArcConnection perintah lagi, lalu buka portal Azure untuk mengonfirmasi bahwa sumber daya Anda connectedCluster benar-benar dihapus. Anda juga dapat menjalankan kubectl get ns -A untuk mengonfirmasi bahwa namespace layanan, azure-arc, tidak ada pada kluster Anda.

Kesalahan: "Koneksi ke Azure gagal. Silakan jalankan 'Set-AksHciRegistration' dan coba lagi"

Kesalahan ini berarti info masuk Anda ke Azure sudah kedaluwarsa.

Gunakan Set-AksHciRegistration untuk masuk ke Azure sebelum menjalankan Enable-AksHciArcConnection perintah lagi. Saat menjalankan ulang Set-AksHciRegistration, pastikan Anda menggunakan detail langganan dan grup sumber daya yang sama dengan yang digunakan saat pertama kali mendaftarkan host AKS ke Azure untuk penagihan. Jika Anda menjalankan ulang perintah dengan langganan atau grup sumber daya yang berbeda, maka tidak akan didaftarkan. Setelah langganan dan grup sumber daya diatur dalam Set-AksHciRegistration, mereka tidak dapat diubah tanpa menghapus instalan AKS Arc.

Kesalahan: "'My-Cluster' bukan nama kluster yang valid. Nama harus huruf kecil dan cocok dengan pola ekspresi reguler: '^[a-z0-9][a-z0-9-]*[a-z0-9]$'"

Kesalahan ini menunjukkan bahwa kluster beban kerja tidak mengikuti konvensi penamaan Kubernetes.

Seperti yang disarankan kesalahan, pastikan nama kluster huruf kecil dan cocok dengan pola ekspresi reguler: '^[a-z0-9][a-z0-9-]*[a-z0-9]$'.

Kesalahan: "addons.msft.microsoft "demo-arc-onboarding" sudah ada"

Kesalahan ini biasanya berarti Anda sudah menghubungkan kluster AKS ke Kubernetes dengan dukungan Arc. Untuk mengonfirmasi tersambung, buka portal Azure dan periksa di bawah langganan dan grup sumber daya yang Anda berikan saat menjalankan Set-AksHciRegistration (jika Anda menggunakan nilai default) atau Enable-AksHciArcConnection (jika Anda tidak menggunakan nilai default). Anda juga dapat mengonfirmasi apakah AKS anda di kluster Azure Local tersambung ke Azure dengan menjalankan az connectedk8s show perintah Azure CLI. Jika Anda tidak melihat kluster beban kerja, jalankan Disable-AksHciArcConnection dan coba lagi.

Kesalahan: "autorest/azure: Layanan mengembalikan kesalahan. Status=404 Code="ResourceNotFound"..."

Kesalahan ini berarti bahwa Azure tidak dapat menemukan sumber daya Azure Resource Manager yang connectedCluster terkait dengan kluster Anda:

"autorest/azure: Layanan mengembalikan kesalahan. Status=404 Code="ResourceNotFound" Message="Sumber Daya 'Microsoft.Kubernetes/connectedClusters/my-workload-cluster' di bawah grup sumber daya 'AKS-HCI2' tidak ditemukan. Untuk detail lebih lanjut, silakan buka https://aka.ms/ARMResourceNotFoundFix"]"

Anda mungkin mengalami kesalahan ini apabila:

  • Anda menyediakan grup sumber daya atau langganan yang salah saat menjalankan Disable-AksHciArcConnection cmdlet.
  • Anda menghapus sumber daya di portal Microsoft Azure secara manual.
  • Azure Resource Manager tidak dapat menemukan sumber daya Azure Anda.

Untuk mengatasi kesalahan ini, misalnya yang ditunjukkan dalam pesan kesalahan, lihat mengatasi sumber daya yang tidak menemukan kesalahan.

Kesalahan: "Cluster addons arc uninstall Error: namespace "azure-arc" tidak ditemukan"

Kesalahan ini biasanya berarti Anda sudah menghapus instalan agen Arc dari kluster beban kerja Anda, atau Anda menghapus azure-arc namespace secara manual menggunakan kubectl perintah .

Buka portal Azure untuk mengonfirmasi bahwa Anda tidak memiliki sumber daya yang bocor. Misalnya, verifikasi bahwa Anda tidak melihat connectedCluster sumber daya di grup langganan dan sumber daya.

Kesalahan: "Langganan Azure tidak dikonfigurasi dengan benar"

Anda mungkin mengalami masalah ini jika Anda belum mengonfigurasi langganan Azure dengan penyedia sumber daya Kubernetes dengan dukungan Arc. Saat ini kami memeriksa bahwa Microsoft.Kubernetes dan Microsoft.KubernetesConfiguration sudah dikonfigurasi.

Untuk informasi selengkapnya tentang mengaktifkan penyedia sumber daya ini, lihat Mendaftarkan penyedia untuk Kubernetes yang didukung Arc.

Kesalahan: "Tidak dapat membaca ConfigMap 'azure-clusterconfig' di namespace layanan 'azure-arc'"

Anda mungkin mengalami masalah ini saat mencoba mengaktifkan kembali koneksi Arc pada kluster AKS setelah menonaktifkan koneksi yang ada. Kesalahan ini disebabkan oleh perubahan pada namespace tempat rahasia Azure Arc disimpan.

Langkah-langkah yang menyebabkan kesalahan adalah:

  1. Sambungkan kluster beban kerja ke Azure Arc dengan Enable-AksHciArcConnection -name $clusterName.
  2. Putuskan sambungan kluster dari Azure Arc: Disable-AksHciArcConnection -name $clusterName.
  3. Sambungkan kluster beban kerja ke Azure Arc dengan perintah ini lagi: Enable-AksHciArcConnection -name $clusterName.

Kesalahannya adalah:

returned a non zero exit code 1 [Error: Job azure-arc-onboarding terminated with Failed to run CLI command: Error from server (NotFound): namespaces "azure-arc"
not found
System.Management.Automation.RemoteException
ERROR: Unable to read ConfigMap 'azure-clusterconfig' in 'azure-arc' namespace:
Error Response: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"configmaps \"azure-clusterconfig\" not
found","reason":"NotFound","details":{"name":"azure-clusterconfig","kind":"configmaps"},"code":404}
System.Management.Automation.RemoteException
System.Management.Automation.RemoteException
: Job Failed Condition

Enable-AksHciArcConnection selalu gagal, dan setelah Anda menjalankan Disable-AksHciArcConnection, ada rahasia yang tersisa di namespace azure-arc-release. Untuk memeriksa apakah rahasia ada, Anda dapat menjalankan perintah berikut dan memastikan bahwa tidak ada rahasia yang tercantum:

kubectl get secret -nazure-arc-release sh.helm.release.v1.azure-arc.v1

Untuk mengatasi masalah ini, hapus namespace azure-arc-release setelah menjalankan Disable-AksHciArcConnection:

$clusterName = "<name of cluster>"
Get-AksHciCredential -name $clusterName
kubectl delete namespace azure-arc-release
Disable-AksHciArcConnection -name $clusterName
Enable-AksHciArcConnection -name $clusterName