Anthos Config Management 概览

借助 Anthos Config Management,集群运营商可以使用存储在 Git 代码库(或代码库)中的名为 config 的文件来管理单个集群、多租户集群和多集群 Kubernetes 部署。

一些配置是 Kubernetes 对象清单。其他配置不是对象清单,但提供了 Anthos Config Management 所需的信息。您可以使用 YAML 或 JSON 编写配置。Anthos Config Management 会监控这些文件的更新,并自动将更改应用于所有相关集群。

通过按代码配置的方法,您可以使用与管理部署在 Kubernetes 中的应用相同的原则来管理 Google Kubernetes Engine(GKE)或 Anthos GKE On-Prem 集群的配置。使用 Anthos Config Management,您可以执行以下操作:

  • 在将更改推送到实际环境之前要求进行代码审查,并仔细审核由哪项提交内容导致配置发生更改。
  • 降低影子操作的风险,如果出现影子操作,未经审查的更改将被推送到活跃集群,并且很难了解记录的配置与您的实际环境之间的差异。您可以要求通过使用 Anthos Config Management 传送所有集群配置更改,并锁定对 Kubernetes API 的直接访问。
  • 通过单次 Git 提交将配置更改应用于数百个集群,而不是编写脚本来手动运行数千条 kubectl apply 命令。
  • 确保根据应用于每个集群的元数据,将更改推送到每个相关集群,并且仅推送到相关集群。
  • 使用持续集成/持续部署 (CI/CD) 流水线来测试您的更改,并在测试通过时自动应用这些更改。
  • 在修复有问题的更改并将其作为新提交的更改应用之前,使用还原然后调查策略来回滚重大更改,并使您的活跃集群恢复到良好的工作状态。此政策可减少因与配置有关的中断而导致的停机时间。

Anthos Config Management 会将您的集群状态与您的 Git 代码库同步。Config Management Operator 自定义控制器可监控您的 Git 代码库和集群的状态,使其与您选择的每个 Kubernetes 对象保持一致。如果 Operator 未能将更改应用于某个资源,该资源将保持最近一次的已知良好状态。

Anthos Config Management 可以通过单个 Git 代码库配置单个集群或多个集群。

前提条件

Anthos Config Management 需要有效的 Anthos 授权。如需了解定价信息,请与销售人员联系。

Anthos Config Management 使用命名空间标签注释作为其实现的核心部分,在准备工作阶段充分了解这些概念会很有帮助。

在编写配置之前,您需要了解该 Kubernetes 对象允许使用的必需字段和可选字段。

此外,Anthos Config Management 还引入了一些新的术语和概念。下一部分简要讨论了这些内容,并提供了指向每个概念的详细信息的链接。

新概念

以下新概念是 Anthos Config Management 的核心。

配置

配置是用 YAML 或 JSON 编写的 Kubernetes 配置声明,可由 Anthos Config Management 读取并应用于一个或多个集群,以在这些集群中创建或配置 Kubernetes 对象或资源。配置存储在 Git 代码库中(另请参阅代码库的定义)。配置包含您通过使用 kubectl editkubectl apply 应用于 Kubernetes 集群的任何配置详细信息。您甚至可以配置集群中已存在的自定义资源。可以在单个文件中定义多个配置。

如需了解更多信息,请参阅配置 Kubernetes 对象

代码库

代码库是存储配置的 Git 代码库,其中包括 Anthos Config Management 的配置。所有配置必须存储在同一个代码库中。配置 Anthos Config Management 时,您可以配置代码库、分支和子目录,以便 Anthos Config Management 监控其是否发生更改。

代码库的结构很重要,在使用 Anthos Config Management 代码库中将进行进一步讨论。

抽象命名空间目录

Anthos Config Management 提供了一种称为抽象名称空间的机制。抽象名称空间使您可以将政策应用于多个相关名称空间,而无需重复配置,并使您能够覆盖或扩展给定命名空间或命名空间集的配置。

抽象命名空间通过使用代码库中的文件系统样式层次结构来工作。namespaces/ 子目录的目录结构通过使用类似于文件系统树的机制来确定将哪些政策应用于命名空间。命名空间可以嵌套到子目录中,我们将其称为抽象命名空间目录

如需了解详情,请参阅命名空间继承概览

查看和验证文件

Anthos Config Management 提供了一个 API。nomosnomos.exe 命令均使用该 API 并简化了设置代码库和验证配置的过程。

如需了解详情,请参阅使用 nomos 命令

后续步骤