CLI ile Azure Stack Hub'da Azure Kubernetes Service kullanma

Bu kılavuz, Azure Stack Hub'da Azure Kubernetes Service (AKS) hizmetini kullanmaya başlamanıza yardımcı olur. Bu makalede, Azure Stack Hub'da AKS hakkında bilgi sahibi olmanıza yönelik ana senaryolar açıklanmaktadır. Azure Stack Hub'da sağlanan işlevsellik, genel Azure'da kullanılabilenlerin bir alt kümesidir .

Aşağıdaki bölümlerde şunları yapacaksınız:

  1. Azure Stack Hub'da AKS kullanmak için önkoşulları tamamlayın.
  2. Azure CLI ve Azure Stack Hub kullanıcı portalını kullanarak AKS kümesinin yaşam döngüsü işlemlerini tamamlayın.

Azure CLI'yı yükleme

Makineniz için AKS desteğine sahip Azure CLI'yi yüklemeniz gerekir. AKS desteğiyle Azure CLI'nin önizleme sürümünü yüklemek için temiz bir Linux veya Windows makinesi hazırlayın. Azure CLI önizlemesiyle çakışmayı önlemek için makinede Azure CLI yüklü olmadığından emin olun. Bundan sonra yükleyebilirsiniz. Aşağıdaki yönergelerin çoğunda Linux VM kullandığınız varsayılır, ancak windows'daki eşdeğer adımları ürün belgelerinde bulabilirsiniz.

AKS desteğiyle Azure CLI'yi yükledikten sonra Azure CLI'yi yükseltmeyin. Yükseltme yaparsanız, aks desteği olmayan üretime hazır sürümle değiştirilir.

Ubuntu makinesi için Azure CLI'yi Linux'a yükleme başlığı altındaki yönergeleri izleyin.

AKS desteğiyle Azure CLI'yi yükledikten sonra, aşağıdaki Azure CLI komutunu çalıştırarak yüklemenin doğru olduğunu doğrulayın:

    az --version

Bu, bir Linux makinesinden alınan çıktıdır:

Linux makinesinden çıktı

Azure CLI 2.28.0 veya üzeri olmalıdır.

Azure Stack Hub'a bağlanma

  1. Azure Stack Hub uç noktanıza bağlanın. Bağlandığınız belirli Azure Stack Hub ortamını oluşturmak için Azure CLI'yi kullanmanız gerekir. Yönergeleri Azure Stack Hub'a bağlanma makalesinde bulabilirsiniz

  2. Azure CLI'nın örneğiniz için Azure Stack Hub Resource Manager uç noktasına bağlanabilmesi için ortamınızı kaydedin. Aşağıdaki kod parçacığındaki URL'leri güncelleştirin ve aşağıdaki komutu çalıştırın:

    az cloud register \
        -n aks-preview-test \
        --endpoint-resource-manager "https://management.redmond.xbx.nxn.microsoft.com" \
        --suffix-storage-endpoint "redmond.xbx.nxn.microsoft.com" \
        --suffix-keyvault-dns ".vault.redmond.xbx.nxn.microsoft.com"
    
  3. Etkin ortamı ayarlayın.

    az cloud set -n aks-preview-test
    
  4. Ortam yapılandırmanızı güncelleştirin.

    az cloud update --profile 2020-09-01-hybrid
    
  5. Ortama bağlanın.

    az login -u 'user@contoso.onmicrosoft.com' -p 'xxxxxxx' --tenant 'contoso.onmicrosoft.com'
    

    Not

    Sertifika doğrulama başarısız hatasını tetiklerseniz, Azure Resource Manager uç noktası için kullanılan sertifikaya istemci makineniz tarafından güvenilmiyor olabilir. Bu durumda, Azure Stack Hub uç noktalarında kullanılan sertifikayı dışarı aktarmanız ve ona güvenmeniz gerekir. Yönergeleri Azure Stack Hub CA Kök Sertifikasını Dışarı Aktarma makalesinde bulabilirsiniz.

    Özellikle Linux makineleri için bkz. Linux'ta Microsoft Entra kimliği

  6. Azure CLI oturumunuzda aboneliği aşağıdakilerle varsayılan olarak ayarlayın:

    az account set --subscription <subscription-id>
    
  7. Azure Kubernetes Service kaynak sağlayıcısını kaydedin. Aboneliğinizdeki kullanılabilir kaynak sağlayıcılarını listeleyin.

    az provider list --query "[].{Provider:namespace, Status:registrationState}" --out table
    

    Çıkış şöyle görünmelidir:

    Çıkış şöyle görünmelidir:

  8. Microsoft.ContainerService kaynak sağlayıcısını not edin ve sağlayıcıyı kaydedin:

    az provider register --namespace Microsoft.ContainerService
    
  9. Kaynak sağlayıcısı kayıt durumunu doğrulamak için yedi. adımı yeniden çalıştırın. Kaydın tamamlanması birkaç dakika sürebilir.

