Sdílet prostřednictvím


Vytvoření a konfigurace clusteru Azure Kubernetes Services (AKS) pro použití virtuálních uzlů na webu Azure Portal

Virtuální uzly umožňují síťovou komunikaci mezi pody, které běží ve službě Azure Container Instances (ACI) a clustery Azure Kubernetes Service (AKS). K zajištění této komunikace se vytvoří podsíť virtuální sítě a přiřadí se delegovaná oprávnění. Virtuální uzly fungují jenom s clustery AKS vytvořenými pomocí pokročilých sítí (Azure CNI). Clustery AKS se ve výchozím nastavení vytvářejí se základními sítěmi (kubenet).

V tomto článku se dozvíte, jak vytvořit virtuální síť a podsítě a pak nasadit cluster AKS, který používá pokročilé sítě pomocí webu Azure Portal.

Poznámka:

Přehled dostupnosti a omezení oblasti virtuálních uzlů najdete v tématu Použití virtuálních uzlů v AKS.

Než začnete

Potřebujete poskytovatele služeb ACI zaregistrovaného ve vašem předplatném.

  • Pomocí příkazu zkontrolujte stav registrace az provider list zprostředkovatele ACI.

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

    Následující příklad výstupu ukazuje, že je zaregistrovaný zprostředkovatel Microsoft.ContainerInstance:

    Namespace                    RegistrationState    RegistrationPolicy
    ---------------------------  -------------------  --------------------
    Microsoft.ContainerInstance  Registered           RegistrationRequired
    
  • Pokud je zprostředkovatel notRegistered, zaregistrujte ho az provider register pomocí příkazu.

    az provider register --namespace Microsoft.ContainerInstance
    

Vytvoření clusteru AKS

  1. Přejděte na domovskou stránku webu Azure Portal.
  2. Vyberte Vytvořit kontejnery prostředků>.
  3. V prostředku Azure Kubernetes Service (AKS) vyberte Vytvořit.
  4. Na stránce Základy nakonfigurujte následující možnosti:
    • Podrobnosti projektu: Vyberte předplatné Azure a pak vyberte nebo vytvořte skupinu prostředků Azure, například myResourceGroup.
    • Podrobnosti o clusteru: Zadejte název clusteru Kubernetes, například myAKSCluster. Vyberte oblast a verzi Kubernetes pro cluster AKS.
  5. Vyberte Další: Fondy uzlů a zaškrtněte políčko *Povolit virtuální uzly. Screenshot that shows creating a cluster with virtual nodes enabled on the Azure portal. The option 'Enable virtual nodes' is highlighted.
  6. Vyberte Zkontrolovat a vytvořit.
  7. Po dokončení ověření vyberte Vytvořit.

Ve výchozím nastavení tento proces vytvoří identitu spravovaného clusteru, která se používá ke komunikaci clusteru a integraci s jinými službami Azure. Další informace najdete v tématu Použití spravovaných identit. Jako identitu clusteru můžete použít také instanční objekt.

Tento proces nakonfiguruje cluster pro pokročilé sítě a virtuální uzly tak, aby používal vlastní podsíť virtuální sítě Azure. Podsíť má delegovaná oprávnění pro připojení prostředků Azure mezi clusterem AKS. Pokud ještě nemáte delegovanou podsíť, Azure Portal vytvoří a nakonfiguruje virtuální síť a podsíť Azure s virtuálními uzly.

Připojení ke clusteru

Azure Cloud Shell je bezplatné interaktivní prostředí, které můžete použít ke spuštění kroků v tomto článku. Má předinstalované obecné nástroje Azure, které jsou nakonfigurované pro použití s vaším účtem. Ke správě clusteru Kubernetes použijte klienta příkazového řádku Kubernetes kubectl. Klient kubectl je předinstalovaný ve službě Azure Cloud Shell.

  1. Pomocí příkazu nakonfigurujte kubectl připojení ke clusteru az aks get-credentials Kubernetes. Následující příklad získá přihlašovací údaje pro název clusteru myAKSCluster ve skupině prostředků myResourceGroup:

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. Ověřte připojení ke clusteru pomocí příkazu kubectl get nodes.

    kubectl get nodes
    

    Následující příklad výstupu ukazuje jeden uzel virtuálního počítače vytvořený a virtuální linuxový uzel s názvem 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
    

Nasazení ukázkové aplikace

  1. V Azure Cloud Shellu vytvořte soubor s názvem virtual-node.yaml a zkopírujte ho do následujícího 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 definuje nodeSelector a tolerance, což umožňuje naplánování podu na virtuálním uzlu. Pod je přiřazena interní IP adresa z podsítě virtuální sítě Azure delegovaná pro použití s virtuálními uzly.

  2. Spusťte aplikaci pomocí kubectl apply příkazu.

    kubectl apply -f virtual-node.yaml
    
  3. Zobrazte pody naplánované na uzlu pomocí kubectl get pods příkazu s argumentem -o wide .

    kubectl get pods -o wide
    

    Následující příklad výstupu virtual-node-helloworld ukazuje pod naplánovaný na virtual-node-linux uzlu.

    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
    

Poznámka:

Pokud používáte image uložené ve službě Azure Container Registry, nakonfigurujte a použijte tajný klíč Kubernetes. Omezení virtuálních uzlů je, že nemůžete použít integrované ověřování instančního objektu Microsoft Entra. Pokud tajný kód nepoužíváte, pody naplánované na virtuálních uzlech se nespustí a nahlásí chybu HTTP response status code 400 error code "InaccessibleImage".

Testování podu virtuálního uzlu

Pokud chcete otestovat pod spuštěný na virtuálním uzlu, přejděte k ukázkové aplikaci pomocí webového klienta. Pod má přiřazenou interní IP adresu, takže můžete snadno otestovat připojení z jiného podu v clusteru AKS.

  1. Vytvořte testovací pod a připojte k němu relaci terminálu pomocí následujícího kubectl run příkazu.

    kubectl run -it --rm virtual-node-test --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
    
  2. Nainstalujte curl do podu pomocí následujícího apt-get příkazu.

    apt-get update && apt-get install -y curl
    
  3. Pomocí následujícího curl příkazu přejděte na adresu podu a zadejte svou interní IP adresu.

    curl -L http://10.241.0.4
    

    Následující zhuštěný ukázkový výstup ukazuje ukázkové aplikace.

    <html>
    <head>
      <title>Welcome to Azure Container Instances!</title>
    </head>
    [...]
    
  4. Ukončete relaci terminálu s testovacím podem , exitkterý odstraní také pod.

    exit
    

Další kroky

V tomto článku jste naplánovali pod na virtuálním uzlu a přiřadili jste privátní interní IP adresu. Pokud chcete, můžete místo toho vytvořit nasazení služby a směrovat provoz do podu prostřednictvím nástroje pro vyrovnávání zatížení nebo kontroleru příchozího přenosu dat. Další informace najdete v tématu Vytvoření základního kontroleru příchozího přenosu dat v AKS.

Virtuální uzly jsou jednou komponentou řešení škálování v AKS. Další informace o škálování řešení najdete v následujících článcích: