Udostępnij za pośrednictwem


Tworzenie i konfigurowanie klastra usługi Azure Kubernetes Services (AKS) do używania węzłów wirtualnych w witrynie Azure Portal

Węzły wirtualne umożliwiają komunikację sieciową między zasobnikami uruchomionymi w klastrach usługi Azure Container Instances (ACI) i azure Kubernetes Service (AKS). Aby zapewnić tę komunikację, zostanie utworzona podsieć sieci wirtualnej i przypisano uprawnienia delegowane. Węzły wirtualne działają tylko z klastrami usługi AKS utworzonymi przy użyciu zaawansowanej sieci (Azure CNI). Klastry usługi AKS są tworzone domyślnie przy użyciu podstawowej sieci (kubenet).

W tym artykule pokazano, jak utworzyć sieć wirtualną i podsieci, a następnie wdrożyć klaster usługi AKS korzystający z zaawansowanej sieci przy użyciu witryny Azure Portal.

Uwaga

Aby zapoznać się z omówieniem dostępności i ograniczeń regionów węzłów wirtualnych, zobacz Używanie węzłów wirtualnych w usłudze AKS.

Zanim rozpoczniesz

Potrzebujesz dostawcy usług ACI zarejestrowanego w ramach subskrypcji.

  • Sprawdź stan rejestracji dostawcy ACI przy użyciu az provider list polecenia .

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

    Następujące przykładowe dane wyjściowe pokazują, że dostawca Microsoft.ContainerInstance jest zarejestrowany:

    Namespace                    RegistrationState    RegistrationPolicy
    ---------------------------  -------------------  --------------------
    Microsoft.ContainerInstance  Registered           RegistrationRequired
    
  • Jeśli dostawca nie jest zarejestrowany, zarejestruj go przy użyciu az provider register polecenia .

    az provider register --namespace Microsoft.ContainerInstance
    

Tworzenie klastra AKS

  1. Przejdź do strony głównej witryny Azure Portal.
  2. Wybierz pozycję Utwórz kontenery zasobów>.
  3. W zasobie usługi Azure Kubernetes Service (AKS) wybierz pozycję Utwórz.
  4. Na stronie Podstawowe skonfiguruj następujące opcje:
    • Szczegóły projektu: wybierz subskrypcję platformy Azure, a następnie wybierz lub utwórz grupę zasobów platformy Azure, taką jak myResourceGroup.
    • Szczegóły klastra: wprowadź nazwę klastra Kubernetes, taką jak myAKSCluster. Wybierz region i wersję rozwiązania Kubernetes dla klastra AKS.
  5. Wybierz pozycję Dalej: Pule węzłów i zaznacz *Włącz węzły wirtualne. Zrzut ekranu przedstawiający tworzenie klastra z włączonymi węzłami wirtualnymi w witrynie Azure Portal. Opcja
  6. Wybierz pozycję Przejrzyj i utwórz.
  7. Po zakończeniu walidacji wybierz pozycję Utwórz.

Domyślnie ten proces tworzy tożsamość klastra zarządzanego, która jest używana do komunikacji klastra i integracji z innymi usługami platformy Azure. Aby uzyskać więcej informacji, zobacz Używanie tożsamości zarządzanych. Możesz również użyć jednostki usługi jako tożsamości klastra.

Ten proces umożliwia skonfigurowanie klastra pod kątem zaawansowanej sieci i węzłów wirtualnych do używania własnej podsieci sieci wirtualnej platformy Azure. Podsieć ma delegowane uprawnienia do łączenia zasobów platformy Azure między klastrem usługi AKS. Jeśli nie masz jeszcze delegowanej podsieci, witryna Azure Portal tworzy i konfiguruje sieć wirtualną i podsieć platformy Azure z węzłami wirtualnymi.

Łączenie z klastrem

