這很重要
AKS 預覽功能可透過自助服務,以加入方式使用。 預覽是「依現況」及「可用時」提供的,並不包括在服務等級協定和有限保固之內。 客戶支援部門會盡最大努力,部分支援 AKS 預覽。 因此,這些功能不適合實際執行用途。 如需詳細資訊,請參閱下列支援文章:
本文將說明如何利用計畫維護來排程 Azure Kubernetes 應用網路成員的元件升級。
應用網路計畫維護概述
維護操作指的是叢集內的資料 平面元件 及應用程式網路 控制平面元件 (如 Istiod)的升級,這些元件運行於叢集之外。
叢集內兩個關鍵元件是 ztunnel 節點代理 與 Istio CNI 節點代理。 這些資源是每個節點的 DaemonSets,因此升級會同時影響整個節點,可能導致長期 TCP 連線中斷。 為了將節點層級中斷隔離至共用視窗,應用程式若設定,會使用與 Azure Kubernetes Service (AKS) 節點作業系統 (OS) 自動更新相同的aksManagedNodeOSUpgradeSchedule維護時程。
請注意,雖然維護 視窗 相同,但應用程式網路成員升級與節點作業系統升級是視窗內獨立事件,分別發生於其中一個或兩個元件,視升級可用性而定。 兩項升級都不會影響另一項的時機或流程。 如果兩個元件在同一個視窗內升級,可能會有不同的連線中斷。
備註
不需要自願加入節點 OS 自動升級就能使用應用程式網路的已規劃維護。 創建aksManagedNodeOSUpgradeSchedule並不會啟用或停用節點作業系統的自動升級功能。
先決條件
- 現有的 AKS 叢集作為應用網路資源的成員被導入。 如果你沒有應用程式網路資源或尚未將叢集導入,請參閱「 開始使用 Azure Kubernetes 應用網路」。
- Azure CLI 版本是 2.84.0 或更新版本。 使用
az --version命令來檢查您的版本。 要安裝或更新,請參見 安裝 Azure CLI。 - 我們建議您查閱 維護視窗文件 ,了解設定欄位及 AKS 中維護視窗的運作方式。
考慮事項
當使用計畫性維護來排程應用程式網路升級時,請考慮以下幾點:
- Application Network 保留打破預定維護時段的權利,以執行緊急或關鍵的非計畫性、被動維護作業。 這些維護作業甚至可以在您設定中定義的
notAllowedTime或notAllowedDates期間內執行。 - 只能盡可能承諾執行維護作業,而且不保證會在指定時段中進行。
- 如果嘗試的升級未在視窗關閉時完成,系統會持續嘗試調節直到完成為止。
模式特異性行為
你可以使用計畫性維護來排程全管理升級與自我管理升級的時間,但啟用或停用計劃性維護不會影響升級模式本身。 維護視窗會根據叢集的升級模式,限制不同類型的升級。
新增維護視窗
使用 指令
aksManagedNodeOSUpgradeSchedule為 AKS 叢集新增az aks maintenanceconfiguration add維護視窗設定。 以下範例新增了一個配置aksManagedNodeOSUpgradeSchedule,將維護安排在該UTC+5:30時區的第三個星期五凌晨12點到8點之間進行:az aks maintenanceconfiguration add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name aksManagedNodeOSUpgradeSchedule --schedule-type Weekly --day-of-week Friday --interval-weeks 3 --duration 8 --utc-offset +05:30 --start-time 00:00
更新現有維護時段
使用指令
az aks maintenanceconfiguration update更新現有的維護設定。 以下範例更新配置,aksManagedNodeOSUpgradeSchedule將維護排定為每週五凌晨2:00至6:00執行:az aks maintenanceconfiguration update --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name aksManagedNodeOSUpgradeSchedule --schedule-type Weekly --day-of-week Friday --interval-weeks 1 --duration 4 --utc-offset +00:00 --start-time 02:00
顯示叢集的維護配置
使用
az aks maintenanceconfiguration show帶有--name參數的指令,在 AKS 叢集中查看特定的維護設定視窗。az aks maintenanceconfiguration show --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name aksManagedNodeOSUpgradeSchedule下列範例輸出顯示
aksManagedNodeOSUpgradeSchedule的維護時段:{ "id": "/subscriptions/<subscription>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/maintenanceConfigurations/aksManagedNodeOSUpgradeSchedule", "maintenanceWindow": { "durationHours": 4, "notAllowedDates": [ { "end": "2024-01-05", "start": "2023-12-23" } ], "schedule": { "absoluteMonthly": { "dayOfMonth": 1, "intervalMonths": 3 }, "daily": null, "relativeMonthly": null, "weekly": null }, "startDate": "2023-01-20", "startTime": "09:00", "utcOffset": "-08:00" }, "name": "aksManagedNodeOSUpgradeSchedule", "notAllowedTime": null, "resourceGroup": "myResourceGroup", "systemData": null, "timeInWeek": null, "type": null }
刪除叢集的維護設定
用指令
az aks maintenanceconfiguration delete刪除 AKS 叢集中的維護設定視窗。az aks maintenanceconfiguration delete --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name aksManagedNodeOSUpgradeSchedule
相關內容
欲了解更多關於 Azure Kubernetes 應用網路的資訊,請參閱以下文章: