小提示
如需本教學課程使用 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 中更新應用程式。