Az Azure Arc-kompatibilis Kubernetes-fürtök platformproblémáinak elhárítása

Ez a dokumentum hibaelhárítási útmutatókat tartalmaz az Azure Arc-kompatibilis Kubernetes-kapcsolatokkal, engedélyekkel és ügynökökkel kapcsolatos problémákhoz. Hibaelhárítási útmutatókat is tartalmaz az Azure GitOpshoz, amelyek az Azure Arc-kompatibilis Kubernetesben vagy az Azure Kubernetes Service-fürtökben is használhatók.

Ha segítségre van szüksége a bővítményekkel kapcsolatos problémák elhárításához, például GitOps (Flux v2), Azure Monitor Container Elemzések, Open Service Mesh, tekintse meg az Azure Arc-kompatibilis Kubernetes-fürtök bővítményproblémáinak hibaelhárítását.

Azure CLI

A cli-parancsok használata az connectedk8saz k8s-configuration előtt győződjön meg arról, hogy az Azure CLI a megfelelő Azure-előfizetésen működik.

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

Azure Arc-ügynökök

Az Azure Arc-kompatibilis Kubernetes összes ügynöke podként van üzembe helyezve a azure-arc névtérben. Minden podnak futnia kell, és át kell adnia az állapot-ellenőrzéseket.

Először ellenőrizze az Azure Arc Helm-diagram kiadását:

$ 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

Ha a Helm Chart-kiadás nem található vagy hiányzik, próbálja meg újra csatlakoztatni a fürtöt az Azure Archoz .

Ha a Helm-diagram kiadása jelen STATUS: deployedvan, ellenőrizze az ügynökök állapotát a következő használatával 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

Minden podnak ugyanúgy kell megjelennieSTATUS, mint 3/3Running az oszlopban vagy 2/2 alattREADY. Naplók lekérése és azokat a podokat írja le, amely egy Error vagy CrashLoopBackOfftöbb podot ad vissza. Ha valamelyik pod elakadt állapotban Pending , előfordulhat, hogy nincs elegendő erőforrás a fürtcsomópontokon. A fürt vertikális felskálázásával ezek a podok állapotra Running válthatnak.

Erőforrás-kiépítési hiba/Szolgáltatás időtúllépési hibája

Ha ezeket a hibákat látja, ellenőrizze az Azure állapotát , hogy vannak-e olyan aktív események, amelyek hatással vannak az Azure Arc-kompatibilis Kubernetes szolgáltatás állapotára. Ha igen, várja meg, amíg a szolgáltatásesemény feloldva van, majd próbálkozzon újra az előkészítéssel a meglévő csatlakoztatott fürterőforrás törlése után. Ha nincsenek szolgáltatási események, és az előkészítés során továbbra is problémákba ütközik, nyisson meg egy támogatási jegyet, hogy kivizsgálhassuk a problémát.

Túlhasználati jogcímekkel kapcsolatos hiba

Ha túlhasználati jogcímet kap, győződjön meg arról, hogy a szolgáltatásnév nem része több mint 200 Microsoft Entra-csoportnak. Ha ez a helyzet, létre kell hoznia és használnia kell egy másik szolgáltatásnevet, amely nem tagja több mint 200 csoportnak, vagy el kell távolítania az eredeti szolgáltatásnevet néhány csoportjából, és újra kell próbálkoznia.

Túlhasználati jogcím akkor is előfordulhat, ha a kimenő proxykörnyezetet úgy konfigurálta, hogy nem engedélyezte a végpont https://<region>.obo.arc.azure.com:8084/ számára a kimenő forgalmat.

Ha egyik sem érvényes, nyisson meg egy támogatási kérést, hogy megvizsgálhassuk a problémát.

Kubernetes-fürtök Azure Archoz való csatlakoztatásával kapcsolatos problémák

A fürtök Azure Arcba való Csatlakozás azure-előfizetéshez való hozzáférést és cluster-admin a célfürthöz való hozzáférést igényel. Ha nem éri el a fürtöt, vagy ha nem rendelkezik megfelelő engedélyekkel, a fürt Azure Archoz való csatlakoztatása sikertelen lesz. Győződjön meg arról, hogy teljesítette a fürt csatlakoztatásának összes előfeltételét.

