계층 구조 컨트롤러 설치

이 문서에서는 Anthos Config Management 저장소를 수정하지 않고도 계층적 정책 및 생성을 허용하도록 일반 Kubernetes 네임스페이스를 확장하는 계층 구조 컨트롤러를 설치하고 제거하는 방법을 보여줍니다.

시작하기 전에

Anthos Config Management가 이미 설치된 Google Kubernetes Engine(GKE) 버전 1.15.x 이상을 실행하는 클러스터가 필요합니다.

계층 구조 컨트롤러 사용 설정

Anthos Config Management를 구성하여 클러스터에서 계층 구조 컨트롤러를 사용 설정하려면 다음 단계를 수행합니다.

  1. 연산자 구성 파일의 spec.hierarchyController 객체에서 enabled 값을 true로 설정합니다.

      # config-management.yaml
    
      apiVersion: configmanagement.gke.io/v1
      kind: ConfigManagement
      metadata:
        name: config-management
      spec:
        # Set to true to enable hierarchical namespaces
        hierarchyController:
          enabled: true
    
        # ...other fields...
    
  2. 구성을 적용합니다.

      kubectl apply -f config-management.yaml
    

    여러 워크로드가 배포되면 계층 구조 컨트롤러를 클러스터에서 사용할 수 있게 됩니다. 완료하는 데 최대 1분이 걸릴 수 있습니다.

kubectl 플러그인 설치

kubectl과 같은 Kubernetes 클라이언트 도구를 통해서만 계층 구조 컨트롤러와 상호작용할 수 있습니다. 하지만 오픈소스 kubectl-hns kubectl 플러그인은 여러 작업을 크게 단순화합니다. 이 플러그인은 계층 구조 컨트롤러의 구성요소인 계층적 네임스페이스 컨트롤러(HNC)의 일부입니다.

이 플러그인은 OSS 커뮤니티에서 배포되며 현재 Linux에서만 사용할 수 있습니다. 워크스테이션에 설치하려면 다음 섹션을 참조하세요.

필요한 플러그인 버전 확인

Anthos Config Management의 각 출시 버전은 다음 표와 같이 OSS 프로젝트의 출시 버전에 해당합니다. 최상의 결과를 얻으려면 다운로드하는 플러그인 버전이 Anthos Config Management 버전과 일치해야 합니다.

Anthos Config Management 버전 kubectl-hns 버전
1.4.1 0.5.0
1.4.0 전 해당 없음

워크스테이션에 플러그인 설치

  1. 환경 변수를 이전 표에 표시된 kubectl-hns 버전으로 설정합니다. 예를 들면 다음과 같습니다.

     HNC_VERSION=0.5.0   # Example for Anthos Config Management 1.4.1
    
  2. 플러그인을 설치할 위치를 선택합니다. 경로 어디에나 설치할 수 있습니다.

     PLUGIN_DIR=~/kubectl-plugins   # Example path
    
  3. 플러그인을 다운로드하고 실행 파일로 만듭니다.

    curl -L -o ${PLUGIN_DIR}/kubectl-hns \
       https://github.com/kubernetes-sigs/multi-tenancy/releases/download/hnc-${HNC_VERSION}/kubectl-hns
    chmod +x ${PLUGIN_DIR}/kubectl-hns
    

설치 확인

  1. 계층 구조 컨트롤러가 올바르게 설치되면 다음과 같이 기존 네임스페이스 아래에 하위 네임스페이스를 만들 수 있어야 합니다.

     kubectl hns create sub -n default
    
  2. 계층 구조 컨트롤러가 제대로 작동하면 결과 계층 구조를 검사할 수 있어야 합니다.

     kubectl hns tree default
    

    결과:

     default
      └── sub
    
  3. 하위 네임스페이스를 삭제합니다. 하위 네임스페이스를 직접 삭제할 수 없습니다. 대신 상위 네임스페이스에서 하위 네임스페이스 앵커를 삭제해야 합니다.

    kubectl delete subns sub -n default
    # subnamespaceanchor.hnc.x-k8s.io "sub" deleted
    

계층 구조 컨트롤러 제거

계층 구조 컨트롤러를 제거하려면 다음 안내를 따르세요.

  1. 연산자 구성 파일의 spec.hierarchyController 객체에서 enabled 값을 false로 설정합니다.
  2. 연산자가 hierarchycontroller.configmanagement.gke.io 완료자를 제거하면 계층 구조 컨트롤러가 제거됩니다.

Anthos Config Management를 완전히 제거하려면 클러스터에서 연산자 제거를 참조하세요.

다음 단계