Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

44장. 기능 게이트를 사용하여 기능 비활성화

관리자는 Feature Gate를 사용하여 특정 노드 또는 전체 플랫폼에 대한 특정 기능을 비활성화할 수 있습니다.

예를 들어 프로덕션 클러스터에 대한 새 기능을 끄고 완전히 테스트할 수 있는 테스트 클러스터에 대한 기능을 그대로 유지할 수 있습니다.

웹 콘솔에 표시되는 기능을 비활성화하면 해당 기능이 표시되지만 오브젝트는 나열되지 않습니다. 비활성화된 기능과 관련된 명령을 사용하려고 하면 OpenShift Container Platform에 오류가 표시됩니다.

참고

클러스터의 모든 애플리케이션이 사용하는 기능을 비활성화하면 비활성화된 기능 및 애플리케이션에서 해당 기능을 사용하는 방법에 따라 애플리케이션이 제대로 작동하지 않을 수 있습니다.

기능 게이트는 마스터 구성 파일(/etc/origin/master/master-config.yaml)에서 key=value 쌍을 사용하고 차단하려는 기능을 설명하는 및 노드 구성 파일을 사용합니다.

노드 구성 파일을 수정하려면 필요에 따라 노드 구성 맵을 업데이트합니다. node-config.yaml 파일을 수동으로 편집하지 마십시오.

예를 들어 다음 코드는 Huge Pages 기능을 비활성화합니다.

kubernetesMasterConfig:
  apiServerArguments:
    feature-gates:
    - HugePages=false 1
  ...
  controllerArguments:
    feature-gates:
    - HugePages=false 2
1 2
기능을 끄는 키/값 쌍:
  • True 는 지정된 기능을 활성화합니다.
  • False 는 지정된 기능을 비활성화합니다.

쉼표로 구분된 한 줄로 여러 개의 기능 게이트를 지정합니다.

kubeletArguments:
  feature-gates:
  - RotateKubeletClientCertificate=true,RotateKubeletServerCertificate=true,ExpandPersistentVolumes=true,HugePages=false

44.1. 클러스터의 기능 비활성화

전체 클러스터에 대한 기능을 해제하려면 기본적으로 /etc/origin/master/master-config.yaml에 따라 마스터 구성 파일을 편집합니다.

  1. 해제하려는 기능에 대해 apiServerArguments 및 controllerArguments 아래에 <feature_name>=false 를 입력합니다.

    예를 들면 다음과 같습니다.

    kubernetesMasterConfig:
      apiServerArguments:
        feature-gates:
        - HugePages=false
      controllerArguments:
        feature-gates:
        - HugePages=false

    쉼표로 구분된 한 줄로 여러 개의 기능 게이트를 지정합니다.

    kubernetesMasterConfig:
      apiServerArguments:
        feature-gates:
        - RotateKubeletClientCertificate=false,RotateKubeletServerCertificate=false,ExpandPersistentVolumes=true,HugePages=false
      controllerArguments:
        feature-gates:
        - RotateKubeletClientCertificate=false,RotateKubeletServerCertificate=false,ExpandPersistentVolumes=true,HugePages=false
  2. OpenShift Container Platform 마스터 서비스를 다시 시작하여 변경 사항을 적용합니다.

    # master-restart api
    # master-restart controllers

비활성화된 기능을 다시 사용하려면 마스터 구성 파일을 편집하여 <feature_name>=false 를 제거하고 마스터 서비스를 다시 시작합니다.