외부에서 필드 관리

Config Connector가 Google Cloud에서 리소스를 만들 때 사양에 지정되지 않은 필드는 읽을 수 없는 경우가 아닌 이상 API에서 값을 가져옵니다. (예를 들어 GET HTTP 요청을 사용할 수 없습니다.)

이 경우 Kubernetes는 이 값의 출처가 아니므로 이 필드는 '외부 관리'로 간주됩니다.

서버 측 적용 동작

서버 측 적용이 리소스에 대해 사용 설정된 경우 객체의 외부에서 관리되는 필드의 값이 기본 Google Cloud 리소스와 일치하도록 계속 업데이트됩니다.

적용된 구성의 사양에 필드 값이 있는 경우 해당 필드는 외부에서 관리되지 않습니다.

필드가 삭제된 경우 필드가 외부에서 관리됩니다.

서버 측 미적용 동작

서버 측 적용을 사용 설정하지 않으면 리소스 사양의 지정되지 않은 필드가 Google Cloud API에서 읽은 값으로 채워지고 Config Connector는 초기에 채워진 값을 적용합니다.

예를 들어 사용자가 사양에서 bar 값을 설정하지 않고 리소스 구성을 적용하는 경우:

spec:
    foo: "foo"

bar 필드의 값이 Google Cloud API에서 baz이면 api-server의 리소스가 해당 값으로 채워집니다.

# object in the api-server
spec:
    foo: "foo"
    bar: "baz"  # populated by first reconciliation

bar가 이제 baz-2이 되도록 Google Cloud 리소스를 직접 수정하면 Google Cloud API가 처음에 리소스 사양 baz에 채워진 값으로 수정됩니다.

# object in the api-server
spec:
    foo: "foo"
    bar: "baz"  # still the originally populated value, and overrides the Google Cloud value

주의사항

Config Connector에서 관리되고 외부 서비스에서 자동으로 업데이트되는 필드는 기본 API에서 끊임 없는 업데이트를 유발할 수 있습니다. 기본 API에 자동 확장 처리 또는 자동 업데이트 필드가 포함된 경우에 이러한 문제가 발생할 수 있습니다. 리소스에 대해 서버 측 적용을 사용 설정하고 적용 시 구성 파일 외부에 필드를 두어 이러한 필드가 외부적으로 관리되는 것으로 처리되도록 해야 합니다.