Azure Kubernetes Service 支援原則
本文說明 Azure Kubernetes Service (AKS) 的技術支援原則和限制。 其中也詳細說明代理程式節點管理、受控的控制平面元件、第三方開放原始碼元件,以及安全性或修補檔管理。
服務更新和版本
AKS 中的受控功能
基礎結構即服務 (IaaS) 雲端元件 (例如,計算或網路元件) 可讓您存取低層級的控制和自訂選項。 相較之下,AKS 提供周全的 Kubernetes 部署,為您的叢集提供所需的一組通用設定和功能。 作為 AKS 使用者,您可以使用有限的自訂和部署選項。 另一方面,您無須擔心也不用直接管理 Kubernetes 叢集。
有了 AKS,您即可獲得完全受控的「控制平面」。 控制平面包括您操作和為終端使用者提供 Kube 叢集需要的全部元件和服務。 Microsoft 會維護及操作全部 Kube 元件。
Microsoft 會透過控制窗格來管理和監視下列元件:
- Kubelet 或 Kubernetes API 伺服器
- Etcd 或相容的機碼值存放區,提供服務品質 (QoS)、可擴縮性,以及執行階段
- DNS 服務 (例如,kube-dns 或 CoreDNS)
- Kubernetes Proxy 或網路 (使用 BYOCNI 時除外)
- 在 kube 系統命名空間中執行的其他任何附加元件或系統元件。
AKS 不是平台即服務 (PaaS) 解決方案。 某些元件 (例如代理程式節點) 具有「共同責任」,其中您必須協助維護 AKS 叢集。 例如,需要使用者輸入,才能套用代理程式節點作業系統 (OS) 安全性修補檔。
這些服務是受控的,亦即由 Microsoft 和 AKS 部署、操作及負責服務的可用性和功能。 客戶無法變更這些受控元件。 Microsoft 會限制自訂,以確保一致且可調整的使用者體驗。
共同責任
建立叢集時,您可以定義 AKS 建立的 Kubernetes 代理程式節點。 您的工作負載會在這些節點上執行。
由於您的叢集節點會執行私人程式碼並儲存敏感性資料,因此 Microsoft 支援服務只能以有限的方式進行存取。 Microsoft 支援服務無法登入這些節點、在其中執行命令,或在沒有您的快速權限或協助的情況下,檢視這些節點的記錄。
使用任何 IaaS API 直接對代理程式節點進行的任何修改,都會呈現叢集不受支援。 對代理程式節點進行的任何修改都必須使用 kubernetes 原生機制 (例如 Daemon Sets
) 來完成。
同樣地,雖然您可以將任何中繼資料新增至叢集和節點 (例如標記和標籤),但變更任何系統建立的中繼資料將會呈現不支援的叢集。
AKS 支援涵蓋範圍
支援的案例
Microsoft 可針對下列範例提供技術支援:
- 連線至 Kubernetes 服務提供和支援的所有 Kubernetes 元件,例如 API 伺服器。
- Kube 控制平面服務的管理、運作時間、QoS 和作業 (例如 Kube 控制平面、API 伺服器、etcd 和 coreDNS)。
- etcd 資料存放區。 支援包括每 30 分鐘自動且透明地備份所有 etcd 資料,以進行災害規劃和叢集狀態還原。 這些備份無法直接提供給您或其他任何人。 它們可確保資料的可靠性和一致性。 不支援隨選復原或還原作為功能。
- 適用於 Kubernetes 的 Azure 雲端提供者驅動程式中的任何整合點。 其中包括與其他 Azure 服務整合,例如負載平衡器、永續性磁碟區或網路 (Kubernetes 和 Azure CNI,使用 BYOCNI 時除外)。
- 自訂控制平面元件的相關問題,例如 Kubernetes API 伺服器、etcd 和 coreDNS。
- 網路的相關問題,例如 Azure CNI、kubenet,或其他網路存取和功能問題,使用 BYOCNI 時除外。 問題可能包括 DNS 解析、封包遺失、路由等等。 Microsoft 支援各種網路功能案例:
- 使用受控 VNET 或自訂 (自備) 子網路的 Kubenet 和 Azure CNI。
- 與其他 Azure 服務和應用程式的連線能力
- Microsoft 管理的輸入控制器或負載平衡器組態
- 網路效能與延遲
- Microsoft 管理的網路原則元件與功能
注意
Microsoft/AKS 所採取的任何叢集動作,都是在內建 Kube 角色 aks-service
和內建角色繫結 aks-service-rolebinding
下,在您同意時進行。 此角色可讓 AKS 針對叢集問題進行疑難排解和診斷,但無法修改權限,也無法建立角色或角色繫結或其他高權限動作。 只有使用中支援票證才能啟用角色存取,而且擁有 Just-In-Time (JIT) 存取權。
不支援的情節
Microsoft 不會針對下列案例提供技術支援:
有關如何使用 Kubernetes 的問題。 例如,Microsoft 支援服務不會建議您如何建立自訂輸入控制器、使用應用程式工作負載,或套用第三方或開放原始碼軟體套件或工具。
注意
Microsoft 支援服務可以建議 AKS 叢集功能、自訂和調整 (例如,Kubernetes 作業問題和程序)。
未提供為 Kubernetes 控制平面的一部分或不是以 AKS 叢集所部署的第三方開放原始碼專案。 這些專案可能包括 Istio、Helm、Envoy 等等。
注意
Microsoft 可以為第三方開放原始碼專案 (例如 Helm) 提供最佳支援。 當第三方開放原始碼工具與 Kubernetes Azure 雲端提供者或其他 AKS 特定的錯誤整合時,Microsoft 會支援 Microsoft 文件中的範例和應用程式。
第三方封閉原始碼軟體。 此軟體可以包含安全性掃描工具和網路裝置或軟體。
設定 AKS 叢集中執行的第三方應用程式或工具的應用程式特定程式碼或行為或對其進行疑難排解。 這包括與 AKS 平台本身無關的應用程式部署問題。
為 AKS 上執行的應用程式頒發、更新或管理憑證。
AKS 文件中所列項目以外的網路自訂。 例如,Microsoft 支援人員無法設定旨在為 AKS 叢集提供輸出流量的裝置或虛擬設備 (例如 VPN 或防火牆。
注意
Microsoft 支援人員可能會盡最大的努力針對 Azure 防火牆所需的組態提供建議,但不會針對其他第三方裝置提供建議。
在 BYOCNI 模式中使用的自訂或協力廠商 CNI 外掛程式。
設定非 Microsoft 管理的網路原則或對其進行疑難排解。 雖然支援使用網路原則,但 Microsoft 支援人員無法調查自訂網路原則組態所引起的問題。
設定非 Microsoft 管理的輸入控制器 (例如 nginx、kong、traefik 等) 或對其進行疑難排解。這包括解決 AKS 特定作業之後出現的功能問題,例如輸入控制器在 Kubernetes 版本升級後停止運作。 此類問題可能源自於輸入控制器版本與新 Kubernetes 版本之間的不相容。 如需完全支援的選項,請考慮利用 Microsoft 管理的輸入控制器選項。
設定用於自訂節點組態的 DaemonSet (包括指令碼) 或對其進行疑難排解。 當組態檔參數不足時,雖然使用 DaemonSet 是在叢集代理程式節點上微調、修改或安裝第三方軟體的建議方法,但由於 DaemonSet 中所使用的自訂指令碼的自訂性質,因此 Microsoft 支援人員無法解決由這些指令碼所引起的問題。
待用和主動式案例。 Microsoft 支援服務提供反應式支援,以適時且專業的方式協助解決主動問題。 不過,未涵蓋待命或主動式支援,以協助您消除作業風險、增加可用性和最佳化效能。 合格的客戶可以連絡其帳戶小組,以獲得 Azure 事件管理服務的提名。 這是 Microsoft 支援工程師提供的付費服務,其中包含活動期間的主動式解決方案風險評估和涵蓋範圍。
廠商修正程式存在時間少於 30 天的弱點/CVE。 只要您執行的是已更新的 VHD,就不應該使用存在時間超過 30 天的廠商修正程式來執行任何容器映像弱點/CVE。 客戶有責任更新 VHD,並提供篩選清單給 Microsoft 支援服務。 更新 VHD 之後,客戶有責任篩選弱點/CVE 報表,並提供僅包含存在時間超過 30 天之廠商修正程式的弱點/CVE 清單。 如果情況如此,Microsoft 支援服務一定會在內部運作,並透過 30 天前發行的廠商修正程式解決元件問題。 此外,Microsoft 僅針對受 Microsoft 管理的元件 (例如 AKS 節點映像、在叢集建立期間或透過安裝受控附加元件所部署的應用程式受控容器映像) 提供弱點/CVE 相關支援。 如需 AKS 弱點管理的詳細資訊,請瀏覽此頁面。
自定義程式碼範例或腳本。 雖然 Microsoft 支援服務 可以在支援案例中提供小型程式碼範例和小型程式碼範例的檢閱,以示範如何使用Microsoft產品的功能,但 Microsoft 支援服務 無法提供您環境或應用程式專屬的自定義程式碼範例。
代理程式節點的 AKS 支援涵蓋範圍
AKS 代理程式節點的 Microsoft 責任
Microsoft 和您會共同負責 Kube 背景代理程式節點,其中:
- 基礎 OS 映像具有必要的新增項目 (例如,監視和網路代理程式)。
- 背景代理程式節點會自動接收 OS 修補檔。
- 在代理程式節點上執行的 Kubernetes 控制平面元件問題會自動進行補救。 這些元件包括下列項目:
Kube-proxy
- 提供通往 Kubernetes 主要元件通訊路徑的網路通道
Kubelet
containerd
注意
如果代理程式節點無法運作,AKS 可能會重新啟動個別元件或整個代理程式節點。 這些重新啟動作業會自動化,並針對常見問題提供自動修復。 如果您想要深入了解自動修復機制,請參閱節點自動修復
AKS 代理程式節點的客戶責任
Microsoft每周為您的映射節點提供修補程式和新映像。 若要讓您的代理程式節點 OS 和執行時間元件保持在最新狀態,您應該手動或自動套用這些修補程式和更新。 如需詳細資訊,請參閱
同樣地,AKS 會定期發行新的 Kubernetes 修補程式和次要版本。 這些更新包括 Kubernetes 安全性或功能性的改善。 您必須負責讓叢集的 Kubernetes 版本保持更新,並根據 AKS Kubernetes 支援版本原則。
代理程式節點的使用者自訂
注意
AKS 代理程式節點在 Azure 入口網站中會顯示為標準 Azure IaaS 資源。 不過,這些虛擬機器會部署到自訂的 Azure 資源群組 (前面加上 MC_*)。 您無法使用 IaaS API 或資源變更基礎作業系統映像,或對節點進行任何直接的自訂。 任何自訂變更若未從 AKS API 執行,升級、縮放、更新或重新啟動時將不會持續。 此外,對節點延伸模組所做的任何變更,例如 CustomScriptExtension,可能會導致非預期的行為,而且應該禁止。 除非 Microsoft 支援服務指示您進行變更,否則請避免執行代理程式節點的變更。
代表您在 AKS 管理代理程式節點的生命週期和操作,不支援修改與代理程式節點建立關聯的 IaaS 資源。 不支援的作業範例是透過手動變更 Azure 入口網站或 API 中的設定來自訂節點集區虛擬機器擴展集。
針對工作負載特定設定或套件,AKS 建議使用 Kubernetes daemon sets
。
使用 Kube 特殊權限 daemon sets
和初始容器,可讓您在叢集背景代理程式節點上調整/修改或安裝第三方軟體。 這類自訂的範例包括新增自訂安全性掃描軟體或更新 sysctl 設定。
雖然在上述需求適用時建議使用此路徑,但 AKS 工程和支援人員無法協助因自訂部署 daemon set
而導致節點無法使用的修改疑難排解或診斷。
安全性問題和修補
如果在 AKS 的一個或多個受控元件中發現安全性瑕疵,則 AKS 小組會修補全部受影響的叢集,以減輕問題。 或者,AKS 小組會提供升級指導。
對於受安全性瑕疵影響的代理程式節點,Microsoft 會通知您有關影響的詳細資料,以及修正或減輕安全性問題的步驟。
節點維護和存取
雖然您可以登入和變更代理程式節點,但不建議這麼做,因為變更可能會使得叢集不受支援。
網路連接埠、存取權和 NSG
您只能自訂自訂子網路上的 NSG。 您無法在受控子網路或代理程式節點的 NIC 層級上自訂 NSG。 AKS 有特定端點的輸出需求,以控制輸出並確保必要的連線能力,請參閱限制輸出流量。 針對輸入,需求取決於您部署至叢集的應用程式。
已停止、解除配置和未就緒的節點
如果您不需要持續執行 AKS 工作負載,您可以停止 AKS 叢集,這會停止全部節點集區和控制平面。 您可以視需要再次予以啟動。 您使用 az aks stop
命令停止叢集時,叢集狀態會保留最多 12 個月。 12 個月後,叢集狀態及其全部資源都會遭到刪除。
對於停止 AKS 叢集或節點集區,不支援從 IaaS API、Azure CLI 或 Azure 入口網站手動解除配置全部叢集節點。 叢集會在 30 天後被 AKS 視為不支援並停止。 接著,叢集會受到與正確停止的叢集相同的 12 個月保留原則。
零個就緒節點 (或全部未就緒) 和零個執行中 VM 的叢集將在 30 天後停止。
對於超過支援準則範圍 (等於或超過 30 天) 的已設定控制平面,AKS 保留封存的權利。 AKS 會維護叢集 etcd 中繼資料的備份,並且可以隨時重新配置叢集。 此重新配置可由任何 PUT 作業啟動,回復叢集的支援,例如升級或調整為作用中的代理程式節點。
暫停訂閱中的全部叢集都會立即停止,並在 90 天後刪除。 已刪除的訂用帳戶中的全部叢集都會立即刪除。
不支援的 Alpha 版和搶鮮版 (Beta) Kubernetes 功能
AKS 僅支援上游 Kubernetes 專案內的穩定和搶鮮版 (Beta) 功能。 除非另有說明,否則 AKS 不支援上游 Kubernetes 專案中可用的任何 Alpha 功能。
預覽功能或功能旗標
對於需要延伸測試和使用者意見反應的特性和功能,Microsoft 發行了新的預覽功能或功能旗標後的功能。 請將這些功能視為發行前版本或搶鮮版 (Beta) 功能。
預覽功能或功能旗標功能並非設計來用於生產環境。 持續的 API 變更和行為、錯誤修正以及其他變更,可能會導致不穩定的叢集和停機時間。
公開預覽中的功能受到最佳支援,因為這些功能處於預覽狀態,不適用於生產環境。 AKS 技術支援小組只會在上班時間提供支援。 如需詳細資訊,請參閱 Azure 支援常見問題。
上游的錯誤和問題
有鑑於上游 Kubernetes 專案中的開發速度,錯誤難免會發生。 其中部分錯誤無法在 AKS 系統內修補或解決。 上游專案 (例如 Kubernetes、節點或代理程式作業系統,以及核心程序) 需要較大型的修補檔來修正錯誤 (bug)。 對於 Microsoft 擁有的元件 (例如 Azure 雲端提供者),AKS 和 Azure 人員致力於修正社群上游的問題。
技術支援問題的原因是由於一個或多個上游錯誤,AKS 支援和工程師團隊將會:
識別上游錯誤,並將其與支援詳細資料連結,協助說明此問題為何會影響到您的叢集或工作負載。 客戶會收到所需存放庫的連結以便監看問題,並查看新版本何時會提供修正程式。
提供潛在的因應措施或風險降低。 如果可以緩解問題,則會將已知問題建檔在 AKS 存放庫。 已知問題的建檔內容會包括下列說明:
- 此問題的內容,包括上游錯誤的連結。
- 關於升級或其他持續性解決方案的因應措施和詳細資料。
- 根據上游的發行頻率,提供包含此問題的大致時間軸。