Bu önkoşul adımları tamamlandıktan sonra aşağıdaki senaryoları test etmeye devam edebilirsiniz.

AKS kümesi oluşturma

Genel Azure yönergelerini Azure CLI kullanarak Azure Kubernetes Service kümesi dağıtma başlığında bulabilirsiniz. Buradaki yönergeler, Azure Stack Hub'da AKS kullanmanın sınırlamalarını yansıtır. Azure CLI'yi kullanarak Linux veya Windows kapsayıcıları için aks kümesi oluşturabilirsiniz.

  1. Kaynak grubu oluşturun:

    az group create --name myResourceGroup --location <Azure Stack Hub location>
    
  2. Aboneliğinizde küme oluşturmak için katkıda bulunan iznine sahip bir hizmet sorumlusu kimliğiniz olduğundan emin olun.

    1. Microsoft Entra kimliği kullanarak hizmet sorumlusu (SPN) oluşturmak için bu yönergeleri izleyin.
    2. Active Directory Federasyon Hizmetleri (AD FS) kullanarak spn oluşturmak için bu yönergeleri izleyin.
    3. SPN'ye "Katkıda Bulunan" rolü atamak için yönergelere bakın. "Katkıda Bulunan" rolünü seçtiğinizden emin olun.
  3. Üç aracı düğümünden oluşan bir AKS kümesi oluşturun. Aşağıdaki parametrelere değer sağlayın, örnekler sağlanır. Çalıştır:

    az aks create \
    --resource-group myResourceGroup \
    --name myakscluster \
    --dns-name-prefix myakscluster \
    --nodepool-name mynodepool \
    --admin-username azureuser \
    --service-principal xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
    --client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
    --node-count 3 \
    --generate-ssh-keys \
    --load-balancer-sku basic \
    --vm-set-type VirtualMachineScaleSets \
    --location <Azure Stack Hub location> \
    --kubernetes-version 1.20.7
    

    Bu işlemin çıktısı json biçiminde olacak ve kümede oluşturulan ssh ortak anahtarı, diğer özellikler arasında kümede kullanılan tam etki alanı adı (FQDN) dahil olmak üzere küme belirtimini içerir. Komutun, özel anahtarın SSH key files '/home/azureuser/.ssh/id_rsa' konumunu vurgulayan şu metin gibi bir metin çıkışı yapacağına ve '/home/azureuser/.ssh/id_rsa.pub' vm'ye SSH erişimine izin vermek için altında \~/.ssh oluşturulduğuna dikkat edin. Sorunları giderirken olduğu gibi VM'lere ssh işlemi yapılması gerekmesi durumunda bu anahtarları kullanmak üzere güvenli bir konumda saklayın.

  4. Artık Ölçeklendirme, uygulama dağıtma ve Silme testlerini tekrarlayabilirsiniz.

Kümeye bağlanma

  1. Kubernetes kümesini yönetmek için Kubernetes komut satırı istemcisi kubectl kullanırsınız. Kubectl'yi yerel olarak yüklemek için az aks install-cli komutunu kullanın (yükleme iznine sahip olmak için başlangıçta 'sudo' kullanmanız gerekebilir):

    az aks install-cli
    
  2. kubectl'yi Kubernetes kümenize bağlanacak şekilde yapılandırmak için komutunu kullanınaz aks get-credentials. Bu komut kimlik bilgilerini indirir ve Kubernetes CLI'sini bunları kullanacak şekilde yapılandırılır.

    az aks get-credentials --resource-group myResourceGroup --name myakscluster --admin
    
  3. Kümenize bağlantıyı doğrulamak için kubectl get komutunu kullanarak küme düğümlerinin listesini döndürin.

    kubectl get nodes
    

kümenize bağlantıyı doğrulama

Küme ölçeklendirme

Başka bir küme yönetim görevi de kümeyi ölçeklendirmektir. Küme oluşturulduktan sonra az aks scale komutunu kullanarak istediğiniz zaman ölçeklendirin. Kümeyi ilk üç düğümden 4'e ölçeklendirmek için şunu çalıştırın:

    az aks scale --resource-group myResourceGroup --name myakscluster --node-count 4