Usługa Azure Cloud Shell to bezpłatna interaktywna powłoka, której można użyć do wykonania kroków opisanych w tym artykule. Udostępnia ona wstępnie zainstalowane i najczęściej używane narzędzia platformy Azure, które są skonfigurowane do użycia na koncie. Aby zarządzać klastrem Kubernetes, należy użyć klienta wiersza polecenia usługi Kubernetes — narzędzia kubectl. Klient kubectl jest instalowany wstępnie wraz z usługą Azure Cloud Shell.

  1. Skonfiguruj kubectl , aby nawiązać połączenie z klastrem az aks get-credentials Kubernetes przy użyciu polecenia . Poniższy przykład umożliwia pobranie poświadczeń dla nazwy klastra myAKSCluster w grupie zasobów myResourceGroup:

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. Sprawdź połączenie z klastrem przy użyciu polecenia kubectl get nodes.

    kubectl get nodes
    

    W poniższych przykładowych danych wyjściowych przedstawiono utworzony pojedynczy węzeł maszyny wirtualnej i wirtualny węzeł systemu Linux o nazwie virtual-node-aci-linux:

    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
    

Wdrażanie przykładowej aplikacji

  1. W usłudze Azure Cloud Shell utwórz plik o nazwie virtual-node.yaml i skopiuj następujący kod YAML:

    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 definiuje węzełSelector i tolerancję, która umożliwia zaplanowanie zasobnika w węźle wirtualnym. Zasobnik ma przypisany wewnętrzny adres IP z podsieci sieci wirtualnej platformy Azure delegowanej do użycia z węzłami wirtualnymi.

  2. Uruchom aplikację przy użyciu kubectl apply polecenia .

    kubectl apply -f virtual-node.yaml
    
  3. Wyświetl zasobniki zaplanowane w węźle przy użyciu kubectl get pods polecenia z argumentem -o wide .

    kubectl get pods -o wide
    

    Poniższe przykładowe dane wyjściowe pokazują virtual-node-helloworld zasobnik zaplanowany na węźle 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
    

Uwaga

Jeśli używasz obrazów przechowywanych w usłudze Azure Container Registry, skonfiguruj klucz tajny platformy Kubernetes i użyj go. Ograniczeniem węzłów wirtualnych jest to, że nie można używać zintegrowanego uwierzytelniania jednostki usługi Microsoft Entra. Jeśli nie używasz wpisu tajnego, zasobniki zaplanowane na węzłach wirtualnych nie mogą uruchomić i zgłosić błąd HTTP response status code 400 error code "InaccessibleImage".

Testowanie zasobnika węzła wirtualnego

Aby przetestować zasobnik uruchomiony w węźle wirtualnym, przejdź do aplikacji demonstracyjnej za pomocą klienta internetowego. Zasobnik ma przypisany wewnętrzny adres IP, dzięki czemu można łatwo przetestować łączność z innego zasobnika w klastrze usługi AKS.

  1. Utwórz zasobnik testowy i dołącz do niego sesję terminalu przy użyciu następującego kubectl run polecenia.

    kubectl run -it --rm virtual-node-test --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
    
  2. Zainstaluj curl w zasobniku przy użyciu następującego apt-get polecenia.

    apt-get update && apt-get install -y curl
    
  3. Uzyskaj dostęp do adresu zasobnika przy użyciu następującego curl polecenia i podaj wewnętrzny adres IP.

    curl -L http://10.241.0.4
    

    Następujące skrócone przykładowe dane wyjściowe pokazują demonstracyjną aplikację.

    <html>
    <head>
      <title>Welcome to Azure Container Instances!</title>
    </head>
    [...]
    
  4. Zamknij sesję terminalu do zasobnika testowego za pomocą exitpolecenia , który również usuwa zasobnik.

    exit
    

Następne kroki

W tym artykule zaplanowano zasobnik w węźle wirtualnym i przypisano prywatny wewnętrzny adres IP. Jeśli chcesz, możesz utworzyć wdrożenie usługi i kierować ruch do zasobnika za pośrednictwem modułu równoważenia obciążenia lub kontrolera ruchu przychodzącego. Aby uzyskać więcej informacji, zobacz Tworzenie podstawowego kontrolera ruchu przychodzącego w usłudze AKS.

Węzły wirtualne są jednym ze składników rozwiązania skalowania w usłudze AKS. Aby uzyskać więcej informacji na temat skalowania rozwiązań, zobacz następujące artykuły: