구성 개요

이 페이지는 Git에서 읽은 Anthos Config Management 파일과 자동으로 클러스터에 적용하는 구성에 대해 설명합니다. 구성을 만들고 저장소에 커밋할 수 있습니다.

Anthos Config Management는 구성(config)을 사용하여, 등록한 클러스터를 동기화 상태로 유지합니다. 구성은 저장소에 저장되는 YAML 또는 JSON 파일로서 여기에는 kubectl apply 명령어를 사용하여 클러스터에 수동으로 적용할 수 있는 세부정보와 동일한 유형의 구성 세부정보가 포함됩니다. 이 주제에서는 구성 작동 방법, 구성 작성 방법, Anthos Config Management에서 구성을 등록된 클러스터에 적용하는 방법을 설명합니다.

Anthos Config Management는 다수의 클러스터를 관리하는 클러스터 운영자용으로 설계되었습니다. Anthos Config Management가 네임스페이스, 역할, RoleBinding, ResourceQuota, 리소스 전반의 기타 중요한 Kubernetes 객체를 관리할 수 있도록 하여 클러스터가 비즈니스 및 규정 준수 표준을 충족하는지 확인할 수 있습니다. 클러스터에 있을 수 있는 모든 Kubernetes 객체에 구성을 만들 수 있습니다.

시간 경과에 따른 구성 작업

다음 결정 트리는 시간 경과에 따라 Anthos Config Management에서 관리하는 가상 클러스터 그룹의 여러 구성 변경 결과를 보여줍니다. 다이어그램 다음에서는 클러스터 운영자가 수행한 일부 가상 작업과 작업 결과를 설명하고 이를 바탕으로 Anthos Config Management의 작동 방식을 보여줍니다.

이 클러스터는 예시 저장소를 사용합니다. 이 클러스터는 이미 연산자에 등록되어 있습니다.

시간 경과에 따른 Anthos Config Management의 작업과 결과를 보여주는 결정 트리 예

  • Anthos Config Management는 다음 중 하나 이상에 해당하는 경우에만 구성을 적용합니다.

    • 관련 구성이 저장소에 있습니다.
    • configmanagement.gke.io/managed: enabled 주석이 Kubernetes 객체에 적용됩니다.

    foo-corp 클러스터에는 configmanagement.gke.io/managed: enabled 주석이 없는 pod-accountant라는 ClusterRole이 있으며, ClusterRole 객체의 구성은 저장소에 없습니다. Anthos Config Management는 pod-accountant ClusterRole을 구성하지 않습니다.

  • 관련 변경사항이 저장소에 커밋될 때 Anthos Config Management는 이를 자동으로 적용합니다.

    클러스터 관리자가 구성을 저장소의 cluster/quota-viewer-clusterrole.yaml 파일에 커밋합니다. 이 구성은 quota-viewer라는 ClusterRole을 정의합니다. 구성은 cluster/ 디렉터리에 생성되므로 등록된 모든 클러스터에 영향을 미칩니다. Anthos Config Management는 새로 커밋된 구성을 감지하여 적용합니다. quota-viewer ClusterRole이 이제 클러스터에 있고, configmanagement.gke.io/managed: enabled 주석을 가지며, quota-viewer-clusterrole.yaml의 콘텐츠와 동기화됩니다.

    시간이 경과한 후 다른 사용자가 저장소에서 cluster/quota-viewer-clusterrole.yaml 파일을 삭제하면 Anthos Config Management는 이 변경을 감지하고 클러스터에서 quota-viewer ClusterRole을 제거합니다.

  • configmanagement.gke.io/managed: enabled 주석을 추가하여 기존 객체 관리를 시작할 수 있습니다.

    foo-corp 클러스터에는 shipping-dev라는 네임스페이스 디렉터리가 있습니다. 이 네임스페이스 디렉터리 안에는 job-creator라는 역할의 구성이 있으며 이 구성에는 configmanagement.gke.io/managed: enabled 주석이 있습니다. 다른 사용자가 namespaces/dev/shipping-dev/job-creator-role.yaml 파일을 업데이트합니다. 연산자는 변경사항을 감지하고 적용합니다.

  • Anthos Config Management는 네임스페이스에 대한 구성 변경사항을 그룹화된 계층적 방식으로 적용할 수 있습니다.

    foo-corp 클러스터에는 pod-creator라는 RoleBinding이 있으며 이에 해당하는 /namespaces/pod-creator/pod-creator.yaml 파일이 저장소에 있습니다. 다이어그램에서는 shipping-prod, shipping-staging, shipping-dev 모두 shipping-dev-backend 추상 네임스페이스 디렉터리에 있는 네임스페이스(각각에 네임스페이스를 정의하는 namespace.yaml 파일이 있음)임을 보여줍니다. 이러한 네임스페이스는 각각 pod-creator RoleBinding을 상속합니다.

    시간이 경과한 후 다른 사용자가 shipping-prod 네임스페이스 디렉터리에서 pod-creator RoleBinding을 수정하면 연산자는 이러한 변경사항을 감지하고 pod-creator를 업데이트하여 저장소의 구성과 일치시킵니다.

    언젠가 다른 사용자가 저장소에서 pod-creator 구성을 삭제하면 Anthos Config Management는 이러한 변경사항을 감지하고 네임스페이스 세 개 각각에서 pod-creator RoleBinding을 삭제합니다.

  • Anthos Config Management를 사용 하면 변경사항을 수동으로 적용할 수 있으며 configmanagement.gke.io/managed: enabled 주석이 없는 한 객체를 관리하지 않습니다.

    다른 사용자가 shipping-prod 네임스페이스에 secret-admin이라는 새 역할을 수동으로 만듭니다. 저장소에는 secret-admin 역할 구성이 없고, secret-admin 역할에는 configmanagement.gke.io/managed: enabled 주석이 없습니다. 이러한 경우 Anthos Config Management는 어떠한 작업도 수행하지 않습니다.

    시간이 경과한 후 다른 사용자가 configmanagement.gke.io/managed:enabled 주석을 secret-admin 역할에 수동으로 추가합니다. 해당되는 구성이 저장소에 아직 없으므로 Anthos Config Management는 네임스페이스에서 secret-admin 역할을 삭제합니다.

  • Anthos Config Management는 관련 구성이 있으면 누락된 네임스페이스를 만듭니다.

    다른 사용자가 클러스터에 없는 audit 네임스페이스의 새 구성을 커밋하면 Anthos Config Management는 클러스터에 audit 네임스페이스를 만들고 configmanagement.gke.io/managed: enabled 주석을 적용합니다.

  • Anthos Config Management는 configmanagement.gke.io/managed: enabled 주석이 없는 네임스페이스의 구성을 관리할 수 있습니다.

    shipping-dev 네임스페이스는 클러스터에 있지만 configmanagement.gke.io/managed: enabled 주석이 없습니다. 하지만 저장소의 shipping-dev 네임스페이스 디렉터리에 job-creators라는 RoleBinding이 있으며, 여기에 configmanagement.gke.io/managed: enabled 주석이 있습니다.

    다른 사용자가 shipping-dev 네임스페이스 구성을 저장소에 추가하지만 job-creators RoleBinding 구성은 없습니다. RoleBinding 구성은 없지만 RoleBinding에 configmanagement.gke.io/managed: enabled 주석이 있으므로 Anthos Config Management는 RoleBinding을 삭제합니다.

    나중에 다른 사용자가 job-creators RoleBinding 구성을 추가합니다. 구성에 정의된 속성으로 job-creators RoleBinding이 다시 생성됩니다.

다음 단계