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.
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ı 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.
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-2
bir 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.
Kaynak grubunu, Kubernetes kümesini ve İşleç Nexus ağ kaynakları dışındaki tüm ilgili kaynakları kaldırmak için az group delete komutunu kullanın.
az group delete --name myResourceGroup --yes --no-wait
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.
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