Aracılığıyla paylaş


Azure portalında sanal düğümleri kullanmak için Azure Kubernetes Services (AKS) kümesi oluşturma ve yapılandırma

Sanal düğümler, Azure Container Instances (ACI) ile Azure Kubernetes Service (AKS) kümelerinde çalışan podlar arasında ağ iletişimi sağlar. Bu iletişimi sağlamak için bir sanal ağ alt ağı oluşturulur ve temsilci izinleri atanır. Sanal düğümler yalnızca gelişmiş ağ (Azure CNI) kullanılarak oluşturulan AKS kümeleriyle çalışır. AKS kümeleri varsayılan olarak temel ağ (kubenet) ile oluşturulur.

Bu makalede, sanal ağ ve alt ağlar oluşturma ve ardından Azure portalını kullanarak gelişmiş ağ kullanan bir AKS kümesi dağıtma adımları gösterilmektedir.

Dekont

Sanal düğüm bölgesinin kullanılabilirliği ve sınırlamalarına genel bakış için bkz . AKS'de sanal düğümleri kullanma.

Başlamadan önce

Aboneliğinizde ACI hizmet sağlayıcısının kayıtlı olması gerekir.

  • komutunu kullanarak ACI sağlayıcı kaydının az provider list durumunu denetleyin.

    az provider list --query "[?contains(namespace,'Microsoft.ContainerInstance')]" -o table
    

    Aşağıdaki örnek çıktı, Microsoft.ContainerInstance sağlayıcısının Kayıtlı olduğunu gösterir:

    Namespace                    RegistrationState    RegistrationPolicy
    ---------------------------  -------------------  --------------------
    Microsoft.ContainerInstance  Registered           RegistrationRequired
    
  • Sağlayıcı NotRegistered ise komutunu kullanarak az provider register kaydedin.

    az provider register --namespace Microsoft.ContainerInstance
    

AKS kümesi oluşturma

  1. Azure portalı giriş sayfasına gidin.
  2. Kaynak>Kapsayıcıları oluştur'u seçin.
  3. Azure Kubernetes Service (AKS) kaynağında Oluştur'u seçin.
  4. Temel Bilgiler sayfasında aşağıdaki seçenekleri yapılandırın:
    • Proje ayrıntıları: Bir Azure aboneliği seçin, ardından myResourceGroup gibi bir Azure kaynak grubu seçin veya oluşturun.
    • Küme ayrıntıları: MyAKSCluster gibi bir Kubernetes küme adı girin. AKS kümesi için bir bölge ve Kubernetes sürümü seçin.
  5. İleri: Düğüm havuzları'nı seçin ve *Sanal düğümleri etkinleştir'i işaretleyin. Screenshot that shows creating a cluster with virtual nodes enabled on the Azure portal. The option 'Enable virtual nodes' is highlighted.
  6. Gözden geçir ve oluştur’u seçin.
  7. Doğrulama tamamlandıktan sonra Oluştur'u seçin.

Varsayılan olarak bu işlem, diğer Azure hizmetleriyle küme iletişimi ve tümleştirmesi için kullanılan yönetilen bir küme kimliği oluşturur. Daha fazla bilgi için bkz . Yönetilen kimlikleri kullanma. Küme kimliğiniz olarak bir hizmet sorumlusu da kullanabilirsiniz.

Bu işlem, kümeyi gelişmiş ağ için ve sanal düğümleri kendi Azure sanal ağ alt ağını kullanacak şekilde yapılandırılır. Alt ağ, Azure kaynaklarını AKS kümesi arasında bağlamak için temsilci izinlerine sahiptir. Henüz bir temsilci alt ağınız yoksa, Azure portalı sanal düğümlerle bir Azure sanal ağı ve alt ağı oluşturur ve yapılandırır.

Kümeye bağlanma

Azure Cloud Shell, bu makaledeki adımları çalıştırmak için kullanabileceğiniz ücretsiz bir etkileşimli kabukdur. Yaygın Azure araçları, kabuğa önceden yüklenmiştir ve kabuk, hesabınızla birlikte kullanılacak şekilde yapılandırılmıştır. Kubernetes kümesini yönetmek için Kubernetes komut satırı istemcisi kubectl’i kullanın. kubectl istemcisi Azure Cloud Shell’de önceden yüklüdür.

  1. komutunu kullanarak Kubernetes kümenize bağlanacak şekilde az aks get-credentials yapılandırınkubectl. Aşağıdaki örnek myResourceGroup adlı kaynak grubu içindeki myAKSCluster adlı kümenin kimlik bilgilerini alır:

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. kullanarak kubectl get nodeskümenize bağlantıyı doğrulayın.

    kubectl get nodes
    

    Aşağıdaki örnek çıktı, oluşturulan tek VM düğümünü ve virtual-node-aci-linux adlı sanal Linux düğümünü gösterir:

    NAME                           STATUS    ROLES     AGE       VERSION
    virtual-node-aci-linux         Ready     agent     28m       v1.11.2
    aks-agentpool-14693408-0       Ready     agent     32m       v1.11.2
    

