Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Kubernetes Service (AKS) kümenizin yaşam döngüsü boyunca bir AKS düğümüne doğrudan erişmeniz gerekir. Bu erişim bakım, günlük toplama veya sorun giderme işlemleri için olabilir.
Bir düğüme kimlik doğrulaması aracılığıyla erişebilirsiniz. Bu yöntemler Düğüm işletim sisteminize ve bağlantı yönteminize bağlı olarak değişir. Bu makalede açıklanan iki seçenek aracılığıyla AKS Linux ve Windows düğümlerinde güvenli bir şekilde kimlik doğrulaması yaparsınız. Bunlardan biri Kubernetes API erişimine sahip olmanız, diğeri ise doğrudan özel IP bilgileri sağlayan AKS ARM API'sini kullanmanız gerekir. Güvenlik nedeniyle AKS düğümleri İnternet'e sunulmaz. Bunun yerine, herhangi bir AKS düğümüne doğrudan bağlanmak için kubectl debug konağın özel IP adresini kullanmanız gerekir.
Kubernetes API'sini kullanarak düğümlere erişme
Bu yöntem komut kullanımını kubectl debug gerektirir.
Başlamadan önce
Bu kılavuzda AKS düğümüne bağlantı oluşturma ve AKS kümenizin SSH anahtarını güncelleştirme adımları gösterilmektedir. Adımları izlemek için 2.0.64 veya sonraki bir sürümü destekleyen Azure CLI kullanmanız gerekir. Sürümü denetlemek için komutunu çalıştırın az --version . Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.
SSH anahtarınız yoksa bu adımları tamamlayın. Node İşletim Sistemi Görüntünüze bağlı olarak, macOS ve Linux veya Windows için bir SSH anahtarı oluşturun. Anahtar çiftini OpenSSH biçiminde kaydettiğinizden emin olun, gibi .ppkdesteklenmeyen biçimlerden kaçının. Ardından, anahtarı kümenize eklemek için SSH yapılandırmasını yönetme bölümüne bakın.
Linux ve macOS
Linux ve macOS kullanıcıları, düğümlerine veya özel IP Adreslerini kullanarak kubectl debug erişebilir. Ara sunucu aracılığıyla SSH'ye geçici bir çözüm için Windows kullanıcıları Windows Server Proxy bölümüne atlamalıdır.
kubectl hata ayıklama kullanarak bağlanma
Etkileşimli kabuk bağlantısı oluşturmak için komutunu kullanarak kubectl debug düğümünüzde ayrıcalıklı bir kapsayıcı çalıştırın.
Düğümlerinizi listelemek için komutunu
kubectl get nodeskullanın:kubectl get nodes -o wideÖrnek çıkış:
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 DatacenterKomutunu kullanarak
kubectl debugdüğümünüzde ayrıcalıklı bir kapsayıcı başlatın ve bu kapsayıcıya bağlanın.kubectl debug node/aks-nodepool1-37663765-vmss000000 -it --image=mcr.microsoft.com/cbl-mariner/busybox:2.0Örnek çıkış:
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:/#Artık hata ayıklama podu olarak ayrıcalıklı bir kapsayıcı üzerinden düğüme erişebilirsiniz.
Not
Ayrıcalıklı kapsayıcıdan komutunu çalıştırarak
chroot /hostdüğüm oturumuyla etkileşim kurabilirsiniz.
Kubectl hata ayıklama modundan çıkma
Düğümünüzü bitirdiğinizde etkileşimli kabuk oturumunu exit sonlandırmak için komutunu girin. Etkileşimli kapsayıcı oturumu kapatıldıktan sonra ile kubectl delete podkullanılan hata ayıklama podunu silin.
kubectl delete pod node-debugger-aks-nodepool1-37663765-vmss000000-bkmmx
SSH için Windows Server proxy bağlantısı
Windows Server düğümünde SSH'ye bağlanmak için geçici çözüm olarak bu adımları izleyin.
Ara sunucu oluşturma
Şu anda kullanarak kubectl debugbir Windows Server düğümüne doğrudan bağlanamazsınız. Bunun yerine, önce ile kubectlkümedeki başka bir düğüme bağlanmanız ve ardından SSH kullanarak bu düğümden Windows Server düğümüne bağlanmanız gerekir.
Kümedeki başka bir düğüme bağlanmak için komutunu kullanın kubectl debug . Daha fazla bilgi için kubectl bölümündeki yukarıdaki adımları izleyin. AKS kümesini oluştururken sağlanan SSH anahtarlarını ve Windows Server düğümünün iç IP adresini kullanarak başka bir düğümden Windows Server düğümüne bir SSH bağlantısı oluşturun.
Önemli
Başka bir düğümden Windows Server düğümüne SSH bağlantısı oluşturmak için aşağıdaki adımlar yalnızca AZURE CLI kullanarak AKS kümenizi parametresiyle --generate-ssh-keys oluşturduysanız kullanılabilir. Bunun yerine kendi SSH anahtarlarınızı kullanmak istiyorsanız, mevcut bir AKS kümesindeki SSH anahtarlarını yönetmek için komutunu kullanabilirsiniz az aks update . Daha fazla bilgi için bkz . SSH düğümü erişimini yönetme.
Not
Linux proxy düğümünüz çalışmıyorsa veya yanıt vermiyorsa, bunun yerine bağlanmak için Azure Bastion yöntemini kullanın.
Komutunu kullanarak
kubectl debugara sunucu (Linux) düğümünüzde ayrıcalıklı bir kapsayıcı başlatın ve bu kapsayıcıya bağlanın.kubectl debug node/aks-nodepool1-37663765-vmss000000 -it --image=mcr.microsoft.com/cbl-mariner/busybox:2.0Örnek çıkış:
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:/#Yeni bir terminal penceresi açın ve tarafından
kubectl get podsbaşlatılan podun adını almak için komutunu kullanınkubectl debug.kubectl get podsÖrnek çıkış:
NAME READY STATUS RESTARTS AGE node-debugger-aks-nodepool1-37663765-vmss000000-bkmmx 1/1 Running 0 21sÖrnek çıktıda node-debugger-aks-nodepool1-37663765-vmss000000-bkmmx tarafından
kubectl debugbaşlatılan podun adıdır.Dağıtılan
kubectl port-forwardpodla bağlantı açmak için komutunu kullanın:kubectl port-forward node-debugger-aks-nodepool1-37663765-vmss000000-bkmmx 2022:22Örnek çıkış:
Forwarding from 127.0.0.1:2022 -> 22 Forwarding from [::1]:2022 -> 22Önceki örnek, dağıtım bilgisayarınızdaki bağlantı noktasından
2022dağıtılan pod üzerindeki bağlantı noktasına22ağ trafiğini iletmeye başlar. Bağlantı açmak ve ağ trafiğini iletmek için kullanırkenkubectl port-forward, siz komutu durduranakubectl port-forwardkadar bağlantı açık kalır.Yeni bir terminal açın ve Windows Server düğümünün iç IP adresini göstermek için komutunu
kubectl get nodesçalıştırın:kubectl get no -o custom-columns=NAME:metadata.name,'INTERNAL_IP:status.addresses[?(@.type == \"InternalIP\")].address'Örnek çıkış:
NAME INTERNAL_IP aks-nodepool1-19409214-vmss000003 10.224.0.8Önceki örnekte 10.224.0.62 , Windows Server düğümünün iç IP adresidir.
İç IP adresini kullanarak Windows Server düğümüne bir SSH bağlantısı oluşturun ve geliştirme bilgisayarınızdaki bağlantı noktası üzerinden bağlantı noktasına
222022bağlanın. AKS düğümleri için varsayılan kullanıcı adı azureuser'dır. Bağlantıyla devam etmek için istemi kabul edin. Ardından Windows Server düğümünüzün bash istemiyle birlikte sunulur:ssh -o 'ProxyCommand ssh -p 2022 -W %h:%p azureuser@127.0.0.1' azureuser@10.224.0.62Örnek çıkış:
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)? yesNot
Parola kimlik doğrulamasını kullanmayı tercih ediyorsanız parametresini
-o PreferredAuthentications=passwordekleyin. Örneğin:ssh -o 'ProxyCommand ssh -p 2022 -W %h:%p azureuser@127.0.0.1' -o PreferredAuthentications=password azureuser@10.224.0.62
Windows düğümüne erişmek için ana bilgisayar işlem kapsayıcısı kullanma
Aşağıdaki betiği çalıştırarak
hostprocess.yamloluşturun. BetikteAKSWINDOWSNODENAMEdeğerini AKS Windows düğümü adıyla değiştirin.Bu spesifikasyon NanoServer temel görüntüsünü kullanır. Temel görüntüde PowerShell yoktur, ancak ana bilgisayar işlem kapsayıcısı (HPC) olarak çalıştığından, PowerShell temel alınan VM'de kullanılabilir.
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: ExistsBelirtilen Windows düğümünde Windows HPC'yi dağıtmak için komutunu çalıştırın
kubectl apply -f hostprocess.yaml.kubectl exec -it [HPC-POD-NAME] -- powershelladresini kullanın.Windows düğümüne erişmek için HPC kapsayıcısının içinde herhangi bir PowerShell komutu çalıştırabilirsiniz.
Not
Windows düğümündeki dosyalara erişmek için C:\ kök klasörü HPC kapsayıcısının içine geçirmeniz gerekir.
Windows için Azure Bastion kullanarak SSH
Linux proxy düğümünüze ulaşılamıyorsa, ara sunucu olarak Azure Bastion'ı kullanmak alternatif bir seçenektir. Bu yöntem, kümenin bulunduğu sanal ağ için bir Azure Bastion konağı ayarlamanızı gerektirir. Diğer ayrıntılar için bkz . Azure Bastion ile bağlanma.
AKS API'sinden özel IP'ler kullanan SSH
Kubernetes API'sine erişiminiz yoksa AKS düğümlerine bağlanmak için Node IP(kararlı sürümlerde veya üzeri sürümlerde Node Name kullanılabilir) aracılığıyla ve gibi 07-01-2024 özelliklere erişebilirsiniz.
IP adresini kullanarak düğüme etkileşimli kabuk bağlantısı oluşturma
Kolaylık sağlamak için AKS düğümleri özel IP adresleri aracılığıyla kümenin sanal ağında kullanıma sunulur. Ancak düğüme SSH'ye kümenin sanal ağında olmanız gerekir. Henüz yapılandırılmış bir ortamınız yoksa Azure Bastion'ı kullanarak küme düğümlerine SSH yapabileceğiniz bir ara sunucu oluşturabilirsiniz. Azure Bastion'ın kümeyle aynı sanal ağda dağıtıldığından emin olun.
komutunu kullanarak, bayrağıyla
az aks machine listbelirli bir düğüm havuzundaki tüm VM'leri hedefleyen özel IP'leri--nodepool-namealın.az aks machine list --resource-group myResourceGroup --cluster-name myAKSCluster --nodepool-name nodepool1 -o tableAşağıdaki örnek çıktı, düğüm havuzundaki tüm düğümlerin iç IP adreslerini gösterir:
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 IPv4Düğüm havuzunun içindeki belirli bir düğümü hedeflemek için bayrağını
--machine-namekullanın:az aks machine show --cluster-name myAKScluster --nodepool-name nodepool1 -g myResourceGroup --machine-name aks-nodepool1-33555069-vmss000000 -o tableAşağıdaki örnek çıktı, belirtilen tüm düğümün iç IP adresini gösterir:
Name Ip Family --------------------------------- ----------- ----------- aks-nodepool1-33555069-vmss000000 10.224.0.5 IPv4Önceki adımda aldığınız özel IP adresini kullanarak düğüme SSH. Bu adım yalnızca Linux makineleri için geçerlidir. Windows makineleri için bkz . Azure Bastion ile bağlanma.
ssh -i /path/to/private_key.pem azureuser@10.224.0.33
Sonraki adımlar
Daha fazla sorun giderme verisine ihtiyacınız varsa kubelet günlüklerini görüntüleyebilir veya Kubernetes denetim düzlemi günlüklerini görüntüleyebilirsiniz.
SSH anahtarlarınızı yönetme hakkında bilgi edinmek için bkz . SSH yapılandırmasını yönetme.