Tipp.

A kapcsolati problémák elhárításáról az Arc-kompatibilis Kubernetes-fürtök kapcsolati problémáinak diagnosztizálása című témakörben talál vizuális útmutatót.

DNS-feloldással kapcsolatos problémák

A DNS-feloldással kapcsolatos problémák megoldásához látogasson el a DNS-feloldás hibakereséséhez a fürtön.

Kimenő hálózati csatlakozási problémák

A fürtből kimenő hálózati kapcsolattal kapcsolatos problémák különböző okokból merülhetnek fel. Először győződjön meg arról, hogy az összes hálózati követelmény teljesült.

Ha csatlakozási problémákat tapasztal, és a fürt egy kimenő proxykiszolgáló mögött található, győződjön meg arról, hogy a fürt előkészítése során proxyparamétereket adott át, és hogy a proxy megfelelően van konfigurálva. További információ: Csatlakozás kimenő proxykiszolgáló használatával.

A következőhöz hasonló hibaüzenet jelenhet meg:

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

Ez a hiba akkor fordul elő, ha a https://k8connecthelm.azureedge.net végpont le van tiltva. Győződjön meg arról, hogy a hálózat engedélyezi a végponthoz való csatlakozást, és megfelel az összes többi hálózati követelménynek.

Nem sikerült lekérni az MSI-tanúsítványt

Az MSI-tanúsítvány lekérésével kapcsolatos problémák általában hálózati problémák miatt jelentkeznek. Ellenőrizze, hogy az összes hálózati követelmény teljesült-e, majd próbálkozzon újra.

Nem megfelelő fürtengedélyek

Ha a megadott kubeconfig fájl nem rendelkezik megfelelő engedélyekkel az Azure Arc-ügynökök telepítéséhez, az Azure CLI-parancs hibát ad vissza: Error: list: failed to list: secrets is forbidden: User "myuser" cannot list resource "secrets" in API group "" at the cluster scope

A probléma megoldásához győződjön meg arról, hogy a fürtöt az Azure Archoz csatlakozó felhasználóhoz van hozzárendelve a cluster-admin szerepkör.

Nem sikerült csatlakoztatni az OpenShift-fürtöt az Azure Archoz

Ha az connectedk8s connect az OpenShift-fürt Azure Archoz való csatlakoztatása időtúllépést és hibát jelent:

  1. Győződjön meg arról, hogy az OpenShift-fürt megfelel a verzió előfeltételeinek: 4.5.41+ vagy 4.6.35+ vagy 4.7.18+.

  2. Futtatás az connectedk8s connnectelőtt futtassa ezt a parancsot a fürtön:

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

Telepítési időtúllépések

A Kubernetes-fürtök Azure Arc-kompatibilis Kubernetes-hez való Csatlakozás az Azure Arc-ügynökök telepítését igényli a fürtön. Ha a fürt lassú internetkapcsolaton fut, az ügynökök tárolólemezkép-lekérése hosszabb időt vehet igénybe, mint az Azure CLI időtúllépései.

Helm-időtúllépési hiba

Előfordulhat, hogy megjelenik a hiba Unable to install helm release: Error: UPGRADE Failed: time out waiting for the condition. A probléma megoldásához próbálkozzon a következő lépésekkel:

  1. Futtassa az alábbi parancsot:

    kubectl get pods -n azure-arc
    
  2. Ellenőrizze, hogy a clusterconnect-agent podok vagy a config-agent podok megjelennek-e crashloopbackoff, vagy ha nem minden tároló fut:

    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. Ha ez azure-identity-certificate nem jelenik meg, a rendszer által hozzárendelt felügyelt identitás nincs telepítve.

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

    A probléma megoldásához próbálja meg törölni az Arc-telepítést a az connectedk8s delete parancs futtatásával és újratelepítésével. Ha a probléma továbbra is fennáll, az a proxybeállításokkal kapcsolatos probléma lehet. Ebben az esetben próbáljon meg proxyn keresztül csatlakoztatni a fürtöt az Azure Archoz, hogy proxyn keresztül csatlakoztassa a fürtöt az Archoz. Azt is ellenőrizze, hogy az összes hálózati előfeltétel teljesült-e.

  4. Ha a clusterconnect-agent podok futnak config-agent , de a kube-aad-proxy pod hiányzik, ellenőrizze a pod biztonsági szabályzatait. Ez a pod a azure-arc-kube-aad-proxy-sa szolgáltatásfiókot használja, amely nem rendelkezik rendszergazdai engedélyekkel, de a gazdagép elérési útjának csatlakoztatásához szükséges.

  5. Ha a kube-aad-proxy pod elakadt állapotban ContainerCreating , ellenőrizze, hogy a kube-aad-proxy tanúsítvány le lett-e töltve a fürtre.

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

    Ha a tanúsítvány hiányzik, törölje az üzembe helyezést, és próbálkozzon újra az előkészítéssel a fürt másik nevével. Ha a probléma továbbra is fennáll, nyisson meg egy támogatási kérést.

