共用方式為


使用 Azure 入口網站在 Azure Kubernetes Service (AKS) 叢集上部署 Windows Server 容器

Azure Kubernetes Service (AKS) 是受控 Kubernetes 服務,可讓您快速部署及管理叢集。 在本文中,您會使用 Azure 入口網站部署可執行 Windows Server 容器的 AKS 叢集。 您也可以將 Windows Server 容器中的 ASP.NET 範例應用程式部署到叢集。

注意

若要開始快速佈建 AKS 叢集,本文包含僅針對評估目的部署具有預設設定值之叢集的步驟。 在部署生產就緒叢集之前,建議您先熟悉我們的基準參考架構,考慮其如何符合您的業務需求。

開始之前

本快速入門假設您已有 Kubernetes 概念的基本知識。 如需詳細資訊,請參閱 Azure Kubernetes Services (AKS) 的 Kubernetes 核心概念

建立 AKS 叢集

  1. 登入 Azure 入口網站

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

  3. 在 [類別] 區段中,選取 [容器]>[Azure Kubernetes Service (AKS)]

  4. [基本] 索引標籤上,設定下列設定。

    • 在 [專案詳細資料] 下:
      • 用帳戶:選取您要用於此 AKS 叢集的 Azure 訂用帳戶。
      • 資源群組:選取 [ 新建],輸入資源組名,例如 myResourceGroup,然後選取 [ 確定]。 雖然您可以選取現有的資源群組,以供測試或評估之用,但建議您建立資源群組來暫時裝載這些資源,並避免影響您的生產或開發工作負載。
    • 在 [叢集詳細資料] 下:
      • 叢集預設組態:選取 [開發/測試]。 如需預設組態的詳細資訊,請參閱 Azure 入口網站中的叢集組態預設值

        注意

        您可以選取 [比較預設設定],然後選取不同的選項,來變更建立叢集時的預設設定。 建立 AKS 叢集 - 入口網站預設選項的螢幕擷取畫面。

      • Kubernetes 叢集名稱:輸入叢集名稱,例如 myAKSCluster

      • 區域:選取區域,例如 美國東部 2

      • 可用性區域:選取 [無]。

      • AKS 定價層:選取 [ 免費]。

      • 保留其餘設定的預設值,然後選取 [ 下一步]。

        顯示如何在 Azure 入口網站中設定 AKS 叢集的螢幕擷取畫面。

  5. 在 [ 節點集區] 索引標籤上,設定下列設定:

    • 選取 [新增節點集區],然後輸入節點集區名稱,例如 npwin。 針對 Windows 節點集區,名稱必須是 六個字元或更少

    • 模式:選取 [使用者]。

    • OS SKU:選取 [Windows 2022]。

    • 可用性區域:選取 [無]。

    • 取消勾選 [啟用 Azure 現成執行個體] 核取方塊。

    • 節點大小:選取 [選擇大小]。 在 [選取 VM 大小] 頁面上,選取 [D2s_v3],然後選取 [選取]。

    • 保留其餘設定的預設值,然後選取 [ 新增]。

      顯示如何建立執行 Windows Server 2022 之節點集區的螢幕快照。

  6. 選取 [檢閱 + 建立] 在叢集設定上執行驗證。 驗證完成時,選取 [建立]

    建立 AKS 叢集需要幾分鐘的時間。 部署完成時,請選取 [移至資源] 或流覽至 AKS 叢集資源群組,然後選取 AKS 資源,以流覽至您的資源。

連線至叢集

若要管理 Kubernetes 叢集,請使用 Kubernetes 命令列用戶端:kubectl。 如果您使用 Azure Cloud Shell,則 kubectl 已安裝。 如果您不熟悉 Cloud Shell,請檢閱 Azure Cloud Shell 概觀

  1. 選取 Azure 入口網站頁面頂端的 >_ 按鈕,以開啟 Cloud Shell。

  2. 使用 az aks get-credentials 命令,設定 kubectl 連線到 Kubernetes 叢集。 下列命令會下載認證並設定 Kubernetes CLI 以供使用。

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  3. 使用 kubectl get nodes 命令來驗證對您叢集的連線,這會傳回叢集節點清單。

    kubectl get nodes
    

    下列範例輸出顯示叢集中的全部節點。 請確定全部節點的狀態為就緒

    NAME                                STATUS   ROLES   AGE     VERSION
    aks-agentpool-11741175-vmss000000   Ready    agent   8m17s   v1.29.9
    aks-agentpool-11741175-vmss000001   Ready    agent   8m17s   v1.29.9
    aksnpwin000000                      Ready    agent   8m17s   v1.29.9
    aks-userpool-11741175-vmss000000    Ready    agent   8m17s   v1.29.9
    aks-userpool-11741175-vmss000001    Ready    agent   8m17s   v1.29.9
    

