Azure Operatör Nexus Kubernetes kümesine Bağlan
Azure Operatörü Nexus Kubernetes kümenizin yaşam döngüsü boyunca bir küme 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. Kimlik doğrulaması aracılığıyla bir düğüme erişilir ve bu yöntemler bağlantı yönteminize bağlı olarak değişir. Bu makalede açıklanan iki seçenek aracılığıyla küme düğümlerinde güvenli bir şekilde kimlik doğrulaması yaparsınız. Güvenlik nedeniyle küme düğümleri İnternet'e sunulmaz. Bunun yerine, doğrudan küme düğümlerine bağlanmak için bir sıçrama kutusundan konağın IP adresini kullanmanız kubectl debug
gerekir.
Önkoşullar
- Azure aboneliğinizdeki bir kaynak grubunda dağıtılan Bir Azure Operatörü Nexus Kubernetes kümesi.
- Küme düğümleri için SSH özel anahtarı.
- Düğüm IP adresini kullanarak SSH'ye, küme düğümleri ile aynı Kapsayıcı Ağı Arabirimi (CNI) ağına bir sıçrama kutusu VM'si dağıtmanız gerekir.
Sunucular için Azure Arc aracılığıyla küme düğümlerine erişim
az ssh arc
komutu, kullanıcıların Azure Arc'a bağlı bir küme VM'sine uzaktan erişmesine olanak tanır. Bu yöntem, SSH'yi doğrudan komut satırından küme düğümüne aktarmanın güvenli bir yoludur ve bunu uzaktan yönetim için hızlı ve verimli bir yöntem haline getirir.
Not
Operatör Nexus Kubernetes küme düğümleri varsayılan olarak Arc bağlantılı sunuculardır.
Gerekli değişkenleri ayarlayın. Yer tutucuları Azure ortamınızla ve Nexus Kubernetes kümenizle ilgili gerçek değerlerle değiştirin.
RESOURCE_GROUP="myResourceGroup" # Resource group where the Nexus Kubernetes cluster is deployed CLUSTER_NAME="myNexusK8sCluster" # Name of the Nexus Kubernetes cluster SUBSCRIPTION_ID="<Subscription ID>" # Azure subscription ID ADMIN_USERNAME="azureuser" # Username for the cluster administrator (--admin-username parameter value used during cluster creation) SSH_PRIVATE_KEY_FILE="<vm_ssh_id_rsa>" # Path to the SSH private key file MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID --output tsv --query managedResourceGroupConfiguration.name)
Kullanılabilir küme düğümü adlarını alın.
az networkcloud kubernetescluster show --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID -o json | jq '.nodes[].name'
Örnek çıkış:
"mynexusk8scluster-0b32128d-agentpool1-md-7h9t4" "mynexusk8scluster-0b32128d-agentpool1-md-c6xbs" "mynexusk8scluster-0b32128d-control-plane-qq5jm"
Küme düğümü adını VM_NAME değişkeni olarak ayarlayın.
VM_NAME="mynexusk8scluster-0b32128d-agentpool1-md-7h9t4"
Küme düğümünde SSH'ye aşağıdaki komutu çalıştırın.
az ssh arc --subscription $SUBSCRIPTION_ID \ --resource-group $MANAGED_RESOURCE_GROUP \ --name $VM_NAME \ --local-user $ADMIN_USERNAME \ --private-key-file $SSH_PRIVATE_KEY_FILE
Kubernetes API'sini kullanarak düğümlere erişme
Bu yöntem komut kullanımını kubectl debug
gerektirir. Bu yöntem kapsayıcılarla sınırlıdır ve tam düğüm erişimi ve denetimi sunan SSH'nin ('az ssh arc' veya doğrudan IP kullanılarak) aksine daha geniş sistem sorunlarını kaçırabilir.
Kubernetes için Azure Arc aracılığıyla Kubernetes API'sine erişim
Not
Nexus Kubernetes kümesi oluşturduğunuzda, Nexus otomatik olarak küme kaynaklarını depolamak için ayrılmış yönetilen bir kaynak grubu oluşturur. Bu grupta Arc bağlantılı küme kaynağı oluşturulur.
Kümenize erişmek için küme bağlantısını kubeconfig
ayarlamanız gerekir. İlgili Microsoft Entra varlığıyla Azure CLI'da oturum açtıktan sonra, kümeyi çevreleyen kubeconfig
güvenlik duvarının dışında bile her yerden iletişim kurmak için gerekli bilgileri alabilirsiniz.
ve
RESOURCE_GROUP
SUBSCRIPTION_ID
değişkenlerini ayarlayınCLUSTER_NAME
.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>
Yönetilen kaynak grubunu ile
az
sorgulama ve içinde depolamaMANAGED_RESOURCE_GROUP
az account set -s $SUBSCRIPTION_ID MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --output tsv --query managedResourceGroupConfiguration.name)
Aşağıdaki komut, belirtilen Nexus Kubernetes kümesi için Kubernetes API sunucusuna bağlanmanızı sağlayan bir connectedk8s ara sunucusu başlatır.
az connectedk8s proxy -n $CLUSTER_NAME -g $MANAGED_RESOURCE_GROUP &
Kümeye istek göndermek için kullanın
kubectl
:kubectl get pods -A
Şimdi kümeden tüm düğümlerin listesini içeren bir yanıt görmeniz gerekir.
Not
"MSI'ye bağlanmak için istemci proxy'sine erişim belirteci gönderilemedi" hata iletisini görürseniz Azure'da yeniden kimlik doğrulaması gerçekleştirmeniz az login
gerekebilir.
Kubernetes için Azure Arc aracılığıyla küme düğümlerine erişim
Kubernetes için Arc aracılığıyla bir kümeye bağlandıktan sonra, düğümünüzde ayrıcalıklı bir kapsayıcı çalıştırmak için komutunu kullanarak kubectl debug
tek tek Kubernetes düğümüne bağlanabilirsiniz.
Nexus Kubernetes kümenizdeki düğümleri listeleyin:
$> kubectl get nodes NAME STATUS ROLES AGE VERSION mynexusk8scluster-0b32128d-agentpool1-md-7h9t4 Ready <none> 125m v1.24.9 mynexusk8scluster-0b32128d-agentpool1-md-c6xbs Ready <none> 125m v1.24.9 mynexusk8scluster-0b32128d-control-plane-qq5jm Ready <none> 124m v1.24.9
Düğümünüzde ayrıcalıklı bir kapsayıcı başlatın ve bu kapsayıcıya bağlanın:
$> kubectl debug node/mynexusk8scluster-0b32128d-agentpool1-md-7h9t4 -it --image=mcr.microsoft.com/cbl-mariner/base/core:2.0 Creating debugging pod node-debugger-mynexusk8scluster-0b32128d-agentpool1-md-7h9t4-694gg with container debugger on node mynexusk8scluster-0b32128d-agentpool1-md-7h9t4. If you don't see a command prompt, try pressing enter. root [ / ]#
Bu ayrıcalıklı kapsayıcı düğüme erişim verir. Komut satırında komutunu çalıştırarak
chroot /host
küme düğümünde komutları yürütebilirsiniz.Hata ayıklama podunu tamamladığınızda etkileşimli kabuk oturumunu
exit
sonlandırmak için komutunu girin. Kabukta çıktıktan sonra pod'un silindiğinden emin olun:kubectl delete pod node-debugger-mynexusk8scluster-0b32128d-agentpool1-md-7h9t4-694gg
IP adresini kullanarak düğüme etkileşimli kabuk bağlantısı oluşturma
Azure sıçrama kutusundan küme düğümüne Bağlan
Azure Operatör Nexus Kubernetes küme düğümüne güvenli bir şekilde bağlanmak için bir diğer seçenek de Azure sıçrama kutusu VM'sinden kümenin CNI ağına doğrudan erişim ayarlamaktır. Bu yaklaşımı kullanarak küme düğümlerine SSH ekleyebilir, ayrıca dosyasını kullanarak kubeconfig
kümeye karşı komut yürütebilirsinizkubectl
.
Azure sıçrama kutusu VM'sinden kümenin CNI ağına doğrudan bağlantı kurmak için ağ yöneticinize ulaşın.
Şirket içi sıçrama kutusundan küme düğümüne Bağlan
Şirket içi sıçrama kutunuzdan kümenin CNI'sine (Kapsayıcı Ağ Arabirimi) doğrudan erişim sağlayın. Bu doğrudan erişim, küme düğümlerine SSH yapmanızı sağlar ve dosyayı kullanarak kubeconfig
komutları yürütmenize kubectl
olanak tanır.
Kümenin CNI ağına bu doğrudan bağlantıyı ayarlamak için ağ yöneticinize ulaşın.
Küme düğümlerinin IP adresi
Küme düğümlerine bağlanabilmeniz için önce düğümlerin IP adresini bulmanız gerekir. Düğümlerin IP adresi Azure portalı veya Azure CLI kullanılarak bulunabilir.
Azure CLI'yi kullanma
RESOURCE_GROUP, CLUSTER_NAME ve SUBSCRIPTION_ID değişkenlerini ortamınızla eşleşecek şekilde ayarlayın.
RESOURCE_GROUP="myResourceGroup" CLUSTER_NAME="myNexusK8sCluster" SUBSCRIPTION_ID="<Subscription ID>"
Düğümlerin IP adresini almak için aşağıdaki komutu yürütür.
az networkcloud kubernetescluster show --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID -o json | jq '.nodes[] | select(any(.networkAttachments[]; .networkAttachmentName == "defaultcni")) | {name: .name, ipv4Address: (.networkAttachments[] | select(.networkAttachmentName == "defaultcni").ipv4Address)}'
Komutun örnek çıktısı aşağıda verilmişti.
{ "name": "mynexusk8scluster-0b32128d-agentpool1-md-7h9t4", "ipv4Address": "10.5.54.47" } { "name": "mynexusk8scluster-0b32128d-agentpool1-md-c6xbs", "ipv4Address": "10.5.54.48" } { "name": "mynexusk8scluster-0b32128d-control-plane-qq5jm", "ipv4Address": "10.5.54.46" }
Azure portal’ı kullanma
SSH için VM'nin IP adresini bulmak için şu adımları izleyin:
- Azure portalına gidin ve kullanıcı adınız ve parolanızla oturum açın.
- Arama kutusuna 'Kubernetes Kümesi (Operatör Nexus)' yazın ve sonuç listesinden 'Kubernetes Kümesi' hizmetini seçin.
- Aramayı kullanmak için ihtiyacınız olan belirli 'Nexus Kubernetes kümesi' kaynağını arayın.
- Adını küme adıyla eşleştirerek doğru kaynağı bulduğunuzda kaynağı seçerek 'Kubernetes Kümesi' giriş sayfasına gidin.
- Adını küme adıyla eşleştirerek doğru kaynağı bulduğunuzda, soldaki menüde 'Kubernetes Küme Düğümleri' bölümüne gidin.
- Ayrıntılarını görmek için ilgilendiğiniz Kubernetes düğümü adını seçin.
- CNI ağı olarak kullanılan düğümün 'Katman 3 Ağı'nın IP adresini bulmak için 'Ekli Ağlar' sekmesini denetleyin.
Sonraki adımlar
Azure Operatör Nexus Kubernetes kümesi hakkında daha fazla bilgi edinmek için aşağıdaki makaleleri deneyin.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin