Azure Arc özellikli Kubernetes kümeleri için platform sorunlarını giderme

Bu belgede Azure Arc özellikli Kubernetes bağlantısı, izinleri ve aracılarıyla ilgili sorunlar için sorun giderme kılavuzları sağlanır. Ayrıca Azure Arc özellikli Kubernetes veya Azure Kubernetes Service (AKS) kümelerinde kullanılabilen Azure GitOps için sorun giderme kılavuzları sağlar.

GitOps (Flux v2), Azure İzleyici Container Analizler, Open Service Mesh gibi uzantılarla ilgili sorunları giderme konusunda yardım için bkz. Azure Arc özellikli Kubernetes kümeleri için uzantı sorunlarını giderme.

Azure CLI

veya az k8s-configuration CLI komutlarını kullanmadan az connectedk8s önce, Azure CLI'nin doğru Azure aboneliğiyle çalışacak şekilde ayarlandığından emin olun.

az account set --subscription 'subscriptionId'
az account show

Azure Arc aracıları

Azure Arc özellikli Kubernetes için tüm aracılar ad alanında azure-arc pod olarak dağıtılır. Tüm podlar çalışıyor ve sistem durumu denetimlerini geçiriyor olmalıdır.

İlk olarak Azure Arc Helm Grafiği sürümünü doğrulayın:

$ 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

Helm Grafiği sürümü bulunamaz veya eksikse kümeyi Azure Arc'a yeniden bağlamayı deneyin.

Helm Grafiği sürümü ile mevcutsa STATUS: deployedkullanarak kubectlaracıların durumunu denetleyin:

$ 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

Tüm podlar sütunun READY altında veya 2/2 altında 3/3 olarak Running gösterilmelidirSTATUS. Günlükleri getirin ve veya CrashLoopBackOffdöndüren Error podları açıklayın. Herhangi bir pod durumunda takılırsa küme düğümlerinde Pending yeterli kaynak olmayabilir. Kümenizin ölçeğini artırmak, bu podların duruma geçişini Running sağlayabilir.

Kaynak sağlama başarısız oldu/Hizmet zaman aşımı hatası

Bu hataları görürseniz Azure Arc özellikli Kubernetes hizmetinin durumunu etkileyen etkin olaylar olup olmadığını görmek için Azure durumunu denetleyin. Bu durumda, hizmet olayı çözümlenene kadar bekleyin, ardından mevcut bağlı küme kaynağını sildikten sonra yeniden eklemeyi deneyin. Hizmet olayı yoksa ve ekleme sırasında sorunlarla karşılaşmaya devam ederseniz, sorunu inceleyebilmemiz için bir destek bileti açın.

Fazla kullanım talepleri hatası

Fazla kullanım talebi alırsanız hizmet sorumlunuzun 200'den fazla Microsoft Entra grubunun parçası olmadığından emin olun. Bu durumda, 200'den fazla grubun üyesi olmayan başka bir hizmet sorumlusu oluşturup kullanmanız veya bazı gruplarından özgün hizmet sorumlusunu kaldırıp yeniden denemeniz gerekir.

Giden trafik için uç noktaya https://<region>.obo.arc.azure.com:8084/ izin vermeden bir giden ara sunucu ortamı yapılandırdıysanız da fazla kullanım talebi oluşabilir.

Bunların hiçbiri geçerli değilse sorunu inceleyebilmemiz için bir destek isteği açın.

Kubernetes kümelerini Azure Arc'a bağlarken karşılaşılan sorunlar

Kümeleri Azure Arc'a Bağlan için Azure aboneliğine ve cluster-admin hedef kümeye erişim gerekir. Kümeye ulaşamıyorsanız veya izinleriniz yetersizse, kümeyi Azure Arc'a bağlama başarısız olur. Bir kümeye bağlanmak için tüm önkoşulları karşıladığınızdan emin olun.

Bahşiş

Bağlantı sorunlarını gidermeye yönelik görsel bir kılavuz için bkz . Arc özellikli Kubernetes kümeleri için bağlantı sorunlarını tanılama.

DNS çözümleme sorunları

