共用方式為


(已淘汰)調整 Kubernetes Pod 和 Kubernetes 基礎結構

小提示

如需本教學課程使用 Azure Kubernetes Service 的更新版本,請參閱 教學課程:在 Azure Kubernetes Service 中調整應用程式

警告

Azure Container Service (ACS) 即將淘汰。 ACS 中不會新增任何新功能。 所有 API、入口網站體驗、CLI 命令和文件都會標示為已被取代。

在 2017 年,我們引進了 Azure Kubernetes Service (AKS),以簡化 Kubernetes 管理、部署和作業。 如果您使用 Kubernetes 協調器,請在 2020 年 1 月 31 日前移轉至 AKS。 若要開始使用,請參閱 遷移至 Azure Kubernetes Service

如需詳細資訊,請參閱 Azure.com 上的Azure Container Service 淘汰公告。

如果您已遵循教學課程,您在 Azure Container Service 中有一個可運作的 Kubernetes 叢集,並部署了 Azure 投票應用程式。

在這個教學課程中,作為七個部分的第五部分,您將擴展應用程式中的Pod數量並嘗試Pod自動調整。 您也會瞭解如何調整 Azure VM 代理程式節點的數目,以變更叢集裝載工作負載的容量。 已完成的工作包括:

  • 手動調整 Kubernetes Pod
  • 設定執行應用程式前端的自動擴展容器組
  • 調整 Kubernetes 上的 Azure 代理程式節點

在後續的教學課程中,會更新 Azure 投票應用程式,並將 Log Analytics 設定為監視 Kubernetes 叢集。

開始之前

在先前的教學課程中,應用程式已封裝成容器映像、此映射上傳至 Azure Container Registry,以及已建立 Kubernetes 叢集。 應用程式接著會在 Kubernetes 叢集上執行。

如果您尚未完成這些步驟,而且想要跟著做,請返回 教學課程 1 – 建立容器映射

手動調整 pod

到目前為止,已部署 Azure Vote 前端和 Redis 實例,每個實例都有單一複本。 若要確認,請執行 kubectl get 命令。

移至 https://shell.azure.com,並在瀏覽器中開啟 Cloud Shell。

kubectl get pods

輸出:

NAME                               READY     STATUS    RESTARTS   AGE
azure-vote-back-2549686872-4d2r5   1/1       Running   0          31m
azure-vote-front-848767080-tf34m   1/1       Running   0          31m

使用 azure-vote-front 命令,手動變更 部署中的 Pod 數目。 本範例會將數位增加到5。

kubectl scale --replicas=5 deployment/azure-vote-front

執行 kubectl get pods 以檢視 Kubernetes 是否正在建立容器組。 大約一分鐘後,其他的容器就會開始運行:

kubectl get pods

輸出:

NAME                                READY     STATUS    RESTARTS   AGE
azure-vote-back-2606967446-nmpcf    1/1       Running   0          15m
azure-vote-front-3309479140-2hfh0   1/1       Running   0          3m
azure-vote-front-3309479140-bzt05   1/1       Running   0          3m
azure-vote-front-3309479140-fvcvm   1/1       Running   0          3m
azure-vote-front-3309479140-hrbf2   1/1       Running   0          15m
azure-vote-front-3309479140-qphz8   1/1       Running   0          3m

Pods 自動縮放調整

Kubernetes 支援 水平 Pod 自動調整,根據 CPU 使用率或其他選取指標來調整部署中的 Pod 數目。

若要使用自動調整程式,您的 Pod 必須已定義 CPU 要求和限制。 在 azure-vote-front 部署中,前端容器會要求 0.25 CPU,限制為 0.5 CPU。 設定看起來如下:

resources:
  requests:
     cpu: 250m
  limits:
     cpu: 500m

下列範例會使用 kubectl 自動調整 命令來自動調整 azure-vote-front 部署中的 Pod 數目。 在這裡,如果 CPU 使用率超過 50%,則自動調整程式會將 Pod 增加到最多 10 個。

kubectl autoscale deployment azure-vote-front --cpu-percent=50 --min=3 --max=10

若要查看自動調整程式的狀態,請執行下列命令:

kubectl get hpa

輸出:

NAME               REFERENCE                     TARGETS    MINPODS   MAXPODS   REPLICAS   AGE
azure-vote-front   Deployment/azure-vote-front   0% / 50%   3         10        3          2m

在負載很小的情況下,幾分鐘後,Azure 投票應用程式的 Pod 副本數量會自動減少到 3。

擴展代理程式

如果您在上一個教學課程中使用預設命令建立 Kubernetes 叢集,其具有三個代理程序節點。 如果您在叢集上規劃更多或更少的容器工作負載,則可以手動調整代理程式數目。 使用 az acs scale 命令,並使用 --new-agent-count 參數指定代理數目。

下列範例會將名為 myK8sCluster Kubernetes 叢集中的代理程序節點數目增加到 4。 命令需要幾分鐘的時間才能完成。

az acs scale --resource-group=myResourceGroup --name=myK8SCluster --new-agent-count 4

命令輸出會顯示 agentPoolProfiles:count值中的代理程式節點數目:

{
  "agentPoolProfiles": [
    {
      "count": 4,
      "dnsPrefix": "myK8SCluster-myK8SCluster-e44f25-k8s-agents",
      "fqdn": "",
      "name": "agentpools",
      "vmSize": "Standard_D2_v2"
    }
  ],
...

後續步驟

在本教學課程中,您在 Kubernetes 叢集中使用了不同的擴展特性。 涵蓋的工作包括:

  • 手動調整 Kubernetes Pod
  • 設定執行應用程式前端的自動擴展容器組
  • 調整 Kubernetes 上的 Azure 代理程式節點

繼續進行下一個教學課程,以瞭解在 Kubernetes 中更新應用程式。