共用方式為


教學課程:在 Azure Kubernetes Service 叢集中的 Azure 容器執行個體 上部署虛擬節點

在本教學課程中,您會使用 Azure 入口網站 來部署 Azure Kubernetes Service (AKS) 叢集。 部署 AKS 叢集之後,您可以使用 Helm 圖表在 Azure 容器執行個體 上部署虛擬節點。

必要條件

本教學課程假設您已安裝下列工具:

  • Azure CLI
  • kubectl (1.29+版)
  • Helm
  • Git

登入 Azure

https://portal.azure.com 登入 Azure 入口網站

如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶

為您的 AKS 叢集建立虛擬網路

在 Azure 入口網站的首頁中,選取 [建立資源]

顯示如何在 Azure 入口網站 中開始建立新虛擬網路的螢幕快照。

選取 [網络>虛擬網络]。

顯示如何在 Azure 入口網站 中選取您要建立之新虛擬網路的螢幕快照。

在 [ 基本] 頁面上,選擇訂用帳戶並輸入下列值:

  • 資源群組:建立新的>virtualnodesresourcegroup
  • 虛擬網路名稱: myvirtualnetwork
  • 區域:East US

顯示如何在 Azure 入口網站 中設定虛擬網路建立基本概念頁面的螢幕快照。

在 [ IP 位址] 頁面上,設定下列位址空間和子網:

  • 10.0.0.0/16: default 大小為/24的子網
  • 10.1.0.0/16: aks 大小為/16的子網
  • 10.2.0.0/16: cg 大小/16
    • 子網 cg 必須具有對 Microsoft.ContainerInstance/containerGroups的子網委派。
    • 如果您的 Pod 在虛擬節點中執行需要輸出網路,您必須設定 NAT 閘道,並將cg子網設定為使用它。 如需此設定的指示,請參閱為來自容器群組的輸出流量設定靜態IP位址的NAT閘道。

顯示如何在 Azure 入口網站 中設定虛擬網路建立IP位址頁面的螢幕快照。

將所有其他設定保留預設值,然後選取 [檢閱 + 建立]

驗證完成時,會顯示虛擬網路設定的摘要。 選取 [建立] 以提交虛擬網路部署要求。

部署開始時會出現通知,指出部署正在進行中。 部署虛擬網路時會顯示另一個通知。

建立 AKS 叢集

在 Azure 入口網站的首頁中,選取 [建立資源]

顯示如何在 Azure 入口網站 中開始建立新虛擬網路的螢幕快照。

選取 [容器]>[Azure Kubernetes Service (AKS)]。

顯示如何在 Azure 入口網站 中選取您想要建立之新 AKS 叢集的螢幕快照。

在 [ 基本] 頁面上,選擇您用來建立虛擬網路的相同訂用帳戶,並輸入下列值:

  • 資源群組:virtualnodesresourcegroup
  • 叢集預設組態: Dev/Test
  • Kubernetes 叢集名稱: virtualnodescluster
  • 區域:East US
  • Kubernetes 版本:任何以 開頭 1.29. 的版本 - 例如 1.29.10
  • 自動升級: Enabled with patch

顯示如何在 Azure 入口網站 中設定 AKS 叢集建立基本概念頁面的螢幕快照。

在 [ 節點集區] 頁面上,選取節點集區至少有 4 個 vCPU 和 16 GB RAM agentpool 的任何 VM SKU。 這些節點將用來裝載虛擬節點基礎結構。 請勿選取 Enable virtual nodes - 這是指先前 的 AKS 虛擬節點 供應專案。

顯示如何在 Azure 入口網站 中設定 AKS 叢集建立節點集區頁面的螢幕快照。

在 [ 網络] 頁面上,輸入下列值:

  • 網路組態: Azure CNI Node Subnet
  • 自備 Azure 虛擬網路: Enabled
  • 虛擬網路:myvirtualnetwork
  • 叢集子網: aks
  • Kubernetes 服務地址範圍: 10.4.0.0/16
  • Kubernetes DNS 服務 IP 位址: 10.4.0.10
  • 網路原則: Calico

顯示如何在 Azure 入口網站 中設定 AKS 叢集建立網路頁面的螢幕快照。

將所有其他設定保留預設值,然後選取 [檢閱 + 建立]

驗證完成時,會顯示 AKS 叢集設定的摘要。 選取 [建立] 以提交 AKS 叢集部署要求。

部署開始時會出現通知,指出部署正在進行中。 當 AKS 叢集已部署時,會顯示另一個通知。

將許可權指派給 AKS 叢集受控識別

當您部署 AKS 叢集時,AKS 會在相同的訂用帳戶中建立 節點資源群組 ,以裝載叢集基礎結構。 根據預設,此資源群組的名稱類似 MC_<resource group>_<AKS cluster>_<region>。 在本教學課程中,節點資源群組應具有名稱 MC_virtualnodesresourcegroup_virtualnodescluster_eastus

在節點資源群組中建立的其中一個資源是名為 的 virtualnodescluster_agentpool受控識別。 流覽至此受控識別,然後選取 [Azure 角色指派]。 然後新增下列兩個角色指派:

  • 範圍:Resource group
  • 訂用帳戶:<your subscription name>
  • 資源群組:MC_virtualnodesresourcegroup_virtualnodescluster_eastus
  • 角色: Contributor

此角色指派允許在節點資源群組中建立 ACI 容器群組。

  • 範圍:Resource group
  • 訂用帳戶:<your subscription name>
  • 資源群組:virtualnodesresourcegroup
  • 角色: Contributor

此角色指派可讓 ACI 容器群組插入您在此資源群組中建立的虛擬網路。

此螢幕快照顯示已新增至 AKS 受控識別的角色指派。

使用 Helm 圖表在 Azure 容器執行個體 上安裝虛擬節點

使用 Azure CLI 來提取您所建立 AKS 叢集的組態和認證。 這會為您的 AKS 叢集設定 kubectl。

az login

az account set --subscription <your subscription ID>

az aks get-credentials --name virtualnodescluster --resource-group virtualnodesresourcegroup

此外,我們會在您的訂用帳戶上註冊 ACI 資源提供者,以便部署容器群組。

az provider register -n Microsoft.ContainerInstance

複製 virtualnodesOnAzureContainerInstances GitHub 存放庫。 在 Azure 容器執行個體 上安裝虛擬節點的 Helm 圖表位於 Helm/virtualnode 資料夾中。

使用下列命令安裝 Helm 圖表:

helm install virtualnode <cloned repository location>\Helm\virtualnode

在一分鐘內,將會註冊新的虛擬節點,並在AKS叢集中處於就緒狀態。 您可以使用 kubectl 檢查 AKS 叢集節點的狀態。

kubectl get nodes

顯示 kubectl get nodes 命令輸出的螢幕快照,其中虛擬節點處於就緒狀態。

將第一個 Pod 部署至虛擬節點

您可以像任何其他 Kubernetes 節點一樣與虛擬節點互動。 例如,下列範例 YAML 會將 Pod 部署至 AKS 叢集中的虛擬節點-請注意,使用節點選取器和容忍來適當地放置 Pod。 您可以使用 kubectl apply 部署 YAML

apiVersion: v1
kind: Pod
metadata:
  annotations:    
  name: demo-pod
spec:
  containers:
  - command:
    - /bin/bash
    - -c
    - 'counter=1; while true; do echo "Hello, World! Counter: $counter"; counter=$((counter+1)); sleep 1; done'
    image: mcr.microsoft.com/azure-cli
    name: hello-world-counter
    resources:
      limits:
        cpu: 2250m
        memory: 2256Mi
      requests:
        cpu: 100m
        memory: 128Mi
  nodeSelector:
    virtualization: virtualnode2
  tolerations:
  - effect: NoSchedule
    key: virtual-kubelet.io/provider
    operator: Exists

部署 Pod 之後,您可以和「一般」Kubernetes Pod 一樣與它互動。

例如,若要查看 Pod 狀態和事件(適用於尋找錯誤!):

kubectl describe pods demo-pod

若要檢視 Pod 的記錄:

kubectl logs demo-pod

若要取得 Pod 的殼層:

kubectl exec demo-pod -it -- /bin/bash

下一步

在本教學課程中,您已在 Azure 入口網站 中建立 AKS 叢集、使用 Helm 圖表在 Azure 容器執行個體 上部署虛擬節點,並將 Pod 部署到虛擬節點上。 現在您已基本熟悉如何在虛擬節點上執行 Kubernetes Pod,而且您可以立即利用這些 Pod 上的大部分 Kubernetes 功能和建構!

如果您想要利用 Pod 的特殊虛擬節點功能或行為,請參閱 Pod 自定義

如果您想要自定義虛擬節點安裝,請參閱 節點自定義

如果您打算在虛擬節點上部署大規模工作負載(每分鐘數千個 Pod),我們有 最佳做法和建議