常見問題集 - 已啟用 Azure Arc 的 Kubernetes 和 GitOps

本文說明有關已啟用 Azure Arc 的 Kubernetes 和 GitOps 的常見問題。

已啟用 Azure Arc 的 Kubernetes 與 Azure Kubernetes Service (AKS)有何差異?

AKS 是 Azure 所管理的 Kubernetes 供應專案。 AKS 藉由將大部分複雜度和作業額外負荷卸除至 Azure,簡化在 Azure 中部署受控 Kubernetes 叢集。 由於 Kubernetes 主機是由 Azure 管理,因此您只會管理和維護代理程序節點。

已啟用 Azure Arc 的 Kubernetes 可讓您將 Kubernetes 叢集連線至 Azure,來擴充 Azure 的管理功能(例如 Azure 監視器和 Azure 原則)。 您會維護基礎 Kubernetes 叢集本身。

我需要將 Azure 上執行的 AKS 叢集連線到 Azure Arc 嗎?

目前,在大部分案例中,不需要將 Azure Kubernetes Service (AKS) 叢集連線至 Azure Arc。 您可能想要連線叢集以執行某些已啟用 Azure Arc 的服務,例如叢集頂端的 App Services 和數據服務。 這可以使用已啟用 Azure Arc 的 Kubernetes 自定義位置功能來完成

我應該將 Azure Stack Edge 上的 AKS-HCI 叢集和 Kubernetes 叢集連線到 Azure Arc 嗎?

將 Azure Stack Edge 上的 AKS-HCI 叢集或 Kubernetes 叢集 連線 至 Azure Arc,可在 Azure Resource Manager 中提供資源表示法的叢集。 此資源表示法會將叢集組態、Azure 監視器和 Azure 原則 (Gatekeeper) 等功能延伸至已連線的 Kubernetes 叢集。

如果已啟用 Azure Arc 的 Kubernetes 叢集位於 Azure Stack Edge 上、Azure Stack HCI 上的 AKS(= 2021 年 4 月更新),或 Windows Server 2019 Datacenter 上的 AKS(>>= 2021 年 4 月更新),則 Kubernetes 設定不收取任何費用。

如何? 位址已過期的 Azure Arc 已啟用 Kubernetes 資源?

系統指派的受控識別與您的已啟用 Azure Arc 的 Kubernetes 叢集相關聯,只能由 Azure Arc 代理程式用來與 Azure Arc 服務通訊。 與此系統指派的受控識別相關聯的憑證有90天的到期時間範圍,代理程式會嘗試在46天到第90天之間更新此憑證。 若要避免受控識別憑證過期,請確定叢集至少會在第 46 天到第 90 天之間上線一次,以便更新憑證。

如果受控識別憑證過期,系統會考慮 Expired 資源,且所有 Azure Arc 功能(例如設定、監視和原則)都會停止在叢集上運作。

若要檢查指定叢集的受控識別憑證何時到期,請執行下列命令:

az connectedk8s show -n <name> -g <resource-group>

在輸出中,的值 managedIdentityCertificateExpirationTime 表示受控識別憑證何時到期(該憑證的 90D 標記)。

如果的值 managedIdentityCertificateExpirationTime 表示過去的時間戳,則 connectivityStatus 上述輸出中的欄位會設定為 Expired。 在這種情況下,若要讓 Kubernetes 叢集再次使用 Azure Arc:

  1. 刪除叢集上已啟用 Azure Arc 的 Kubernetes 資源和代理程式。

    az connectedk8s delete -n <name> -g <resource-group>
    
  2. 在叢集上部署代理程式,以重新建立已啟用 Azure Arc 的 Kubernetes 資源。

    az connectedk8s connect -n <name> -g <resource-group>
    

注意

az connectedk8s delete 也會刪除叢集頂端的組態和叢集擴充功能。 執行 az connectedk8s connect 之後,請手動或使用 Azure 原則,在叢集上重新建立組態和叢集擴充功能。

如果我已經使用 CI/CD 管線,我仍然可以使用已啟用 Azure Arc 的 Kubernetes 或 AKS 和 GitOps 設定嗎?

是,您仍然可以透過 CI/CD 管線在接收部署的叢集上使用設定。 相較于傳統的 CI/CD 管線,GitOps 組態具有一些額外的優點。

漂移對帳

CI/CD 管線只會在管線執行期間套用變更一次。 不過,叢集上的 GitOps 操作員會持續輪詢 Git 存放庫,以擷取叢集上所需的 Kubernetes 資源狀態。 如果 GitOps 操作員發現所需的資源狀態與叢集上資源的實際狀態不同,則會協調此漂移。

大規模套用 GitOps

CI/CD 管線適用于 Kubernetes 叢集的事件驅動部署(例如,推送至 Git 存放庫)。 不過,若要將相同的組態部署到所有 Kubernetes 叢集,您必須手動將每個 Kubernetes 叢集的認證設定為 CI/CD 管線。

針對已啟用 Azure Arc 的 Kubernetes,因為 Azure Resource Manager 會管理您的 GitOps 組態,因此您可以在訂用帳戶或資源群組的範圍內,使用 Azure 原則,在所有已啟用 Azure Arc 的 Kubernetes 和 AKS 資源之間自動建立相同的設定。 這項功能甚至適用于在原則指派之後建立的已啟用 Azure Arc 的 Kubernetes 和 AKS 資源。

這項功能會套用整個 Kubernetes 叢集清查的基準設定(例如網路原則、角色系結和 Pod 安全性原則),以符合合規性和治理需求。

叢集合規性

每個 GitOps 設定的合規性狀態都會回報回 Azure。 這可讓您追蹤任何失敗的部署。

已啟用 Azure Arc 的 Kubernetes 是否將任何客戶資料儲存在叢集區域之外?

若要在單一區域中儲存客戶資料的功能,目前僅適用于亞太地區地理區域(新加坡)和巴西南部(聖保羅州)巴西地理區域。 至於其他所有區域,客戶資料會儲存在地區中。 這適用于已啟用 Azure Arc 的 Open Service Mesh 和 Azure 金鑰保存庫已啟用 Azure Arc 的 Kubernetes 中支援的秘密提供者延伸模組。 如需其他叢集擴充功能,請參閱其檔以瞭解其如何儲存客戶資料。 如需詳細資訊,請參閱 信任中心

下一步