对帐策略

使用声明式配置,您可以定义所需的系统状态。然后,系统会不断努力,以尽可能接近此状态。如需了解详情,请参阅使用配置文件对 Kubernetes 对象进行声明式管理

借助 Config Connector,您可以按照任意顺序创建和更新资源,而无论依赖关系如何。GKE 将声明的配置移动到具有所需状态的最终一致性

例如,如果您在相应的 PubSubTopic 之前创建 PubSubSubscription,则 Config Connector 会等到主题创建完毕后,再创建关联的订阅。

Config Connector 安装时长不一致,取决于它管理的资源数量和类型。对 GKE 集群的更改通常只需几秒钟即可执行。但是,创建 Google Cloud 资源的时间因资源类型而异。例如,单个 PubSubTopic 只需几秒钟即可完成创建。在创建 Google Cloud 资源之前,它们不会保持一致性。例如,创建 SQLInstanceSQLDatabase 时,在创建数据库期间,系统存在几分钟内不一致的情况。

GKE 和 Config Connector 会在每次更新或抖动时段(平均 10 分钟)后协调每个资源。如果调节时出错,Config Connector 将使用指数退避算法重试,其中退避时间为两分钟。您可以在给定资源的事件中查看任何错误。

仅在更改时启用可变但不可读取的字段

某些 API 公开了不可读但可变的字段(例如,SQL 用户的密码)。由于无法查看这些字段是否已被修改,只有在修改自定义资源后,可变但可读的字段才会更新。

修改不可变字段时,不会重新创建资源

资源中的某些字段是不可变的,必须进行协调才能删除,然后再重新创建目标资源。

在这些情况下,Config Connector 会为该资源发出一个“UpdatedFailed”事件,而不是执行重新创建操作。然后,必须删除并重新创建资源。

事件示例:

Warning  UpdateFailed  37m (x643 over 15d)    computeinstance-controller  Update call failed: the desired mutation for the following field(s) is invalid: [bootDisk.0.InitializeParams.0.Image networkInterface.0.NetworkIp]