계층 구조 컨트롤러 개요

이 문서에서는 Kubernetes 네임스페이스에 계층 구조를 추가하는 동적 승인 컨트롤러, 계층 구조 컨트롤러, Kubernetes 컨트롤러를 설명합니다.

계층적 네임스페이스

계층 구조 컨트롤러는 일반적인 소유권 개념을 공유하는 네임스페이스 그룹을 간편하게 관리할 수 있게 해주는 Kubernetes 네임스페이스에 대한 확장 프로그램인 계층적 네임스페이스 개념을 도입합니다. 여러 에서 공유하는 클러스터에서 특히 유용하나 소유자가 사람일 필요는 없습니다. 예를 들어 연산자를 일련의 네임스페이스 소유자로 만들 수 있습니다.

멀티 테넌트 사용 사례를 지원하기 위해 계층적 네임스페이스에는 일반 Kubernetes 네임스페이스 외에도 두 가지 주요 동작이 있습니다.

  • 위임된 네임스페이스 생성. 계층 구조 컨트롤러는 사용자에게 클러스터 수준 네임스페이스 권한이 없더라도 사용자가 기존 네임스페이스에서 만들 수 있는 하위 네임스페이스 개념을 도입합니다.

    예를 들어 Git 저장소의 Anthos Config Management에서 팀의 네임스페이스를 정의한 후 하위 네임스페이스 생성을 팀에 위임할 수 있습니다. 이렇게 하면 Git에서 수정하지 않고 자신이 정의한 팀 수준 네임스페이스 아래에 자체 하위 네임스페이스를 만들 수 있습니다.

  • 정책 시행. Anthos Config Management가 추상 네임스페이스 디렉터리에서 Kubernetes 네임스페이스로 정책 객체를 전파할 수 있는 것처럼 계층 구조 컨트롤러는 추가로 이러한 객체를 하위 네임스페이스로 전파할 수 있습니다. 예를 들어 이렇게 하면 팀의 루트 네임스페이스에 적용된 정책이 하위 네임스페이스에도 적용됩니다.

    그러나 계층 구조 컨트롤러와 Anthos Config Management가 정책을 전파하는 방식에는 몇 가지 차이점이 있습니다. Anthos Config Management는 추상 네임스페이스 디렉터리의 모든 객체를 하위 Kubernetes 네임스페이스에 복사합니다. 반면 계층 구조 컨트롤러는 기본적으로 RBAC 역할과 역할 결합 복사합니다. 단, 다른 유형의 Kubernetes 객체를 전파하도록 구성할 수 있습니다.

계층 구조 컨트롤러는 Anthos Config Management 버전 1.4.1 이상에서 통합됩니다. 계층 구조 컨트롤러는 오픈소스 프로젝트인 계층적 네임스페이스 컨트롤러(HNC)를 기반으로 합니다.

계층적 네임스페이스와 추상 네임스페이스 비교

계층 구조 컨트롤러에서 제공하는 계층적 네임스페이스는 Anthos Config Management 추상 네임스페이스와 유사합니다. 그러나 추상 네임스페이스는 Anthos Config Management 저장소에만 있지만 계층적 네임스페이스는 모든 Kubernetes 네임스페이스이며 클러스터에 있습니다.

Anthos Config Management 추상 네임스페이스와 계층 구조 컨트롤러 네임스페이스 간의 경합을 방지하려면 Anthos Config Management 저장소에서 루트가 아닌 계층적 네임스페이스가 추상 또는 리프 네임스페이스로 생성되지 않았는지 확인합니다.

또는 구조화되지 않은 저장소를 사용하여 Anthos Config Management 추상 네임스페이스를 중지하고 계층 구조 컨트롤러만 사용하여 계층 구조를 정의하고 정책을 전파할 수 있습니다. 이 방법은 기본 저장소 디렉터리 구조를 사용할 수 없지만 여전히 계층적 기능을 활용하려는 경우에 유용할 수 있습니다.

구조화되지 않은 저장소를 사용하려면 하위 네임스페이스 또는 전체 네임스페이스를 확인합니다. 확인해야 하는 HierarchicalConfiguration 객체를 수정하여 계층적 관계를 업데이트할 수 있으므로 전체 네임스페이스를 사용하는 것이 좋습니다. 반대로 하위 네임스페이스를 확인하는 경우 네임스페이스와 상위 요소의 SubnamespaceAnchor 객체를 모두 확인해야 합니다. 하지만 생성된 후 쉽게 수정되도록 설계되지 않았는지 인지해야 합니다.

두 경우 모두 계층 구조 간에 원하는 모든 Kubernetes 객체 유형이 적용되도록 계층 구조 컨트롤러를 구성해야 합니다. 기본적으로 RBAC 역할과 역할 결합만 적용됩니다.

다음 단계