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
- 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ő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
- Telepítse az AksHci-t.
- Telepítse a célfürtöt. 3. Kapcsolja ki a fürtöt (virtuális gépeket) 4 napnál hosszabb ideig.
- 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 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:
- 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á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.
- 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.
- 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
- 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ó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:
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ü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
- 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 hosszabb ideig.
- 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:
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 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: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)'
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