Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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ó.
Ez a cikk két lehetőséget ismertet az AKS Linux és Windows csomópontok közötti biztonságos kapcsolathoz. 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. Közvetlen csatlakozáshoz bármely AKS-csomóponthoz használja a -t vagy a gazdagép privát IP-címét.
Csomópontok elérése a Kubernetes API-val
Ehhez a metódushoz a parancs szükséges.
Mielőtt hozzákezdene
Ez az útmutató bemutatja, hogyan hozhat létre kapcsolatot egy AKS-csomóponttal, és hogyan frissítheti az AKS-fürt SSH-kulcsát. Az alábbi lépések végrehajtásához Azure CLI 2.0.64-es vagy újabb verzióra van szükség. Futtassa a verzió ellenőrzéséhez. Ha telepítenie vagy frissítenie kell, tekintse meg a Install Azure CLI című témakört.
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. Mentse a kulcspárt OpenSSH formátumban, és kerülje az olyan nem támogatott formátumokat, mint a . Ezután tekintse meg a SSH-konfiguráció kezelését a kulcs fürtbe történő hozzáadásához.
Linux és macOS
A Linux- és macOS-felhasználók a csomópontjukat saját privát IP-címükkel érhetik el. Windows felhasználóknak át kell ugornia a Windows Server proxyszakaszra, hogy áthidaló megoldást találjanak az SSH-ra proxyn keresztül.
Kapcsolódás a kubectl debug használatával
Interaktív shell-kapcsolat létrehozásához használja a parancsot egy privilégiumokkal rendelkező tároló futtatásához a csomóponton.
A csomópontok listázásához használja a következő parancsot:
kubectl get nodes -o wideA kimenet példája:
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 DatacenterA parancs használatával elindíthat egy emelt szintű tárolót a csomóponton, és csatlakozhat hozzá.
kubectl debug node/aks-nodepool1-37663765-vmss000000 -it --image=mcr.microsoft.com/azurelinux/busybox:1.36A kimenet példája:
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ével a futtatásával privilegizált tárolóból léphet kapcsolatba.
Kilépés a kubectl hibakeresési módjából
Ha végzett a csomóponttal, írja be a parancsot az interaktív rendszerhéj-munkamenet befejezéséhez. Az interaktív tároló munkamenetének bezárása után törölje a hibakeresésre használt podot .
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 csatlakozhat közvetlenül Windows Server csomóponthoz kubectl debug használatával. Ehelyett először egy másik csomóponthoz kell csatlakoznia a fürtben a kubectl segítségével, majd az adott csomópontból az SSH használatával kell csatlakoznia a Windows Server csomóponthoz.
A fürtben lévő másik csomóponthoz való csatlakozáshoz használja a parancsot. További információkért kövesse az előző lépéseket a kubectl szakaszban. 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 a Azure CLI a --generate-ssh-keys paraméterrel hozta létre. Ha inkább saját SSH-kulcsokat szeretne használni, a segítségével kezelheti az SSH-kulcsokat egy meglévő AKS-klaszteren. 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, a csatlakozáshoz használja a Azure Bastion metódust.
A paranccsal elindíthat egy emelt szintű tárolót a proxy (Linux) csomóponton, és csatlakozhat hozzá.
kubectl debug node/aks-nodepool1-37663765-vmss000000 -it --image=mcr.microsoft.com/azurelinux/busybox:1.36A kimenet példája:
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 parancs használatával kérje le a pod nevét.
kubectl get podsA kimenet példája:
NAME READY STATUS RESTARTS AGE node-debugger-aks-nodepool1-37663765-vmss000000-bkmmx 1/1 Running 0 21sA mintakimenetben
a pod által indított neve. A paranccsal nyisson meg egy kapcsolatot az üzembe helyezett podhoz:
kubectl port-forward node-debugger-aks-nodepool1-37663765-vmss000000-bkmmx 2022:22A kimenet példája:
Forwarding from 127.0.0.1:2022 -> 22 Forwarding from [::1]:2022 -> 22Az előző példa elkezdi továbbítani a hálózati forgalmat a fejlesztői számítógép portjáról az üzembe helyezett pod portjára . 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 parancsot.
Nyisson meg egy új terminált, és futtassa a
kubectl get nodesparancsot a Windows Server csomópont belső IP-címének megjelenítéséhez:kubectl get nodes -o custom-columns='NAME:metadata.name,INTERNAL_IP:status.addresses[?(@.type == "InternalIP")].address'A kimenet példája:
NAME INTERNAL_IP aks-nodepool1-19409214-vmss000003 10.224.0.8 aksnpwin000000 10.224.0.62Az előző példában a
10.224.0.62a 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
22porthoz a fejlesztési számítógépen található2022porton 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:ssh -o 'ProxyCommand ssh -p 2022 -W %h:%p azureuser@127.0.0.1' azureuser@10.224.0.62A kimenet példája:
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)? yesMegjegyzés
Ha inkább jelszóhitelesítést szeretne használni, adja meg a paramétert . Például:
ssh -o 'ProxyCommand ssh -p 2022 -W %h:%p azureuser@127.0.0.1' -o PreferredAuthentications=password azureuser@10.224.0.62
Gazdagépfolyamat-tároló használata Windows csomópont eléréséhez
A létrehozáshoz futtassa a következő szkriptet. A szkriptben cserélje le
AKSWINDOWSNODENAMEaz AKS Windows csomópont nevére.Ez a specifikáció a nanokiszolgáló alaprendszerképét használja. Az alaprendszerkép nem rendelkezik PowerShell-lel, de mivel gazdafolyamat-tárolóként (HPC) fut, a PowerShell elérhető a mögöttes virtuális gépen.
apiVersion: v1 kind: Pod metadata: labels: pod: hpc name: hpc spec: securityContext: windowsOptions: hostProcess: true runAsUserName: "NT AUTHORITY\\SYSTEM" hostNetwork: true containers: - name: hpc image: mcr.microsoft.com/windows/nanoserver:ltsc2022 # Use nanoserver:1809 for WS2019 command: - powershell.exe - -Command - "Start-Sleep 2147483" imagePullPolicy: IfNotPresent nodeSelector: kubernetes.io/os: windows kubernetes.io/hostname: AKSWINDOWSNODENAME tolerations: - effect: NoSchedule key: node.kubernetes.io/unschedulable operator: Exists - effect: NoSchedule key: node.kubernetes.io/network-unavailable operator: Exists - effect: NoExecute key: node.kubernetes.io/unreachable operator: ExistsFuttassa
kubectl apply -f hostprocess.yamla Windows HPC üzembe helyezéséhez a megadott Windows csomóponton.Használja a .
A HPC-tárolóban bármilyen PowerShell-parancsot futtathat a Windows csomópont eléréséhez.
Megjegyzés
A gyökérmappát C:\-re kell váltania a HPC-tárolóban, hogy hozzáférjen a Windows csomópont fájljaihoz.
SSH az Azure Bastionhoz
Ha a Linux-proxycsomópont nem érhető el, a 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 Kapcsolódás az Azure Bastionhoz.
SSH privát IP-címekkel a fürt virtuális hálózatáról
Könnyebb kezelhetőség é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 SSH-n keresztül elérje a csomópontot.
Ha nem fér hozzá a Kubernetes API-hoz, az AKS-csomópontokhoz való csatlakozáshoz hozzáférhet olyan tulajdonságokhoz, mint például , az AKS-ügynökkészlet API-n keresztül (amely stabil vagy újabb verziókban érhető el). Szerezze be a privát IP-címeket a paranccsal, és egy adott csomópontkészlet összes virtuális gépét megcélozza a jelölővel.
az aks machine list --resource-group myResourceGroup --cluster-name myAKSCluster --nodepool-name nodepool1 -o tableAz 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 IPv4A csomópontkészleten belüli adott csomópont megcélzásához használja a következő jelölőt :
az aks machine show --cluster-name myAKScluster --nodepool-name nodepool1 -g myResourceGroup --machine-name aks-nodepool1-33555069-vmss000000 -o tableAz alábbi példakimenet a megadott csomópont belső IP-címét mutatja be:
Name Ip Family --------------------------------- ----------- ----------- aks-nodepool1-33555069-vmss000000 10.224.0.5 IPv4SSH 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-csomópontokra vonatkozik.
ssh -i /path/to/private_key.pem azureuser@10.224.0.33
Következő lépések
Ha további hibaelhárítási adatokra van szüksége, megtekintheti a Kubelet-naplókat , vagy megtekintheti a Kubernetes vezérlősíkjának naplóit.
Az SSH-kulcsok kezeléséről az SSH-konfiguráció kezelése című témakörben olvashat.