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
- Telepítse az AksHci-t.
- Hozzon létre egy célfürtöt.
- Jelentkezzen be a gépre egy másik rendszergazdai felhasználóként (több rendszergazdai funkció).
- 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
- Telepítse az AksHci-t.
- Telepítse a célfürtöt. 3. Kapcsolja ki a fürtöt (VM-eket) 4 napnál tovább.
- 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:
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
Ú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:
- Keresse meg a célfürt-vezérlősík virtuális gépének IP-címét.
- Futtassa a következő parancsot:
ssh -i (get-mocconfig).sshPrivateKey clouduser@<ip>
- Sorolja fel a cert tattoo fájlokat:
sudo ls /etc/kubernetes/pki/cert-tattoo-*
- 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.
- 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.
- 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
- Telepítse az AksHci-t.
- Telepítse a célfürtöt.
- Ne frissítse a fürtöt 60 napig.
- 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:
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
Ú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
- Telepítse az AksHci-t.
- Telepítse a célfürtöt.
- Kapcsolja ki a fürtöket (virtuális gépeket) 4 napnál tovább.
- 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:
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
Ú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:Kérje le a fürt minden vezérlősíkjának IP-címét:
kubectl get nodes -o wide
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