Aracılığıyla paylaş


Hızlı Başlangıç: Azure CLI kullanarak Azure Nexus Kubernetes kümesi oluşturma

  • Azure CLI kullanarak bir Azure Nexus Kubernetes kümesi dağıtma.

Başlamadan önce

Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.

  • Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.

  • CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

  • Gerekli Azure CLI uzantılarının en son sürümünü yükleyin.

  • Bu makale, Azure CLI'nın 2.49.0 veya sonraki bir sürümünü gerektirir. Azure Cloud Shell kullanılıyorsa en son sürüm zaten yüklüdür.

  • Birden çok Azure aboneliğiniz varsa, komutu kullanılarak az account kaynakların faturalandırılacağı uygun abonelik kimliğini seçin.

  • Desteklenen VM SKU'larının listesi için başvuru bölümündeki VM SKU tablosuna bakın.

  • Desteklenen Kubernetes sürümlerinin listesi için desteklenen Kubernetes sürümlerine bakın.

  • komutunu kullanarak az group create bir kaynak grubu oluşturun. Azure kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği mantıksal bir grupdur. Bir kaynak grubu oluşturduğunuzda, bir konum belirtmeniz istenir. Bu konum, kaynak grubu meta verilerinizin depolama konumudur ve kaynak oluşturma sırasında başka bir bölge belirtmezseniz kaynaklarınızın Azure'da çalıştırıldığı konumdur. Aşağıdaki örnek eastus konumunda myResourceGroup adlı bir kaynak grubu oluşturur.

    az group create --name myResourceGroup --location eastus
    

    Aşağıdaki çıkış örneği, kaynak grubunun başarıyla oluşturulmasına benzer:

    {
      "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
      "location": "eastus",
      "managedBy": null,
      "name": "myResourceGroup",
      "properties": {
        "provisioningState": "Succeeded"
      },
      "tags": null
    }
    
  • Bicep dosyasını veya ARM şablonunu dağıtmak için dağıttığınız kaynaklara yazma erişimine ve Microsoft.Resources/deployments kaynak türündeki tüm işlemler için erişime sahip olmanız gerekir. Örneğin, bir kümeyi dağıtmak için Microsoft.NetworkCloud/kubernetesclusters/write ve Microsoft.Resources/deployments/* izinlerine sahip olmanız gerekir. Rol ve izinlerin listesi için bkz. Azure yerleşik rolleri.

  • Azure Operatör Nexus kümenizin kaynak kimliğine ihtiyacınız vardır custom location .

  • Belirli iş yükü gereksinimlerinize göre çeşitli ağlar oluşturmanız gerekir ve iş yükleriniz için uygun IP adreslerinin kullanılabilir olması önemlidir. Sorunsuz bir uygulama sağlamak için yardım için ilgili destek ekiplerine başvurmanız önerilir.

  • Bu hızlı başlangıç, Kubernetes kavramlarının temel olarak bilindiğini varsayar. Daha fazla bilgi için bkz . Azure Kubernetes Service (AKS) için Kubernetes temel kavramları.

Azure Nexus Kubernetes kümesi oluşturma

Aşağıdaki örnek, eastus konumundaki myResourceGroup kaynak grubunda myNexusK8sCluster adlı bir küme oluşturur.

Komutları çalıştırmadan önce kümenizin yapılandırmasını tanımlamak için birkaç değişken ayarlamanız gerekir. Belirli değişkenler için kullanabileceğiniz bazı varsayılan değerlerin yanı sıra ayarlamanız gereken değişkenler şunlardır:

Değişken Açıklama
KONUM Kümenizi oluşturmak istediğiniz Azure bölgesi.
RESOURCE_GROUP Kümeyi oluşturmak istediğiniz Azure kaynak grubunun adı.
SUBSCRIPTION_ID Azure aboneliğinizin kimliği.
CUSTOM_LOCATION Bu bağımsız değişken, Nexus örneğinin özel konumunu belirtir.
CSN_ARM_ID CSN Kimliği, kullanmak istediğiniz bulut hizmetleri ağının benzersiz tanımlayıcısıdır.
CNI_ARM_ID CNI Kimliği, kapsayıcı çalışma zamanı tarafından kullanılacak ağ arabiriminin benzersiz tanımlayıcısıdır.
AAD_ADMIN_GROUP_OBJECT_ID Kümede yönetici ayrıcalıklarına sahip olması gereken Microsoft Entra grubunun nesne kimliği.
CLUSTER_NAME Nexus Kubernetes kümenize vermek istediğiniz ad.
K8S_VERSION Kullanmak istediğiniz Kubernetes sürümü.
ADMIN_USERNAME Küme yöneticisinin kullanıcı adı.
SSH_PUBLIC_KEY Kümeyle güvenli iletişim için kullanılan SSH ortak anahtarı.
CONTROL_PLANE_COUNT Küme için denetim düzlemi düğümlerinin sayısı.
CONTROL_PLANE_VM_SIZE Denetim düzlemi düğümleri için sanal makinenin boyutu.
INITIAL_AGENT_POOL_NAME İlk aracı havuzunun adı.
INITIAL_AGENT_POOL_COUNT İlk aracı havuzundaki düğüm sayısı.
INITIAL_AGENT_POOL_VM_SIZE İlk aracı havuzu için sanal makinenin boyutu.
POD_CIDR CIDR gösteriminde kümedeki Kubernetes podlarının ağ aralığı.
SERVICE_CIDR CIDR gösteriminde kümedeki Kubernetes hizmetlerinin ağ aralığı.
DNS_SERVICE_IP Kubernetes DNS hizmetinin IP adresi.

Bu değişkenleri tanımladıktan sonra Azure CLI komutunu çalıştırarak kümeyi oluşturabilirsiniz. --debug Sorun giderme amacıyla daha ayrıntılı bir çıkış sağlamak için sonuna bayrağını ekleyin.

Bu değişkenleri tanımlamak için aşağıdaki küme komutlarını kullanın ve örnek değerleri tercih ettiğiniz değerlerle değiştirin. Aşağıdaki örnekte gösterildiği gibi, bazı değişkenler için varsayılan değerleri de kullanabilirsiniz:

RESOURCE_GROUP="myResourceGroup"
SUBSCRIPTION_ID="<Azure subscription ID>"
LOCATION="$(az group show --name $RESOURCE_GROUP --query location --subscription $SUBSCRIPTION_ID -o tsv)"
CUSTOM_LOCATION="/subscriptions/<subscription_id>/resourceGroups/<managed_resource_group>/providers/microsoft.extendedlocation/customlocations/<custom-location-name>"
CSN_ARM_ID="/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.NetworkCloud/cloudServicesNetworks/<csn-name>"
CNI_ARM_ID="/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.NetworkCloud/l3Networks/<l3Network-name>"
AAD_ADMIN_GROUP_OBJECT_ID="00000000-0000-0000-0000-000000000000"
CLUSTER_NAME="myNexusK8sCluster"
K8S_VERSION="v1.24.9"
ADMIN_USERNAME="azureuser"
SSH_PUBLIC_KEY="$(cat ~/.ssh/id_rsa.pub)"
CONTROL_PLANE_SSH_PUBLIC_KEY="$(cat ~/.ssh/id_rsa.pub)"
AGENT_POOL_SSH_PUBLIC_KEY="$(cat ~/.ssh/id_rsa.pub)"
CONTROL_PLANE_COUNT="1"
CONTROL_PLANE_VM_SIZE="NC_G6_28_v1"
INITIAL_AGENT_POOL_NAME="${CLUSTER_NAME}-nodepool-1"
INITIAL_AGENT_POOL_COUNT="1"
INITIAL_AGENT_POOL_VM_SIZE="NC_P10_56_v1"
POD_CIDR="10.244.0.0/16"
SERVICE_CIDR="10.96.0.0/16"
DNS_SERVICE_IP="10.96.0.10"

Önemli

Bu komutları çalıştırmadan önce CUSTOM_LOCATION, CSN_ARM_ID, CNI_ARM_ID ve AAD_ADMIN_GROUP_OBJECT_ID yer tutucularını gerçek değerlerinizle değiştirmeniz önemlidir.

Bu değişkenleri tanımladıktan sonra aşağıdaki Azure CLI komutunu yürüterek Kubernetes kümesini oluşturabilirsiniz:

az networkcloud kubernetescluster create \
  --name "${CLUSTER_NAME}" \
  --resource-group "${RESOURCE_GROUP}" \
  --subscription "${SUBSCRIPTION_ID}" \
  --extended-location name="${CUSTOM_LOCATION}" type=CustomLocation \
  --location "${LOCATION}" \
  --kubernetes-version "${K8S_VERSION}" \
  --aad-configuration admin-group-object-ids="[${AAD_ADMIN_GROUP_OBJECT_ID}]" \
  --admin-username "${ADMIN_USERNAME}" \
  --ssh-key-values "${SSH_PUBLIC_KEY}" \
  --control-plane-node-configuration \
    count="${CONTROL_PLANE_COUNT}" \
    vm-sku-name="${CONTROL_PLANE_VM_SIZE}" \
    ssh-key-values='["${CONTROL_PLANE_SSH_PUBLIC_KEY}"]' \
  --initial-agent-pool-configurations "[{count:${INITIAL_AGENT_POOL_COUNT},mode:System,name:${INITIAL_AGENT_POOL_NAME},vm-sku-name:${INITIAL_AGENT_POOL_VM_SIZE},ssh-key-values:['${AGENT_POOL_SSH_PUBLIC_KEY}']}]" \
  --network-configuration \
    cloud-services-network-id="${CSN_ARM_ID}" \
    cni-network-id="${CNI_ARM_ID}" \
    pod-cidrs="[${POD_CIDR}]" \
    service-cidrs="[${SERVICE_CIDR}]" \
    dns-service-ip="${DNS_SERVICE_IP}"

İstenen küme düğümlerini dağıtmak için yeterli kapasite yoksa bir hata iletisi görüntülenir. Ancak, bu ileti kullanılabilir kapasite hakkında herhangi bir ayrıntı sağlamaz. Yetersiz kapasite nedeniyle küme oluşturma işleminin devam edemeyebildiğini belirtir.

Not

Kapasite hesaplaması, tek tek raflarla sınırlı kalmak yerine platform kümesinin tamamını dikkate alır. Bu nedenle, yetersiz kapasiteye sahip bir bölgede (rafın bir bölgeye eşit olduğu) bir aracı havuzu oluşturulursa, ancak başka bir bölge yeterli kapasiteye sahipse, küme oluşturma işlemi devam eder ancak sonunda zaman aşımına neden olur. Bu kapasite denetimi yaklaşımı yalnızca küme veya aracı havuzu oluşturulurken belirli bir bölge belirtilmemişse mantıklıdır.

Birkaç dakika sonra komut tamamlanıp küme hakkındaki bilgileri döndürür. Daha gelişmiş seçenekler için bkz . Hızlı Başlangıç: Bicep kullanarak Azure Nexus Kubernetes kümesi dağıtma.

Dağıtılan kaynakları gözden geçirme

Dağıtım tamamlandıktan sonra CLI veya Azure portalını kullanarak kaynakları görüntüleyebilirsiniz.

Kaynak grubundaki myResourceGroup kümenin myNexusK8sCluster ayrıntılarını görüntülemek için aşağıdaki Azure CLI komutunu yürütebilirsiniz:

az networkcloud kubernetescluster show \
  --name myNexusK8sCluster \
  --resource-group myResourceGroup

Ayrıca, kaynak grubundaki myResourceGroup kümeyle myNexusK8sCluster ilişkili aracı havuzu adlarının listesini almak için aşağıdaki Azure CLI komutunu kullanabilirsiniz.

az networkcloud kubernetescluster agentpool list \
  --kubernetes-cluster-name myNexusK8sCluster \
  --resource-group myResourceGroup \
  --output table

Kümeye bağlanma

Nexus Kubernetes kümesi başarıyla oluşturulduğuna ve Azure Arc'a bağlanıldığına göre, küme bağlantısı özelliğini kullanarak bu kümeye kolayca bağlanabilirsiniz. Küme bağlantısı, kümenize her yerden güvenli bir şekilde erişmenize ve bunları yönetmenize olanak sağlayarak etkileşimli geliştirme, hata ayıklama ve küme yönetim görevleri için kullanışlı hale getirir.

Kullanılabilir seçenekler hakkında daha ayrıntılı bilgi için bkz. Azure Operatörü Nexus Kubernetes kümesine Bağlan.

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.

Aracı havuzu ekleme

Önceki adımda oluşturulan kümenin tek düğüm havuzu vardır. komutunu kullanarak az networkcloud kubernetescluster agentpool create ikinci bir aracı havuzu ekleyelim. Aşağıdaki örnek adlı myNexusK8sCluster-nodepool-2bir aracı havuzu oluşturur:

Aşağıdaki örnekte gösterildiği gibi, bazı değişkenler için varsayılan değerleri de kullanabilirsiniz:

RESOURCE_GROUP="myResourceGroup"
CUSTOM_LOCATION="/subscriptions/<subscription_id>/resourceGroups/<managed_resource_group>/providers/microsoft.extendedlocation/customlocations/<custom-location-name>"
CLUSTER_NAME="myNexusK8sCluster"
AGENT_POOL_NAME="${CLUSTER_NAME}-nodepool-2"
AGENT_POOL_VM_SIZE="NC_P10_56_v1"
AGENT_POOL_COUNT="1"
AGENT_POOL_MODE="User"

Bu değişkenleri tanımladıktan sonra aşağıdaki Azure CLI komutunu yürüterek bir aracı havuzu ekleyebilirsiniz:

az networkcloud kubernetescluster agentpool create \
  --name "${AGENT_POOL_NAME}" \
  --kubernetes-cluster-name "${CLUSTER_NAME}" \
  --resource-group "${RESOURCE_GROUP}" \
  --subscription "${SUBSCRIPTION_ID}" \
  --extended-location name="${CUSTOM_LOCATION}" type=CustomLocation \
  --count "${AGENT_POOL_COUNT}" \
  --mode "${AGENT_POOL_MODE}" \
  --vm-sku-name "${AGENT_POOL_VM_SIZE}"

Birkaç dakika sonra komut tamamlanıp aracı havuzu hakkındaki bilgileri döndürür. Daha gelişmiş seçenekler için bkz . Hızlı Başlangıç: Bicep kullanarak Azure Nexus Kubernetes kümesi dağıtma.

Not

İlk aracı havuzu yapılandırmalarını kullanarak kümenizin ilk oluşturulması sırasında birden çok aracı havuzu ekleyebilirsiniz. Ancak, ilk oluşturma işleminden sonra aracı havuzları eklemek isterseniz, Nexus Kubernetes kümeniz için ek aracı havuzları oluşturmak üzere yukarıdaki komutu kullanabilirsiniz.

Aşağıdaki çıkış örneği, aracı havuzunun başarıyla oluşturulmasına benzer.

$ az networkcloud kubernetescluster agentpool list --kubernetes-cluster-name myNexusK8sCluster --resource-group myResourceGroup --output table
This command is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
Count    Location    Mode    Name                          ProvisioningState    ResourceGroup    VmSkuName
-------  ----------  ------  ----------------------------  -------------------  ---------------  -----------
1        eastus      System  myNexusK8sCluster-nodepool-1  Succeeded            myResourceGroup  NC_P10_56_v1
1        eastus      User    myNexusK8sCluster-nodepool-2  Succeeded            myResourceGroup  NC_P10_56_v1

Kaynakları temizleme

Artık gerekli değilse kaynak grubunu silin. Kaynak grubu ve kaynak grubundaki tüm kaynaklar silinir.

Sonraki adımlar

Artık CNF'leri doğrudan küme bağlantısı veya Azure Operatör Hizmet Yöneticisi aracılığıyla dağıtabilirsiniz.