Örnek uygulama dağıtma

  1. Azure Cloud Shell'de adlı virtual-node.yaml bir dosya oluşturun ve aşağıdaki YAML'de kopyalayın:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: aci-helloworld
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: aci-helloworld
      template:
        metadata:
          labels:
            app: aci-helloworld
        spec:
          containers:
          - name: aci-helloworld
            image: mcr.microsoft.com/azuredocs/aci-helloworld
            ports:
            - containerPort: 80
          nodeSelector:
            kubernetes.io/role: agent
            beta.kubernetes.io/os: linux
            type: virtual-kubelet
          tolerations:
          - key: virtual-kubelet.io/provider
            operator: Exists
    

    YAML, pod'un sanal düğümde zamanlanması için bir nodeSelector ve tolerans tanımlar. Pod' a, sanal düğümlerle kullanılmak üzere temsilci olarak atanan Azure sanal ağ alt ağından bir iç IP adresi atanır.

  2. komutunu kullanarak kubectl apply uygulamayı çalıştırın.

    kubectl apply -f virtual-node.yaml
    
  3. komutunu bağımsız değişkeniyle kullanarak kubectl get pods düğümde zamanlanan podları -o wide görüntüleyin.

    kubectl get pods -o wide
    

    Aşağıdaki örnek çıktıda düğümde virtual-node-helloworld zamanlanan pod gösterilmektedir virtual-node-linux .

    NAME                                     READY     STATUS    RESTARTS   AGE       IP           NODE
    virtual-node-helloworld-9b55975f-bnmfl   1/1       Running   0          4m        10.241.0.4   virtual-node-aci-linux
    

Dekont

Azure Container Registry'de depolanan görüntüleri kullanıyorsanız kubernetes gizli dizisini yapılandırın ve kullanın. Sanal düğümlerin bir sınırlaması, tümleşik Microsoft Entra hizmet sorumlusu kimlik doğrulamayı kullanamamanızdır. Gizli dizi kullanmazsanız, sanal düğümlerde zamanlanan podlar başlatılamaz ve hatasını HTTP response status code 400 error code "InaccessibleImage"bildiremez.

Sanal düğüm podunu test edin

Sanal düğümde çalışan podu test etmek için bir web istemcisiyle tanıtım uygulamasına göz atın. Poda bir iç IP adresi atanır, böylece AKS kümesindeki başka bir poddan bağlantıyı kolayca test edebilirsiniz.

  1. Aşağıdaki kubectl run komutu kullanarak bir test podu oluşturun ve buna bir terminal oturumu ekleyin.

    kubectl run -it --rm virtual-node-test --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
    
  2. Aşağıdaki apt-get komutu kullanarak pod'a yükleyincurl.

    apt-get update && apt-get install -y curl
    
  3. Aşağıdaki curl komutu kullanarak podunuzun adresine erişin ve iç IP adresinizi sağlayın.

    curl -L http://10.241.0.4
    

    Aşağıdaki daraltılmış örnek çıktı, tanıtım uygulamasını gösterir.

    <html>
    <head>
      <title>Welcome to Azure Container Instances!</title>
    </head>
    [...]
    
  4. ile test podunuza exitterminal oturumunu kapatın ve pod da silinir.

    exit
    

Sonraki adımlar

Bu makalede, sanal düğümde bir pod zamanladıysanız ve özel, iç IP adresi atadıysanız. İsterseniz, bunun yerine bir hizmet dağıtımı oluşturabilir ve trafiği yük dengeleyici veya giriş denetleyicisi aracılığıyla podunuza yönlendirebilirsiniz. Daha fazla bilgi için bkz . AKS'de temel giriş denetleyicisi oluşturma.

Sanal düğümler, AKS'deki bir ölçeklendirme çözümünün bileşenlerinden biridir. Çözümleri ölçeklendirme hakkında daha fazla bilgi için aşağıdaki makalelere bakın: