계층 구조 컨트롤러 설치

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

시작하기 전에

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

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

클러스터에서 계층 구조 컨트롤러를 사용하도록 구성 동기화를 구성하려면 다음 단계를 따르세요.

  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 및 macOS에 사용할 수 있습니다. 워크스테이션에 설치하려면 다음 섹션을 참조하세요.

필요한 플러그인 버전 확인

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

구성 동기화 버전 kubectl-hns 버전
1.5.0 0.5.2
1.4.2 0.5.1
1.4.1 0.5.0
1.4.0 전 해당 없음

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

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

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

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

    Linux

    구성 동기화 1.5.0 / HH v0.5.2 이후:

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

    Config Sync 1.4.2 / HNC v0.5.1 이하:

    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
    

    macOS

    macOS는 구성 동기화 1.5.0/HNC v0.5.2 이상에만 사용할 수 있습니다.

    curl -L -o ${PLUGIN_DIR}/kubectl-hns \
       https://github.com/kubernetes-sigs/multi-tenancy/releases/download/hnc-${HNC_VERSION}/kubectl-hns_darwin_amd64
    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 완료자를 제거하면 계층 구조 컨트롤러가 제거됩니다.

구성 동기화를 완전히 삭제하려면 클러스터에서 연산자 삭제를 참조하세요.

다음 단계