CryptoHash-modul hibája

Amikor a Kubernetes-fürtöket az Azure Arc platformra kísérli meg előkészíteni, a helyi környezet (például az ügyfélkonzol) a következő hibaüzenetet adja vissza:

Cannot load native module 'Crypto.Hash._MD5'

Előfordulhat, hogy a függő modulok nem tölthetők le sikeresen a bővítmények connectedk8s hozzáadásakor és k8s-configuration az Azure CLI-vel vagy az Azure PowerShell-lel. A probléma megoldásához manuálisan távolítsa el, majd adja hozzá a bővítményeket a helyi környezetben.

A bővítmények eltávolításához használja a következőt:

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

A bővítmények hozzáadásához használja a következőt:

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

Fürtcsatlakozás problémái

Ha a fürt kimenő proxy vagy tűzfal mögött található, ellenőrizze, hogy engedélyezve *.servicebus.windows.netvannak-e a websocket-kapcsolatok, amelyek kifejezetten a Fürt Csatlakozás szolgáltatáshoz szükségesek. Emellett győződjön meg arról, hogy az connectedk8s Azure CLI-bővítmény legújabb verzióját használja, ha problémákat tapasztal a fürtcsatlakozással.

Ha a podok és kube-aad-proxy a clusterconnect-agent podok hiányoznak, akkor a fürt kapcsolódási funkciója valószínűleg le van tiltva a fürtön. Ha igen, az connectedk8s proxy akkor nem sikerül munkamenetet létrehozni a fürttel, és hibaüzenet jelenhet meg az olvasás során Cannot connect to the hybrid connection because no agent is connected in the target arc resource.

A hiba elhárításához engedélyezze a fürt kapcsolódási funkcióját a fürtön:

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

További információ: A fürtcsatlakozás használata az Azure Arc-kompatibilis Kubernetes-fürtökhöz való biztonságos csatlakozáshoz.

Egyéni helyek engedélyezése szolgáltatásnévvel

Amikor csatlakoztatja a fürtöt az Azure Archoz, vagy egyéni helyeket engedélyez egy meglévő fürtön, a következő figyelmeztetés jelenhet meg:

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

Ez a figyelmeztetés akkor fordul elő, ha szolgáltatásnévvel jelentkezik be az Azure-ba, és a szolgáltatásnév nem rendelkezik a szükséges engedélyekkel. A hiba elkerülése érdekében kövesse az alábbi lépéseket:

  1. Jelentkezzen be az Azure CLI-be a felhasználói fiókjával. Az Azure Arc szolgáltatás által használt Microsoft Entra-alkalmazás objektumazonosítójának lekérése:

    az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query objectId -o tsv
    
  2. Jelentkezzen be az Azure CLI-be a szolgáltatásnév használatával. <objectId> Az előző lépésben megadott érték használatával engedélyezze az egyéni helyeket a fürtön:

    • Ha egyéni helyeket szeretne engedélyezni a fürt Archoz való csatlakoztatásakor, futtassa a az connectedk8s connect -n <cluster-name> -g <resource-group-name> --custom-locations-oid <objectId>
    • Ha egyéni helyeket szeretne engedélyezni egy meglévő Azure Arc-kompatibilis Kubernetes-fürtön, futtassa a az connectedk8s enable-features -n <cluster-name> -g <resource-group-name> --custom-locations-oid <objectId> --features cluster-connect custom-locations

További lépések