調整戦略のストラテジー

Config Connector の結果整合性

宣言型の構成では、システムの望ましい状態を定義します。その後、システムは常にこの状態にできる限り近いままで動作します。詳細については、構成ファイルを使用した Kubernetes オブジェクトの宣言型管理をご覧ください。

Config Connector を使用すると、依存関係の関係にかかわらず、任意の順序でリソースの作成と更新を行うことができます。GKE は、宣言された構成を望ましい状態の結果整合性に移行します。

たとえば、PubSubSubscription を対応する PubSubTopic より先に 作成する場合、Config Connector は、関連するサブスクリプションが作成されるまで、トピックの作成を待機します。

Config Connector のインストールが一貫していない期間は、管理するリソースの数とタイプによって異なります。通常、GKE クラスタの変更は数秒で実行されます。ただし、Google Cloud リソースを作成する時間はリソースの種類によって異なります。たとえば、1 つの PubSubTopic の作成には数秒かかります。Google Cloud リソースは、作成されるまで一貫性を持ちません。たとえば、SQLInstanceSQLDatabase を作成する場合、データベースの作成中にシステムは数分間一貫性がありません。

GKE と Config Connector は、更新ごとに、または平均 10 分間のジッター周期後に各リソースを調整します。調整中にエラーが発生した場合、Config Connector は最大バックオフが 2 分である指数バックオフで再試行します。特定のリソースの [イベント] でエラーを表示できます。

変更可能だが読み取り不可能であるフィールドは変更時のみ有効

API の中には、読み取り不可能だが変更可能であるフィールドを公開しているものがあります(SQL ユーザーのパスワードなど)。これらのフィールドが変更されたかどうかを確認できないため、変更可能だが読み取り不可能であるフィールドは、カスタム リソースが変更された場合にのみ更新されます。

変更不可能であるフィールドを変更してもリソースは再作成されない

リソース内の一部のフィールドは変更不可能であり、削除してからターゲット リソースを再作成しないと、調整できません。

このような場合、Config Connector は、この再作成ではなく、リソースに対して「UpdatedFailed」Kubernetes イベントを発行します。ユーザーはリソースを削除してから再作成する必要があります。

イベントの例:

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]