Aracılığıyla paylaş


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.

  1. 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)
    
  2. 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'
    
  3. Örnek çıkış:

    "mynexusk8scluster-0b32128d-agentpool1-md-7h9t4"
    "mynexusk8scluster-0b32128d-agentpool1-md-c6xbs"
    "mynexusk8scluster-0b32128d-control-plane-qq5jm"
    
  4. Küme düğümü adını VM_NAME değişkeni olarak ayarlayın.

    VM_NAME="mynexusk8scluster-0b32128d-agentpool1-md-7h9t4"
    
  5. 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ı kubeconfigayarlamanı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.

  1. ve RESOURCE_GROUP SUBSCRIPTION_ID değişkenlerini ayarlayınCLUSTER_NAME.

    CLUSTER_NAME="myNexusK8sCluster"
    RESOURCE_GROUP="myResourceGroup"
    SUBSCRIPTION_ID=<set the correct subscription_id>
    
  2. Yönetilen kaynak grubunu ile az sorgulama ve içinde depolama MANAGED_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)
    
  3. 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 &
    
  4. 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.

  1. 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
    
  2. 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.

  3. 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

  1. 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>"
    
  2. 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)}'
    
  3. 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:

  1. Azure portalına gidin ve kullanıcı adınız ve parolanızla oturum açın.
  2. Arama kutusuna 'Kubernetes Kümesi (Operatör Nexus)' yazın ve sonuç listesinden 'Kubernetes Kümesi' hizmetini seçin.

Nexus Kubernetes hizmetine göz atma işleminin ekran görüntüsü.

  1. Aramayı kullanmak için ihtiyacınız olan belirli 'Nexus Kubernetes kümesi' kaynağını arayın.

Nexus Kubernetes kümesine göz atma işleminin ekran görüntüsü.

  1. Adını küme adıyla eşleştirerek doğru kaynağı bulduğunuzda kaynağı seçerek 'Kubernetes Kümesi' giriş sayfasına gidin.

Nexus Kubernetes kümesi giriş sayfasının ekran görüntüsü.

  1. 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.

Nexus Kubernetes küme düğümlerine göz atma işleminin ekran görüntüsü.

  1. Ayrıntılarını görmek için ilgilendiğiniz Kubernetes düğümü adını seçin.
  2. CNI ağı olarak kullanılan düğümün 'Katman 3 Ağı'nın IP adresini bulmak için 'Ekli Ağlar' sekmesini denetleyin.

Nexus Kubernetes küme düğümü ağlarına göz atma işleminin ekran görüntüsü.

Sonraki adımlar

Azure Operatör Nexus Kubernetes kümesi hakkında daha fazla bilgi edinmek için aşağıdaki makaleleri deneyin.