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.
Bu makalede AKS Linux ve Windows düğümlerine karşı güvenli bağlantı için iki seçenek açıklanmaktadır. 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 ya bir ara birim kullanmanız ya da konağın özel IP adresini kullanmanız gerekir.
Kubernetes API'siyle düğümlere erişme
Bu yöntem komutu 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. Bu adımları izlemek için Azure CLI sürüm 2.0.64 veya üzeri gerekir. Sürümü denetlemek için komutunu çalıştırın . Yüklemeniz veya yükseltmeniz gerekiyorsa bkz. Azure CLI yükleme.
SSH anahtarınız yoksa bu adımları tamamlayın. macOS ve Linux veya Windows için düğüm işletim sistemi görüntünüze bağlı olarak bir SSH anahtarı oluşturun. Anahtar çiftini OpenSSH biçiminde kaydedin ve gibi desteklenmeyen 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 erişebilir. Windows kullanıcıların ara sunucu aracılığıyla SSH'ye geçici bir çözüm için Windows Server ara sunucu bölümüne atlamaları gerekir.
kubectl debug ile bağlan
Etkileşimli kabuk bağlantısı oluşturmak için komutunu kullanarak düğümünüzde ayrıcalıklı bir kapsayıcı çalıştırın.
Düğümlerinizi listelemek için şu komutu kullanı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 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/azurelinux/busybox:1.36Ö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 düğüm oturumuyla etkileşim kurabilirsiniz.
Kubectl hata ayıklama modundan çıkma
Düğümünüzü bitirdiğinizde etkileşimli kabuk oturumunu sonlandırmak için komutu girin. Etkileşimli kapsayıcı oturumu kapandıktan sonra kullanılan hata ayıklama podunu silin.
kubectl delete pod node-debugger-aks-nodepool1-37663765-vmss000000-bkmmx
Windows Server için SSH ara sunucu bağlantısı
bir Windows Server düğümünde SSH ile bağlanmak için geçici bir çözüm olarak bu adımları izleyin.
Ara sunucu oluşturma
Şu anda kubectl debug kullanarak bir Windows Server düğümüne doğrudan bağlanamazsınız. Bunun yerine, önce kubectl ile kü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 . Daha fazla bilgi için kubectl bölümündeki önceki 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 aks kümenizi --generate-ssh-keys parametresiyle Azure CLI kullanarak 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 . 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.
Proxy düğümünüzde (Linux) ayrıcalıklı bir kapsayıcı başlatmak ve bu kapsayıcıya bağlanmak için komutu kullanın.
kubectl debug node/aks-nodepool1-37663765-vmss000000 -it --image=mcr.microsoft.com/azurelinux/busybox:1.36Ö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 başlatılan podun adını almak için komutunu kullanın.
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,
, tarafından başlatılan podun adıdır. Dağıtılan pod'a bağlantı kurmak için [komut adı] 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 dağıtılan pod üzerindeki bağlantı noktasına ağ trafiğini iletmeye başlar. Bağlantı açmak ve ağ trafiğini iletmek için kullanırken , siz komutu durdurana kadar 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
kubectl get nodeskomutunu çalıştırın:kubectl get nodes -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 aksnpwin000000 10.224.0.62Ö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
22bağlantı noktası üzerinden2022bağlantı noktasına bağ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 istemi sağlanır: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 ekleyin. Ö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üğüme erişmek için ana bilgisayar işlem konteyneri kullanma
Aşağıdaki betiği çalıştırarak oluşturun. Betikte
AKSWINDOWSNODENAMEyerine AKS Windows düğümü adını yazın.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: ExistsWindows HPC'yi belirtilen Windows düğümüne dağıtmak için
kubectl apply -f hostprocess.yamlçalıştırın.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 kök klasörü HPC kapsayıcısının içinde C:\ olarak değiştirmeniz gerekir.
Azure Bastion ile SSH
Linux proxy düğümünüze ulaşılamıyorsa, ara sunucu olarak Azure Bastion kullanmak bir alternatiftir. Bu yöntem, kümenin bulunduğu sanal ağ için bir Azure Bastion konağı ayarlamanızı gerektirir. Daha fazla bilgi için bkz. Azure Bastion ile bağlanma.
Kümenin sanal ağından özel IP'lerle SSH bağlantısı kurma
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 yapmak için kümenin sanal ağında olmanız gerekir.
Kubernetes API'sine erişiminiz yoksa AKS düğümlerine bağlanmak için (kararlı sürümlerde veya üzeri sürümlerde kullanılabilir) aracılığıyla ve gibi özelliklere erişebilirsiniz. komutunu kullanarak, bayrağıyla belirli bir düğüm havuzundaki tüm VM'leri hedefleyen özel IP'leri alı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 IPv4Belirli bir düğümü düğüm havuzunun içinde hedeflemek için bayrağı kullanı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 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 bağlantısı kurun. Bu adım yalnızca Linux düğümleri için geçerlidir.
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.