Kümenizdeki DNS çözümlemesiyle ilgili sorunları çözme konusunda yardım için DNS Çözümlemesinde Hata Ayıklama'ya gidin.

Giden ağ bağlantısı sorunları

Kümeden giden ağ bağlantısıyla ilgili sorunlar farklı nedenlerle ortaya çıkabilir. İlk olarak tüm ağ gereksinimlerinin karşılandığından emin olun.

Bağlantı sorunlarıyla karşılaşırsanız ve kümeniz giden ara sunucunun arkasındaysa, kümenizi eklerken ara sunucu parametrelerini geçtiğinizden ve ara sunucunun doğru yapılandırıldığından emin olun. Daha fazla bilgi için bkz. giden ara sunucu kullanarak Bağlan.

Aşağıdakine benzer bir hata görebilirsiniz:

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

Bu hata, uç nokta engellendiğinde https://k8connecthelm.azureedge.net oluşur. Ağınızın bu uç noktaya bağlantıya izin verdiğinden ve diğer tüm ağ gereksinimlerini karşıladığından emin olun.

MSI sertifikası alınamıyor

MSI sertifikasını alma sorunları genellikle ağ sorunlarından kaynaklanıyor. Tüm ağ gereksinimlerinin karşılandığından emin olun ve yeniden deneyin.

Yetersiz küme izinleri

Sağlanan kubeconfig dosyasının Azure Arc aracılarını yüklemek için yeterli izinleri yoksa, Azure CLI komutu bir hata döndürür: Error: list: failed to list: secrets is forbidden: User "myuser" cannot list resource "secrets" in API group "" at the cluster scope

Bu sorunu çözmek için kümeyi Azure Arc'a bağlayan kullanıcının rolünün cluster-admin atandığından emin olun.

OpenShift kümesi Azure Arc'a bağlanamadı

OpenShift kümesini Azure Arc'a bağlarken zaman aşımına uysa ve başarısız oluyorsa az connectedk8s connect :

  1. OpenShift kümesinin sürüm önkoşullarını karşıladığından emin olun: 4.5.41+ veya 4.6.35+ veya 4.7.18+.

  2. komutunu çalıştırmadan az connectedk8s connnectönce kümede şu komutu çalıştırın:

    oc adm policy add-scc-to-user privileged system:serviceaccount:azure-arc:azure-arc-kube-aad-proxy-sa
    

Yükleme zaman aşımları

Kubernetes kümesinin Azure Arc özellikli Kubernetes'e Bağlan için kümeye Azure Arc aracılarının yüklenmesi gerekir. Küme yavaş bir İnternet bağlantısı üzerinden çalışıyorsa, aracılar için kapsayıcı görüntüsü çekme işlemi Azure CLI zaman aşımlarından daha uzun sürebilir.

Helm zaman aşımı hatası

hatasını Unable to install helm release: Error: UPGRADE Failed: time out waiting for the conditiongörebilirsiniz. Bu sorunu gidermek için aşağıdaki adımları deneyin:

  1. Şu komutu çalıştırın:

    kubectl get pods -n azure-arc
    
  2. veya podlarının config-agent gösterilip gösterilmediğini clusterconnect-agentcrashloopbackoffveya tüm kapsayıcıların çalışıp çalışmadığını denetleyin:

    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
    
  3. azure-identity-certificate yoksa, sistem tarafından atanan yönetilen kimlik yüklenmemiştir.

    kubectl get secret -n azure-arc -o yaml | grep name:
    
    name: azure-identity-certificate
    

    Bu sorunu çözmek için komutunu çalıştırıp yeniden yükleyerek Arc dağıtımını silmeyi az connectedk8s delete deneyin. Sorun devam ederse, ara sunucu ayarlarınızla ilgili bir sorun olabilir. Bu durumda, kümenizi ara sunucu aracılığıyla Arc'a bağlamak için kümenizi ara sunucu aracılığıyla Azure Arc'a bağlamayı deneyin. Ayrıca tüm ağ önkoşullarının karşılandığını doğrulayın.

  4. clusterconnect-agent ve config-agent podları çalışıyorsa ancak kube-aad-proxy pod eksikse pod güvenlik ilkelerinizi denetleyin. Bu pod, yönetici izinlerine sahip olmayan ancak konak yolunu bağlamak için izin gerektiren hizmet hesabını kullanır azure-arc-kube-aad-proxy-sa .

  5. kube-aad-proxy Pod durumunda takılı kalırsa ContainerCreating kube-aad-proxy sertifikasının kümeye indirilip indirilmediğini denetleyin.

    kubectl get secret -n azure-arc -o yaml | grep name:
    
    name: kube-aad-proxy-certificate
    

    Sertifika eksikse, dağıtımı silin ve küme için farklı bir ad kullanarak yeniden eklemeyi deneyin. Sorun devam ederse bir destek isteği açın.

