Csatlakozás az Azure Kubernetes Service- (AKS-) fürtcsomópontokhoz karbantartás és hibaelhárítás céljából
Cikk
Az Azure Kubernetes Service-fürt (AKS) teljes életciklusa során végül közvetlenül hozzá kell férnie egy AKS-csomóponthoz. Ez a hozzáférés karbantartási, naplógyűjtési vagy hibaelhárítási műveletekhez is használható.
A csomópontot hitelesítéssel érheti el, mely módszerek a csomópont operációs rendszerétől és a kapcsolat módjától függően változnak. A jelen cikkben ismertetett két lehetőséggel biztonságosan hitelesítheti magát AKS Linux és Windows rendszerű csomópontokon. Az egyik megköveteli, hogy Kubernetes API-hozzáféréssel rendelkezzen, a másik pedig az AKS ARM API-val, amely közvetlen privát IP-információkat biztosít. Biztonsági okokból az AKS-csomópontok nem jelennek meg az interneten. Ehelyett az AKS-csomópontokhoz való közvetlen csatlakozáshoz vagy a gazdagép magánhálózati IP-címét kell használnia kubectl debug .
Csomópontok elérése a Kubernetes API használatával
Ehhez a metódushoz parancs használata kubectl debug szükséges.
Mielőtt elkezdené
Ez az útmutató bemutatja, hogyan hozhat létre kapcsolatot egy AKS-csomóponttal, és hogyan frissítheti az AKS-fürt SSH-kulcsát. A lépések követéséhez a 2.0.64-es vagy újabb verziót támogató Azure CLI-t kell használnia. Futtassa az --version a verzió ellenőrzését. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése.
Ha nem rendelkezik SSH-kulccsal, hajtsa végre ezeket a lépéseket. Hozzon létre egy SSH-kulcsot a csomópont operációs rendszer lemezképétől függően macOS és Linux vagy Windows rendszeren. Ügyeljen arra, hogy a kulcspárt OpenSSH formátumban mentse, kerülje a nem támogatott formátumokat, például .ppk. Ezután tekintse meg az SSH-konfiguráció kezelését a kulcs fürthöz való hozzáadásához.
Linux és macOS
A Linux- és macOS-felhasználók a saját IP-címükkel vagy a saját IP-címükkel férhetnek hozzá a csomópontjukhoz kubectl debug . A Windows-felhasználóknak át kell ugornia a Windows Server proxy szakaszára, hogy áthidaló megoldást találjanak az SSH-ra proxyn keresztül.
Csatlakozás kubectl hibakereséssel
Interaktív rendszerhéj-kapcsolat létrehozásához használja a kubectl debug parancsot egy emelt szintű tároló futtatásához a csomóponton.
A csomópontok listázásához használja a kubectl get nodes következő parancsot:
kubectl get nodes -o wide
Példa a kimenetre:
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE
aks-nodepool1-37663765-vmss000000 Ready agent 166m v1.25.6 10.224.0.33 <none> Ubuntu 22.04.2 LTS
aks-nodepool1-37663765-vmss000001 Ready agent 166m v1.25.6 10.224.0.4 <none> Ubuntu 22.04.2 LTS
aksnpwin000000 Ready agent 160m v1.25.6 10.224.0.62 <none> Windows Server 2022 Datacenter
kubectl debug A parancs használatával elindíthat egy emelt szintű tárolót a csomóponton, és csatlakozhat hozzá.
Creating debugging pod node-debugger-aks-nodepool1-37663765-vmss000000-bkmmx with container debugger on node aks-nodepool1-37663765-vmss000000.
If you don't see a command prompt, try pressing enter.
root@aks-nodepool1-37663765-vmss000000:/#
Mostantól hibakeresési podként egy emelt szintű tárolón keresztül férhet hozzá a csomóponthoz.
Megjegyzés
A csomópont munkamenetét a kiemelt tárolóból futtatva chroot /host kezelheti.
Kilépés a kubectl hibakeresési módjából
Ha végzett a csomóponttal, írja be a parancsot az exit interaktív rendszerhéj-munkamenet befejezéséhez. Az interaktív tároló munkamenetének bezárása után törölje a használt hibakereső podot kubectl delete pod.
kubectl delete pod node-debugger-aks-nodepool1-37663765-vmss000000-bkmmx
Windows Server proxykapcsolat SSH-hoz
Az alábbi lépéseket kerülő megoldásként követve csatlakozhat az SSH-hoz egy Windows Server-csomóponton.
Proxykiszolgáló létrehozása
Jelenleg nem tud közvetlenül csatlakozni egy Windows Server-csomóponthoz a használatával kubectl debug. Ehelyett először egy másik fürtcsomóponthoz kubectlkell csatlakoznia, majd az SSH használatával csatlakoznia kell a Windows Server-csomóponthoz.
A fürt egy másik csomóponthoz való csatlakozáshoz használja a kubectl debug parancsot. További információkért kövesse a kubectl szakasz fenti lépéseit. Hozzon létre egy SSH-kapcsolatot a Windows Server-csomóponttal egy másik csomópontról az AKS-fürt létrehozásakor megadott SSH-kulcsokkal és a Windows Server-csomópont belső IP-címével.
Fontos
A Windows Server-csomóponttal létesített SSH-kapcsolat egy másik csomópontról történő létrehozásához az alábbi lépések csak akkor használhatók, ha az AKS-fürtöt az Azure CLI-vel hozta létre a --generate-ssh-keys paraméterrel. Ha ehelyett saját SSH-kulcsokat szeretne használni, az az aks update SSH-kulcsok kezelése meglévő AKS-fürtön. További információ: SSH-csomópont-hozzáférés kezelése.
Megjegyzés
Ha a Linux-proxycsomópont leállt vagy nem válaszol, az Azure Bastion metódussal csatlakozhat.
kubectl debug A paranccsal elindíthat egy emelt szintű tárolót a proxy (Linux) csomóponton, és csatlakozhat hozzá.
Creating debugging pod node-debugger-aks-nodepool1-37663765-vmss000000-bkmmx with container debugger on node aks-nodepool1-37663765-vmss000000.
If you don't see a command prompt, try pressing enter.
root@aks-nodepool1-37663765-vmss000000:/#
Nyisson meg egy új terminálablakot, és a kubectl get pods parancs használatával kérje le a pod kubectl debugnevét.
kubectl get pods
Példa a kimenetre:
NAME READY STATUS RESTARTS AGE
node-debugger-aks-nodepool1-37663765-vmss000000-bkmmx 1/1 Running 0 21s
A mintakimenetben a node-debugger-aks-nodepool1-37663765-vmss000000-bkmmx a pod által kubectl debugindított pod neve.
kubectl port-forward A paranccsal nyisson meg egy kapcsolatot az üzembe helyezett podhoz:
Forwarding from 127.0.0.1:2022 -> 22
Forwarding from [::1]:2022 -> 22
Az előző példa elkezdi továbbítani a hálózati forgalmat a fejlesztői számítógép portjáról 2022 az üzembe helyezett pod portjára 22 . kubectl port-forward Kapcsolat megnyitása és hálózati forgalom továbbítása esetén a kapcsolat nyitva marad, amíg le nem állítja a kubectl port-forward parancsot.
Nyisson meg egy új terminált, és futtassa a parancsot kubectl get nodes a Windows Server-csomópont belső IP-címének megjelenítéséhez:
kubectl get no -o custom-columns=NAME:metadata.name,'INTERNAL_IP:status.addresses[?(@.type == \"InternalIP\")].address'
Példa a kimenetre:
NAME INTERNAL_IP
aks-nodepool1-19409214-vmss000003 10.224.0.8
Az előző példában a 10.224.0.62 a Windows Server-csomópont belső IP-címe.
Hozzon létre egy SSH-kapcsolatot a Windows Server-csomóponthoz a belső IP-címmel, és csatlakozzon a porthoz 22 a fejlesztői számítógépen lévő porton 2022 keresztül. Az AKS-csomópontok alapértelmezett felhasználóneve az Azureuser. Fogadja el a kérést a kapcsolat folytatásához. Ekkor megjelenik a Windows Server-csomópont bash-üzenete:
The authenticity of host '10.224.0.62 (10.224.0.62)' can't be established.
ECDSA key fingerprint is SHA256:1234567890abcdefghijklmnopqrstuvwxyzABCDEFG.
Are you sure you want to continue connecting (yes/no)? yes
Megjegyzés
Ha inkább jelszóhitelesítést szeretne használni, adja meg a paramétert -o PreferredAuthentications=password. Példa:
Futtassa kubectl apply -f hostprocess.yaml a Windows-gazdagépfolyamat-tároló (HPC) üzembe helyezését a megadott Windows-csomóponton.
Használja az kubectl exec -it [HPC-POD-NAME] -- powershell parancsot.
A Windows-csomópont eléréséhez bármilyen PowerShell-parancsot futtathat a HPC-tárolóban.
Megjegyzés
A windowsos csomópont fájljainak eléréséhez a gyökérmappát C:\ a HPC-tárolón belülre kell váltania.
SSH a Windowshoz készült Azure Bastion használatával
Ha a Linux-proxycsomópont nem érhető el, az Azure Bastion proxyként való használata alternatív megoldás. Ehhez a módszerhez be kell állítania egy Azure Bastion-gazdagépet ahhoz a virtuális hálózathoz, amelyben a fürt található. További részletekért lásd: Csatlakozás az Azure Bastionhoz .
SSH privát IP-címek használatával az AKS API-ból (előzetes verzió)
Ha nem rendelkezik hozzáféréssel a Kubernetes API-hoz, az AKS-csomópontokhoz való csatlakozáshoz hozzáférést kaphat olyan tulajdonságokhoz, mint Node IP az AKS-ügynökkészlet API (előzetes verzió) és Node Name azon keresztül (előzetes verzióban 07-02-2023 elérhető).
Fontos
Az AKS előzetes verziójú funkciói önkiszolgáló, opt-in alapon érhetők el. Az előzetes verziókat "ahogy van" és "rendelkezésre állóként" biztosítjuk, és a szolgáltatási szerződésekből és a korlátozott jótállásból kizárjuk őket. Az AKS előzetes verzióit részben az ügyfélszolgálat fedezi a legjobb munkamennyiség alapján. Ezért ezek a funkciók nem éles használatra vannak szánva. További információkért tekintse meg az alábbi támogatási cikkeket:
Interaktív rendszerhéj-kapcsolat létrehozása egy csomóponthoz az IP-cím használatával
A kényelem érdekében az AKS-csomópontok privát IP-címeken keresztül érhetők el a fürt virtuális hálózatán. Azonban a fürt virtuális hálózatában kell lennie ahhoz, hogy az SSH-t a csomópontba lehessen helyezni. Ha még nincs konfigurálva környezet, az Azure Bastion használatával létrehozhat egy proxyt, amelyből SSH-t használhat a fürtcsomópontokhoz. Győződjön meg arról, hogy az Azure Bastion ugyanabban a virtuális hálózaton van üzembe helyezve, mint a fürt.
Szerezze be a privát IP-címeket a az aks machine list paranccsal, és egy adott csomópontkészlet összes virtuális gépét megcélozza a --nodepool-name jelölővel.
az aks machine list --resource-group myResourceGroup --cluster-name myAKSCluster --nodepool-name nodepool1 -o table
Az alábbi példakimenet a csomópontkészlet összes csomópontjának belső IP-címét mutatja be:
Name Ip Family
--------------------------------- ----------- -----------
aks-nodepool1-33555069-vmss000000 10.224.0.5 IPv4
aks-nodepool1-33555069-vmss000001 10.224.0.6 IPv4
aks-nodepool1-33555069-vmss000002 10.224.0.4 IPv4
A csomópontkészleten belüli adott csomópont megcélzásához használja a következő jelölőt --machine-name :
az aks machine show --cluster-name myAKScluster --nodepool-name nodepool1 -g myResourceGroup --machine-name aks-nodepool1-33555069-vmss000000 -o table
Az alábbi példakimenet az összes megadott csomópont belső IP-címét mutatja be:
Name Ip Family
--------------------------------- ----------- -----------
aks-nodepool1-33555069-vmss000000 10.224.0.5 IPv4
SSH a csomóponthoz az előző lépésben beszerzett privát IP-cím használatával. Ez a lépés csak Linux rendszerű gépekre alkalmazható. Windows rendszerű gépek esetén lásd: Csatlakozás az Azure Bastionhoz.
A tartalom forrása a GitHubon található, ahol létrehozhat és áttekinthet problémákat és lekéréses kérelmeket is. További információért tekintse meg a közreműködői útmutatónkat.
Azure Kubernetes Service-visszajelzés
A(z) Azure Kubernetes Service egy nyílt forráskód projekt. Visszajelzés adásához válasszon egy hivatkozást:
Megtudhatja, hogyan helyezheti üzembe az Azure Bastion szolgáltatást az Azure-beli virtuális gépekhez való biztonságos kapcsolódás érdekében, közvetlenül az Azure Portalon belül.