Azure Kubernetes Service 支援原則

本文說明 Azure Kubernetes Service (AKS) 的技術支持原則和限制。 它也會詳細說明代理程序節點管理、受控控制平面元件、第三方開放原始碼元件,以及安全性或修補程式管理。

服務更新和版本

AKS 中的受控功能

基礎基礎結構即服務 (IaaS) 雲端元件,例如計算或網路元件,可讓您存取低階控件和自定義選項。 相較之下,AKS 提供周全 Kubernetes 部署,為您提供叢集所需的一組常見組態和功能。 身為 AKS 使用者,您有有限的自訂和部署選項。 在交換中,您不需要擔心或直接管理 Kubernetes 叢集。

使用 AKS 時,您會取得完全受控 的控制平面。 控制平面包含您需要操作的所有元件和服務,並將 Kubernetes 叢集傳遞給使用者。 Microsoft 會維護及操作所有 Kubernetes 元件。

Microsoft 會透過控制平面管理及監視下列元件:

  • Kubelet 或 Kubernetes API 伺服器
  • Etcd 或相容的索引鍵/值存放區,提供服務品質 (QoS)、延展性和運行時間
  • DNS 服務(例如 kube-dns 或 CoreDNS)
  • Kubernetes Proxy 或網路功能,除非使用 BYOCNI
  • 在 kube-system 命名空間中執行的任何其他 附加元件 或系統元件。

AKS 不是平臺即服務 (PaaS) 解決方案。 某些元件,例如代理程序節點,都有 共同的責任,您必須協助維護 AKS 叢集。 例如,需要使用者輸入,才能套用代理程序節點作業系統 (OS) 安全性修補程式。

服務受 管理 的方式是 Microsoft 和 AKS 小組部署、操作及負責服務可用性和功能。 客戶無法改變這些受控元件。 Microsoft 會限制自定義,以確保一致且可調整的用戶體驗。

共同責任

建立叢集時,您可以定義 AKS 建立的 Kubernetes 代理程序節點。 您的工作負載會在這些節點上執行。

因為您的代理程式節點會執行私人程式代碼並儲存敏感數據,因此 Microsoft 支援服務 只能以有限的方式存取它們。 Microsoft 支援服務 無法登入、執行命令,或檢視這些節點的記錄,而不需要您的快速許可權或協助。

使用任何一個 IaaS API 直接對代理程式節點所做的任何修改,都使叢集不受支援。 套用至代理程式節點的任何修改都必須使用 Kubernetes 原生機制來完成,例如 Daemon Sets

同樣地,雖然您可以將任何元數據新增至叢集和節點,例如標籤和標籤,但變更任何系統建立的元數據會呈現不支援的叢集。

AKS 支援涵蓋範圍