Küme başarıyla ölçeklendirildiğinde, çıktı aşağıdaki örneğe benzer bir "agentPoolProfiles" içerir:

    "agentPoolProfiles": [
        {
        "availabilityZones": null,
        "count": 4,
        "enableAutoScaling": null,
        "enableNodePublicIp": false,
        "maxCount": null,
        "maxPods": 110,
        "minCount": null,
        "mode": "System",
        "name": "mynodepool",
        "nodeLabels": {},
        "nodeTaints": null,
        "orchestratorVersion": "1.20.7",
        "osDiskSizeGb": 100,
        "osType": "Linux",
        "provisioningState": "Succeeded",
        "scaleSetEvictionPolicy": null,
        "scaleSetPriority": null,
        "spotMaxPrice": null,
        "tags": null,
        "type": "VirtualMachineScaleSets",
        "vmSize": " Standard_DS2_v2",
        "vnetSubnetId": null
        }
    ]

Kümeyi silme

Önceki işlemler gerçekleştirildikten sonra kümeyi silmeye devam edebilirsiniz. Çalıştır:

az aks delete --name myakscluster --resource-group myResourceGroup

Özel sanal ağ ile AKS kümesi oluşturma

Kullanıcı tarafından sağlanan bir ağda dağıtılacak bir küme oluşturmak yaygın bir senaryodur. Ağ yapılandırmasını planlamak biraz hazırlık gerektirir. Ayrıca AKS altyapısında olduğu gibi AKS ile varsayılan ağ eklentisinin Kubenet değil Azure CNI olduğuna dikkat edin. Azure CNI ile her pod alt ağdan bir IP adresi alır ve doğrudan erişilebilir (Kubenet'de olduğu gibi Yönlendirme tablosuna gerek kalmadan). Bu IP adresleri ağ alanınız genelinde benzersiz olmalı ve planlanmalıdır. Aşağıdaki makalede, özel sanal ağ dağıtımınızı planlama işleminde size yol gösterilir. İhtiyaçlarınıza uygun çeşitli ağ yapılandırmalarını bulabilir ve test edebilirsiniz. İlk test için aşağıdaki iki adım size temel işlemi gösterir:

  1. Azure CNI kullanarak dağıtımı planlamak için bu makaledeki yönergeleri izleyin. Örneğin, "myTest-rg" adlı kaynak grubunda "myAKSSubnet" alt ağı ve 10.240.0.0/16 IP aralığı ile 10.0.0.0/8 IP aralığına sahip "myAKSVnet" adlı bir sanal ağ oluşturmak için portalı kullanabilirsiniz. Ardından kümeyi oluşturmak için sonraki adımı kullanın.

    az network vnet create \
        --resource-group myTest-rg \
        --name myAKSVnet \
        --address-prefixes 10.0.0.0/8 \
        --subnet-name myAKSSubnet \
        --subnet-prefix 10.240.0.0/16    
    
  2. Azure'da dağıtım yaparken Azure makalesinde sağlanan küme komutunun düzgün çalıştığını, Azure Stack Hub'a dağıtmak için aşağıdaki örnekte olduğu gibi ek parametreler belirtmeniz gerektiğini unutmayın. Sanal ağ alt ağ kimliği '/subscriptions/csvfdff-5dfdf-konusundaf-kenf-kenfdfd/resourceGroups/myTest-rg/providers/Microsoft.Network/virtualNetworks/myAKSVnet/subnets/myAKSSubnet' şeklinde görünmelidir:

    az aks create  \ 
    --resource-group myTest-rg \
    --name aksvnet \
    --dns-name-prefix  aksvnet \
    --nodepool-name mynodepool \
    --admin-username azureuser \
    --service-principal xvxvxvxvx-ffff-ffff-xvxvxvx-8xbxbxbx8  \
    --client-secret dccbcbcbcbcbcbcbcbbcbcbcbcbcbcbc-LNX \
    --node-count 3 \
    --generate-ssh-keys \
    --load-balancer-sku basic \
    --vm-set-type VirtualMachineScaleSets \
    --network-plugin azure \
    --vnet-subnet-id '<subnet-resource-id>' \
    --skip-subnet-role-assignment \
    --docker-bridge-address 172.17.0.1/16 \
    --dns-service-ip 10.0.0.10 \
    --location redmond
    
  3. Kubernetes kümesine bağlanmak ve uygulamalarınızı dağıtmak için "Kümeye bağlanma" bölümündeki yönergeleri izleyin.

Tutarlılık denetimi

Azure ile Azure Stack Hub arasında tutarlılık denetimi

  1. Yukarıda test edilen komutlardan, aşağıdaki "Komut Başvurusu" bölümünden veya kendi günlük betiklerinizden bir komut bileşimi seçin.
  2. Bunları Azure'a ve daha sonra Azure Stack Hub'a uygulayın. Beklenmeyen tutarsızlıkları not edin ve geri bildirim sağlayın.

Sonraki adımlar

Azure Stack Hub'da AKS hakkında bilgi edinin