部署應用程式

Kube 資訊清單檔會定義所需的叢集狀態,例如要執行哪些容器映像。 在此快速入門中,資訊清單可用來建立在 Windows Server 容器中執行 ASP.NET 範例應用程式所需的全部物件。 此資訊清單檔包含 ASP.NET 範例應用程式的 Kube 部署,以及從網際網路存取應用程式的外部 Kube 服務

ASP.NET 範例應用程式是 .NET Framework 範例中提供的一部份,並且可在 Windows Server 容器中執行。 Kubernetes 指令清單檔必須定義 節點選取器 ,以指示 AKS 叢集在可執行 Windows Server 容器的節點上執行 ASP.NET 範例應用程式的 Pod。

  1. 建立名為 sample.yaml 的檔案,然後將下列 YAML 定義貼上。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: sample
      labels:
        app: sample
    spec:
      replicas: 1
      template:
        metadata:
          name: sample
          labels:
            app: sample
        spec:
          nodeSelector:
            "kubernetes.io/os": windows
          containers:
          - name: sample
            image: mcr.microsoft.com/dotnet/framework/samples:aspnetapp
            resources:
              limits:
                cpu: 1
                memory: 800M
            ports:
              - containerPort: 80
      selector:
        matchLabels:
          app: sample
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: sample
    spec:
      type: LoadBalancer
      ports:
      - protocol: TCP
        port: 80
      selector:
        app: sample
    

    如需 YAML 資訊清單檔案的詳細資訊,請參閱部署和 YAML 資訊清單

    如果您在本地建立並儲存 YAML 檔案,則可以選取 [上傳/下載檔案] 按鈕,然後從本地文件系統選取檔案,將資訊清單檔上傳至 CloudShell 裡的預設目錄。

  2. 使用 kubectl apply 命令來部署應用程式,並指定 YAML 資訊清單的名稱。

    kubectl apply -f sample.yaml
    

    下列範例輸出會顯示已成功建立的部署和服務:

    deployment.apps/sample created
    service/sample created
    

測試應用程式

當應用程式執行時,Kubernetes 服務會將應用程式前端公開至網際網路。 此程序可能需要幾分鐘才能完成。 服務有時可能需要超過幾分鐘的時間來佈建。 布建最多需要 10 分鐘。

  1. 使用 kubectl get pods 命令檢視已部署 Pod 的狀態。 讓全部 Pod 都是 Running,再繼續。

    kubectl get pods
    
  2. 使用 kubectl get service 命令搭配 --watch 引數來監視進度。

    kubectl get service sample --watch
    

    一開始,輸出顯示範例服務的 EXTERNAL-IP擱置

    NAME               TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
    sample             LoadBalancer   10.0.37.27   <pending>     80:30572/TCP   6s
    
  3. EXTERNAL-IP 位址從 pending 變成實際的公用 IP 位址時,請使用 CTRL-C 停止 kubectl 監看式流程。

  4. 若要查看範例應用程式的實際運作情況,請開啟網頁瀏覽器並瀏覽至服務的外部 IP 位址。

    瀏覽至 ASP.NET 範例應用程式的螢幕擷取畫面。

刪除資源

如果您不打算進行 AKS 教學課程,您應該刪除叢集以避免產生 Azure 費用。

  1. 在 Azure 入口網站中,瀏覽至您的資源群組。

  2. 選取 [刪除資源群組]

  3. 輸入您資源群組的名稱以進行確認刪除,然後選取 [刪除]

  4. 在 [刪除確認] 對話方塊中,選取 [刪除]

    注意

    已使用系統指派的受控身分識別建立 AKS 叢集 (本快速入門中所使用的預設身分識別選項),而身分識別是由平台管理,而且不需要移除。

下一步

在本快速入門中,您已部署 Kubernetes 叢集,並在 Windows Server 容器中,將 ASP.NET 範例應用程式部署至該叢集。 這個範例應用程式僅供示範之用,並不代表 Kubernetes 應用程式的所有最佳做法。 如需針對生產使用 AKS 建立完整解決方案的指引,請參閱 AKS 解決方案指引

若要深入了解 AKS,並逐步完成部署範例的完整程式碼,請繼續 Kubernetes 叢集教學課程。