Microsoft 提供下列範例的技術支援:

  • 連線 Kubernetes 服務提供和支援的所有 Kubernetes 元件,例如 API 伺服器。
  • Kubernetes 控制平面服務的管理、運行時間、QoS 和作業(例如 Kubernetes 控制平面、API 伺服器等和 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/AKS 所採取的任何叢集動作都是在內建 Kubernetes 角色 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 特定 Bug 整合時,Microsoft 支援來自 Microsoft 檔的範例和應用程式。

  • 第三方關閉原始碼軟體。 此軟體可以包含安全性掃描工具和網路裝置或軟體。

  • AKS 檔中所列以外的網路自定義專案。

  • BYOCNI 模式中使用的自定義或第三方 CNI 外掛程式。

  • 待用和主動式案例。 Microsoft 支援服務 提供反應式支援,以及時且專業的方式協助解決主動問題。 不過,未涵蓋待命或主動式支援,以協助您消除作業風險、增加可用性和優化效能。 合格的客戶 可以連絡其帳戶小組,以獲得 Azure 事件管理服務的提名。 這是 Microsoft 支援工程師提供的付費服務,其中包含活動期間的主動式解決方案風險評估和涵蓋範圍。

AKS 支援代理程式節點的涵蓋範圍

AKS 代理程序節點的 Microsoft 責任

Microsoft 和您共同負責 Kubernetes 代理程序節點,其中:

  • 基礎 OS 映像具有必要的新增專案(例如監視和網路代理程式)。
  • 代理程式節點會自動接收 OS 修補程式。
  • 會自動補救在代理程式節點上執行的 Kubernetes 控制平面元件問題。 這些元件包括下列專案:
    • Kube-proxy
    • 提供 Kubernetes 主要元件的通訊路徑的網路通道
    • Kubelet
    • containerd

注意

如果代理程式節點無法運作,AKS 可能會重新啟動個別元件或整個代理程序節點。 這些重新啟動作業是自動化的,並提供常見問題的自動補救。 如果您想要深入瞭解自動修復機制,請參閱 節點自動修復

AKS 代理程式節點的客戶責任

Microsoft 會每周為您的映射節點提供修補程式和新映射,但預設不會自動修補它們。 若要將您的代理程式節點 OS 和運行時間元件修補,您應該保留一般 節點映射升級 排程或將其自動化。

同樣地,AKS 會定期發行新的 kubernetes 修補程式和次要版本。 這些更新可以包含 Kubernetes 的安全性或功能改進。 您必須負責讓叢集的 kubernetes 版本保持更新,並根據 AKS Kubernetes 支援版本原則

代理程式節點的使用者自定義

注意

AKS 代理程式節點會以標準 Azure IaaS 資源的形式出現在 Azure 入口網站 中。 不過,這些虛擬機會部署至自定義 Azure 資源群組(前面加上 MC_*)。 您無法變更基底 OS 映射,或使用 IaaS API 或資源對這些節點進行任何直接自定義。 任何未從 AKS API 執行的自定義變更都不會透過升級、調整、更新或重新啟動來保存。 此外,任何變更節點的延伸模組,例如 CustomScriptExtension 可能會導致非預期的行為,而且應該禁止。 除非 Microsoft 支援服務 指示您進行變更,否則請避免對代理程式節點執行變更。

AKS 代表您管理代理程式節點的生命週期和作業,不支援修改與代理程式節點相關聯的 IaaS 資源。 不支援的作業範例是手動變更 Azure 入口網站 或 API 中的組態,以自定義節點集區虛擬機擴展集。

針對工作負載特定的元件或套件,AKS 建議使用 Kubernetes daemon sets

使用 Kubernetes 特殊許可權 daemon sets 和 init 容器可讓您在叢集代理程式節點上微調/修改或安裝第三方軟體。 這類自定義的範例包括新增自定義安全性掃描軟體或更新 sysctl 設定。

如果適用上述需求,建議使用此路徑,但 AKS 工程和支援無法協助疑難解答或診斷因自定義部署而無法使用節點的 daemon set修改。

安全性問題和修補

如果在 AKS 的一或多個受控元件中找到安全性缺陷,AKS 小組會修補所有受影響的叢集,以減輕問題。 或者,AKS 小組會提供升級指引。

對於受安全性缺陷影響的代理程序節點,Microsoft 會通知您影響的詳細數據,以及修正或減輕安全性問題的步驟。

節點維護和存取

雖然您可以登入和變更代理程序節點,但不建議執行這項作業,因為變更可能會使叢集不受支援。

網路埠、存取和 NSG

您只能自定義自定義子網上的 NSG。 您無法在受控子網或代理程式節點的 NIC 層級上自定義 NSG。 AKS 具有特定端點的輸出需求、控制輸出並確保必要的連線能力,請參閱 限制輸出流量。 針對輸入,需求是以您已部署到叢集的應用程式為基礎。

已停止、解除分配和未就緒的節點

如果您不需要持續執行 AKS 工作負載,您可以 停止 AKS 叢集,這會停止所有節點集區和控制平面。 您可以視需要再次啟動它。 當您使用 az aks stop 命令停止叢集時,叢集狀態會保留最多 12 個月。 12 個月後,叢集狀態及其所有資源都會遭到刪除。

不支援從 IaaS API、Azure CLI 或 Azure 入口網站 手動解除分配所有叢集節點,以停止 AKS 叢集或節點集區。 叢集會在 30 天后被 AKS 視為不支援,並停止。 接著,叢集會受到與正確停止叢集相同的12個月保留原則。

個就緒 節點(或所有 未就緒)和零 執行 中 VM 的叢集將在 30 天后停止。

AKS 保留封存控制平面的權利,這些平面已設定為超過 30 天的長期支援指導方針。 AKS 會維護叢集 etcd 元數據的備份,並可輕易地重新配置叢集。 此重新配置是由任何 PUT 作業起始,讓叢集重新支援,例如升級或調整為作用中的代理程序節點。

暫停訂閱中的所有叢集都會立即停止,並在 90 天后刪除。 已刪除訂用帳戶中的所有叢集都會立即刪除。

不支援的 Alpha 和 Beta Kubernetes 功能

AKS 僅支援上游 Kubernetes 專案中的穩定和 Beta 功能。 除非另有記載,否則 AKS 不支援上游 Kubernetes 專案中提供的任何 Alpha 功能。

預覽功能或功能旗標

針對需要擴充測試和使用者意見反應的功能,Microsoft 會在功能旗標後面發行新的預覽功能或功能。 請將這些功能視為發行前版本或 Beta 功能。

預覽功能或功能旗標功能不適用於生產環境。 API 和行為、錯誤修正和其他變更的持續變更可能會導致叢集不穩定和停機時間。

公開預覽中的功能受到 最佳支援 ,因為這些功能處於預覽狀態,不適用於生產環境。 AKS 技術支援小組只會在上班時間提供支援。 如需詳細資訊,請參閱 Azure 支援常見問題

上游 Bug 和問題

鑒於上游 Kubernetes 專案中的開發速度,錯誤總是會發生。 有些 Bug 無法在 AKS 系統中修補或解決。 相反地,錯誤修正需要上游專案更大的修補程式(例如 Kubernetes、節點或代理程式操作系統和核心)。 針對 Microsoft 擁有的元件(例如 Azure 雲端提供者),AKS 和 Azure 人員致力於修正社群上游的問題。

當技術支持問題的根本原因是一或多個上游 Bug,AKS 支援和工程小組將會:

  • 找出上游 Bug 並連結任何支援的詳細數據,以協助說明此問題如何影響您的叢集或工作負載。 客戶會收到必要存放庫的連結,讓他們可以監看問題,並查看新版本何時會提供修正程式。

  • 提供潛在的因應措施或緩和措施。 如果問題可以減輕,就會 在 AKS 存放庫中提出已知問題 。 已知問題檔說明:

    • 問題,包括上游 Bug 的連結。
    • 關於升級或其他解決方案持續性的因應措施和詳細數據。
    • 根據上游發行頻率,問題納入的粗略時程表。