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ági és identitással kapcsolatos problémáinak elhárításához és megoldásához.

A Get-AksHciCredential "nem találja a megadott elérési utat" hibaüzenettel meghiúsul

A Get-AksHciCredential PowerShell-parancsmag meghiúsul, ha egy másik rendszergazdai felhasználó hajtja végre, mint az AksHci telepítéséhez használt parancsmag. 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őlapján. A könyvtár létrehozásához használja a következő parancsot:

mkdir "$HOME/.kube"

A lépés Get-AksHciCredential után nem szabad sikertelennek lennie.

"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 újulnak meg. A fürt elérésekor a parancs a kubectl 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

Feljegyzés

Ezt a problémát a 2022. szeptemberi és újabb kiadásban 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 (virtuális gépeket) 4 napnál hosszabb ideig.
  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 múlva próbálkozzon újra a kubectl paranccsal, és ellenőrizze, hogy a fürt már elérhető-e.

Feljegyzés

Az AksHci 1.0.14.x-es és korábbi verziójában ismert hiba van. Ha a vezérlősík virtuális gépének más névmintája -control-plane-van, előfordulhat, hogy a Update-AksHciClusterCertificates parancs nem működik. A tanúsítványt frissítenie kell 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ájl használatával: sudo /usr/bin/cert-tattoo-provision CreateCertsWithAltNames <absolute-path-of-cert-tattoo-file>

Sikertelen hitelesítési kézfogás: x509: ismeretlen hatóság á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 a felhasználó, aki az AKS-t az Azure Stackre vagy a Windows Serverre telepítette. További információ a több felhasználó hozzáférésének biztosításáró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 az eltávolítással $env:UserProfile.wssd\kvactl\cloudconfig.
  • Futtassa az Repair-AksHciCerts parancsot.
  • Futtassa Get-AksHciCluster , és ellenőrizze, hogy nincs-e javítva.

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

A célfürt naplói 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

Feljegyzés

Ez egy ismert probléma az AksHci 1.0.14.x-es és korábbi verziójában. A javítás az 1.0.14.x kiadás részeként történik (szeptemberi kiadás és újabb verziók). 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óparancsok az alábbihoz hasonló hibaüzenettel térnek vissza:

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ürt vezérlősíkja – 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 újulnak meg. A fürt elérésekor a parancs a kubectl következő hibát hozza létre:

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

Feljegyzés

Ezt a problémát a 2022. szeptemberi és újabb kiadásban 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 hosszabb ideig.
  4. Kapcsolja be újra a fürtöt.

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

A célfürtnek elérhetetlennek kell lennie. 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 múlva próbálkozzon újra a kubectl paranccsal, és ellenőrizze, hogy a fürt már 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 kódok csatlakoztatása sikertelen a kötetekben, amikor podokat próbál létrehozni.
  • Az apiserver nem indul el.

Az alábbi parancs futtatásával keresse meg a KMS podnaplóiban a hibákat:

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 hibás jogkivonat található, futtassa a következő parancsot:

UpdateAksHciClusterCertificates -name <cluster-name> -fixcloudcredential

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

A mocctl-tanúsítvány lejár, ha 60 napnál hosszabb ideig nem használják. Az AKS Arc a mocctl parancssori eszközzel kommunikál az MocStackgel 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 (~42 nap után) használják. 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 érintő 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 felmerülő kvactl parancsok a következő hibát fogják eredményezni.

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, \kvactl\cloudconfig és próbálkozzon Update-AksHci újra a csomóponton a tanúsítvány lejárati problémáját látva. A következő parancsot használhatja:

$env:UserProfile.wssd\kvactl\cloudconfig

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

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

Az Azure Kubernetes Service-t a helyi Azure-ban üzembe helyező és konfigurálandó 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.

Az Uninstall-AksHciAdAuth a következő hibával meghiúsul: "[Hiba a kiszolgálóról (NotFound): titkos kulcsok "keytab-akshci-scale-reliability" nem találhatók]"

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

This issue will be fixed.

a kubectl-naplók "hiba: Be kell jelentkeznie a kiszolgálóra (a kiszolgáló kérte az ügyfelet a hitelesítő adatok megadására)"

Probléma merült fel az AKS Arc szolgáltatással kapcsolatban, amelyben egy fürt leállítja a naplók visszaadását. Ha ez történik, a futtatás kubectl logs <pod_name> "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ányát 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:

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

    while (1) {kubectl logs <POD_NAME>; sleep 1}
    
  • Indítsa újra a tárolót kube-apiserver a fürt minden vezérlősíkján. Az API-kiszolgáló újraindítása nem befolyásolja a számítási feladatok futtatását. 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)'
      
  • Igény szerint, 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