조정 전략

Config Connector가 eventual consistency를 가짐

선언적 구성을 사용하여 원하는 시스템 상태를 정의합니다. 그러면 이 상태에 가능한 한 가깝게 유지하도록 시스템이 일정하게 작동합니다. 자세한 내용은 구성 파일을 사용한 Kubernetes 객체의 선언적 관리를 참조하세요.

Config Connector를 사용하면 종속 관계와 관계없이 임의의 순서로 리소스를 만들고 업데이트할 수 있습니다. GKE는 선언된 구성을 원하는 상태의 eventual consistency로 이동합니다.

예를 들어, 해당 PubSubTopic 전에 PubSubSubscription을 생성하는 경우 Config Connector는 연관된 구독을 생성하기 전에 주제가 만들어질 때까지 기다립니다.

Config Connector 설치가 일치하지 않는 상태로 유지되는 시간은 관리되는 리소스 수 및 유형에 따라 달라집니다. GKE 클러스터에 대한 변경은 일반적으로 수초 내에 수행됩니다. 하지만 Google Cloud 리소스 생성 시간은 리소스 유형에 따라 달라질 수 있습니다. 예를 들어 단일 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]