Szerkesztés

Megosztás a következőn keresztül:


Az AKS Arc biztonsági és identitáskezelési problémáinak és hibáinak elhárítása

Ez a témakör segítséget nyújt az AKS Arc biztonságával és identitásával kapcsolatos problémák elhárításában és megoldásában.

Get-AksHciCredential "Nem található a megadott elérési út" hibával meghiúsul

A Get-AksHciCredential PowerShell-parancsmag meghiúsul, ha az AksHci telepítéséhez használttól eltérő rendszergazdai felhasználó hajtja végre. A parancs létrehoz egy .kube könyvtárat, és elhelyezi benne a konfigurációs fájlt. A parancs azonban a következő hibával meghiúsul:

Error: open C:\Users\<user>\.kube\config: The system cannot find the path specified.

Reprodukálás

  1. Telepítse az AksHci-t.
  2. Hozzon létre egy célfürtöt.
  3. Jelentkezzen be a gépre egy másik rendszergazdai felhasználóként (több rendszergazdai funkció).
  4. Futtassa az Get-AksHciCredential -Name $clusterName parancsot.

Várható viselkedés

Get-AksHciCredential létre kell tudnia hozni egy .kube könyvtárat a felhasználó kezdőkönyvtárában, és el kell helyeznie a konfigurációs fájlt az adott könyvtárban.

A probléma megoldásához hozzon létre egy .kube könyvtárat a felhasználó kezdőkönyvtárában. A könyvtár létrehozásához használja a következő parancsot:

mkdir "$HOME/.kube"

Ez után a lépés Get-AksHciCredential nem hiúsul meg.

"A tanúsítvány lejárt – Nem lehet csatlakozni a kiszolgálóhoz: x509"

A célfürt nem érhető el, ha a vezérlősík tanúsítványai nem újíthatók meg. A fürt elérésekor a kubectl parancs a következő hibát jeleníti meg:

certificate expired - Unable to connect to the server: x509: certificate has expired or is not yet valid: current time 2022-07-26T12:24:15-04:00 is after 2022-07-15T15:01:07Z

Megjegyzés

Ezt a problémát a 2022. szeptemberi és újabb kiadásokban javítottuk.

Reprodukálás

  1. Telepítse az AksHci-t.
  2. Telepítse a célfürtöt. 3. Kapcsolja ki a fürtöt (VM-eket) 4 napnál tovább.
  3. Kapcsolja be újra a fürtöt.

Tünetek és kockázatcsökkentés

A célfürt nem érhető el. A kubectl célfürtön futtatott parancsok az alábbihoz hasonló hibaüzenetet ad vissza:

certificate expired - Unable to connect to the server: x509: certificate has expired or is not yet valid: current time 2022-07-26T12:24:15-04:00 is after 2022-07-15T15:01:07Z

A probléma megoldása:

  1. Futtassa a következő parancsot a létrehozott tanúsítvány manuális megújításához:

    Update-AksHciClusterCertificates  -Name my-workload -cluster -fixKubeletCredentials
    
  2. Új hitelesítő adatok létrehozása:

    Get-AksHciCredential -name <clustername>
    

Néhány perc elteltével próbálkozzon újra a kubectl paranccsal, és ellenőrizze, hogy a fürt elérhető-e.

Megjegyzés

Az AksHci 1.0.14.x-es és korábbi verziójában ismert hiba található. Ha a vezérlősík virtuális gépének más névmintája -control-plane-van, akkor előfordulhat, hogy a Update-AksHciClusterCertificates parancs nem működik. Frissítenie kell a tanúsítványt a vezérlősík virtuális gépére való bejelentkezéssel:

  1. Keresse meg a célfürt-vezérlősík virtuális gépének IP-címét.
  2. Futtassa a következő parancsot: ssh -i (get-mocconfig).sshPrivateKey clouduser@<ip>
  3. Sorolja fel a cert tattoo fájlokat: sudo ls /etc/kubernetes/pki/cert-tattoo-*
  4. Hozzon létre tanúsítványokat az előző parancs által felsorolt összes fájllal: sudo /usr/bin/cert-tattoo-provision CreateCertsWithAltNames <absolute-path-of-cert-tattoo-file>

Sikertelen hitelesítési kézfogás: x509: ismeretlen szolgáltató által aláírt tanúsítvány

Ez a hiba akkor jelenhet meg, ha új AKS-fürtöt helyez üzembe, vagy csomópontkészletet ad hozzá egy meglévő fürthöz.

  1. Ellenőrizze, hogy a parancsot futtató felhasználó ugyanaz-e, mint amelyik az AKS-t telepítette az Azure Stackre vagy a Windows Serverre. További információ a több felhasználónak való hozzáférésről: Több rendszergazda beállítása.
  2. Ha a felhasználó ugyanaz, és a hiba továbbra is fennáll, kövesse az alábbi lépéseket a probléma megoldásához:
  • Törölje a régi felügyeleti berendezés tanúsítványát a eltávolításával $env:UserProfile.wssd\kvactl\cloudconfig.
  • Futtassa az Repair-AksHciCerts parancsot.
  • Futtassa a parancsot Get-AksHciCluster annak ellenőrzéséhez, hogy javítva van-e.