CryptoHash modülü hatası

Kubernetes kümelerini Azure Arc platformuna eklemeye çalışırken, yerel ortam (örneğin, istemci konsolunuz) aşağıdaki hata iletisini döndürebilir:

Cannot load native module 'Crypto.Hash._MD5'

Bazen, uzantılar eklenirken ve k8s-configuration Azure CLI veya Azure PowerShell aracılığıyla bağımlı modüller connectedk8s başarıyla indirilemez. Bu sorunu çözmek için uzantıları el ile kaldırın ve yerel ortama ekleyin.

Uzantıları kaldırmak için şunu kullanın:

az extension remove --name connectedk8s
az extension remove --name k8s-configuration

Uzantıları eklemek için şunu kullanın:

az extension add --name connectedk8s
az extension add --name k8s-configuration

Küme bağlantısı sorunları

Kümeniz giden ara sunucunun veya güvenlik duvarının arkasındaysa, özellikle Küme Bağlan özelliği için gerekli olan için *.servicebus.windows.netwebsocket bağlantılarının etkinleştirildiğini doğrulayın. Ayrıca, küme bağlantısı kullanırken sorun yaşıyorsanız Azure CLI uzantısının connectedk8s en son sürümünü kullandığınızdan emin olun.

clusterconnect-agent ve kube-aad-proxy podları eksikse kümede küme bağlanma özelliği devre dışı bırakılmış olabilir. Bu durumda kümeyle az connectedk8s proxy oturum oluşturulamaz ve okuma sırasında bir hata görebilirsiniz Cannot connect to the hybrid connection because no agent is connected in the target arc resource.

Bu hatayı düzeltmek için kümenizde küme bağlantısı özelliğini etkinleştirin:

az connectedk8s enable-features --features cluster-connect -n $CLUSTER_NAME -g $RESOURCE_GROUP

Daha fazla bilgi için bkz . Azure Arc özellikli Kubernetes kümelerine güvenli bir şekilde bağlanmak için küme bağlantısını kullanma.

Hizmet sorumlusunu kullanarak özel konumları etkinleştirme

Kümenizi Azure Arc'a bağlarken veya mevcut bir kümede özel konumları etkinleştirirken aşağıdaki uyarıyı görebilirsiniz:

Unable to fetch oid of 'custom-locations' app. Proceeding without enabling the feature. Insufficient privileges to complete the operation.

Azure'da oturum açmak için bir hizmet sorumlusu kullandığınızda ve hizmet sorumlusu gerekli izinlere sahip olmadığında bu uyarı oluşur. Bu hatayı önlemek için şu adımları izleyin:

  1. Kullanıcı hesabınızı kullanarak Azure CLI'da oturum açın. Azure Arc hizmeti tarafından kullanılan Microsoft Entra uygulamasının Nesne Kimliğini alın:

    az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query objectId -o tsv
    
  2. Hizmet sorumlusunu kullanarak Azure CLI'da oturum açın. Kümede <objectId> özel konumları etkinleştirmek için önceki adımdaki değeri kullanın:

    • Kümeyi Arc'a bağlarken özel konumları etkinleştirmek için az connectedk8s connect -n <cluster-name> -g <resource-group-name> --custom-locations-oid <objectId>
    • Mevcut Azure Arc özellikli Kubernetes kümesinde özel konumları etkinleştirmek için az connectedk8s enable-features -n <cluster-name> -g <resource-group-name> --custom-locations-oid <objectId> --features cluster-connect custom-locations

Sonraki adımlar