A célfürt podnaplói nem érhetők el – távoli hiba: tls: belső hiba

A célfürtnaplók nem érhetők el. Amikor megpróbál hozzáférni a podnaplókhoz a célfürtben, a következő TLS-hiba jelenik meg:

Error from server: Get "[https://10.0.0.0:10250/containerLogs/kube-system/kube-apiserver-moc-l9iv8xjn3av/kube-apiserver":](https://10.0.0.0:10250/containerLogs/kube-system/kube-apiserver-moc-l9iv8xjn3av/kube-apiserver%22:) remote error: tls: internal error

Megjegyzés

Ez egy ismert probléma az AksHci 1.0.14.x és korábbi verziójában. A javítás az 1.0.14.x-es kiadás (szeptemberi és újabb verziók) részeként történik. Az erre a verzióra frissített célfürtök nem tapasztalják ezt a problémát.

Reprodukálás

  1. Telepítse az AksHci-t.
  2. Telepítse a célfürtöt.
  3. Ne frissítse a fürtöt 60 napig.
  4. Indítsa újra a fürtöt.

Tünetek és kockázatcsökkentés

A cél podnaplók nem lehetnek elérhetők. A kubectl célfürtön futtatott naplóparancsnak az alábbihoz hasonló hibaüzenettel kell visszaadnia:

Error from server: Get "[https://10.0.0.0:10250/containerLogs/kube-system/kube-apiserver-moc-l9iv8xjn3av/kube-apiserver":](https://10.0.0.0:10250/containerLogs/kube-system/kube-apiserver-moc-l9iv8xjn3av/kube-apiserver%22:) remote error: tls: internal error

A probléma megoldása:

  1. Futtassa a következő parancsot a létrehozott tanúsítvány manuális megújításához:

    Update-AksHciClusterCertificates  -Name my-workload -fixKubeletCredentials
    
  2. Új hitelesítő adatok létrehozása:

    Get-AksHciCredential -name <clustername>
    

Fürtvezérlősík – A tanúsítvány lejárt – Nem lehet csatlakozni a kiszolgálóhoz: x509

A célfürt nem érhető el, ha a vezérlősík tanúsítványai nem újíthatók meg. A fürt elérésekor a parancs a kubectl következő hibát eredményezi:

certificate expired - Unable to connect to the server: x509: certificate has expired or is not yet valid: current time 2022-07-26T12:24:15-04:00 is after 2022-07-15T15:01:07Z

Megjegyzés

Ezt a problémát a 2022. szeptemberi és újabb kiadásokban javítottuk.

Reprodukálás

  1. Telepítse az AksHci-t.
  2. Telepítse a célfürtöt.
  3. Kapcsolja ki a fürtöket (virtuális gépeket) 4 napnál tovább.
  4. Kapcsolja be újra a fürtöt.

Tünetek és kockázatcsökkentés

A célfürtnek nem lehet elérhető. A kubectl célfürtön futtatott parancsok a következőhöz hasonló hibaüzenettel térnek vissza:

certificate expired - Unable to connect to the server: x509: certificate has expired or is not yet valid: current time 2022-07-26T12:24:15-04:00 is after 2022-07-15T15:01:07Z

A probléma megoldása:

  1. Futtassa a következő parancsot a létrehozott tanúsítvány manuális megújításához:

    Update-AksHciClusterCertificates  -Name my-workload -cluster -fixKubeletCredentials
    
  2. Új hitelesítő adatok létrehozása:

    Get-AksHciCredential -name <clustername>
    

Néhány perc elteltével próbálkozzon újra a kubectl paranccsal, és ellenőrizze, hogy a fürt elérhető-e.

A KMS-pod meghibásodik, és a KMS-podnaplók hibákat tartalmaznak

A probléma néhány lehetséges tünete a következő:

  • kubectl get secrets belső hibával meghiúsul.
  • kubectl logs <kmspod-name> -n kube-system hibákat tartalmaz.
  • A titkos kulcsok csatlakoztatása sikertelen a köteteken, amikor podokat próbál létrehozni.
  • Az apiserver nem indul el.

A KMS-podnaplókban keresse meg a hibákat a következő parancs futtatásával:

kubectl logs <kmspod-name> -n kube-system

Ha a naplók érvénytelen jogkivonattal kapcsolatos hibát adnak vissza a felügyeleti fürt KMS-podjában, futtassa a következő parancsot:

Update-AksHciCertificates

Ha a célfürt KMS-podjában érvénytelen jogkivonattal kapcsolatos hiba lépett fel, futtassa a következő parancsot:

UpdateAksHciClusterCertificates -name <cluster-name> -fixcloudcredential

"System.Collections.Hashtable.generic_non_zero 1 hiba [Hiba: A tanúsítvány lejárt: Lejárt]"

A mocctl-tanúsítvány lejár, ha 60 napnál hosszabb ideig nincs használatban. Az AKS Arc a mocctl parancssori eszközzel kommunikál az MocStacktel az Moc-hoz kapcsolódó műveletek végrehajtásához. A parancs által a mocclt cloudagenttel való kommunikációhoz használt tanúsítvány 60 nap múlva lejár. A mocctl parancs automatikusan megújítja a tanúsítványt, ha annak lejárata közelében (kb. 42 nap elteltével) van használatban. Ha a parancsot nem használják gyakran, a tanúsítvány lejár.

A viselkedés reprodukálásához telepítse az AKS Arcot, és 60 napig nem hajtja végre a mocctl parancsot tartalmazó műveletet.

A probléma megoldásához jelentkezzen be újra a tanúsítvány lejárata után. A bejelentkezéshez hajtsa végre a következő PowerShell-parancsot:

Repair-MocLogin

KVA-tanúsítvány törlése, ha 60 nap után lejárt

A KVA-tanúsítvány 60 nap után lejár, ha nem történik frissítés.

Update-AksHci és az esetlegesen előforduló kvactl parancsok a következő hibát fogják jelezni.

Error: failed to get new provider: failed to create azurestackhci session: Certificate has expired: Expired

A hiba megoldásához törölje a lejárt tanúsítványfájlt a következő helyen \kvactl\cloudconfig : , majd próbálkozzon Update-AksHci újra a tanúsítvány lejáratával kapcsolatos problémát jelző csomóponton. A következő parancsot használhatja:

$env:UserProfile.wssd\kvactl\cloudconfig

A problémával kapcsolatban a KVA-tanúsítványt törölni kell, ha a KVA-tanúsítvány 60 nap után lejárt

Speciális Active Directory-engedélyekre van szükség a tartományhoz csatlakoztatott Azure Stack HCI-csomópontokhoz

Az Azure Stack HCI-n Azure Kubernetes Service üzembe helyező és konfiguráló felhasználóknak teljes hozzáféréssel kell rendelkezniük ahhoz, hogy AD-objektumokat hozzanak létre abban az Active Directory-tárolóban, amelyben a kiszolgáló és a szolgáltatásobjektumok létrejönnek.

Emelje fel a felhasználó engedélyeit.

Uninstall-AksHciAdAuth a következő hibával meghiúsul: "[Kiszolgálóhiba (NotFound): a "keytab-akshci-scale-reliability" titkos kód nem található]"

Ha az Uninstall-AksHciAdAuth megjeleníti ezt a hibát, egyelőre figyelmen kívül kell hagynia, mivel ez a probléma ki lesz javítva.

This issue will be fixed.

A kubectl-naplók a következőt adják vissza: "hiba: Be kell jelentkeznie a kiszolgálóra (a kiszolgáló a hitelesítő adatok megadását kérte az ügyféltől)"

Probléma merült fel az AKS Arc szolgáltatással kapcsolatban, amely miatt egy fürt leállítja a naplók visszaadását. Ebben az esetben a futtatás kubectl logs <pod_name> a következőt adja vissza: "hiba: Be kell jelentkeznie a kiszolgálóra (a kiszolgáló a hitelesítő adatok megadását kérte az ügyféltől)". Az AKS Arc 4 naponta elforgatja az alapvető Kubernetes-tanúsítványokat, de néha a Kubernetes API-kiszolgáló nem tölti be azonnal újra az ügyféltanúsítványt a kubelettel való kommunikációhoz a tanúsítványok frissítésekor.

A probléma megoldásához több lehetőség is rendelkezésre áll:

  • Futtassa újra a parancsot kubectl logs. Futtassa például a következő PowerShell-parancsot:

    while (1) {kubectl logs <POD_NAME>; sleep 1}
    
  • Indítsa újra a kube-apiserver tárolót a fürt egyes vezérlősíkjain. Az API-kiszolgáló újraindítása nincs hatással a futó számítási feladatokra. Az API-kiszolgáló újraindításához kövesse az alábbi lépéseket:

    1. Kérje le a fürt minden vezérlősíkjának IP-címét:

      kubectl get nodes -o wide
      
    2. Futtassa az alábbi parancsot:

      ssh -i (get-akshciconfig).Moc.sshPrivateKey clouduser@<CONTROL_PLANE_IP> 'sudo crictl stop $(sudo crictl ps --name kube-apiserver -o json | jq -r .containers[0].id)'
      
  • Ha szeretné, de éles számítási feladatokhoz nem ajánlott, megkérheti kube-apiserver , hogy ne ellenőrizze a kubelet kiszolgálótanúsítványát:

    kubectl logs <POD_NAME> --insecure-skip-tls-verify-backend=true