8.7. 기능 게이트를 사용한 기능 활성화

관리자는 Feature Gate 를 사용하여 기본 기능 세트의 일부가 아닌 기능을 활성화할 수 있습니다.

8.7.1. FeatureGate 이해

FeatureGate 사용자 정의 리소스 (CR)를 사용하여 클러스터에서 특정 기능 세트를 활성화할 수 있습니다. 기능 세트는 기본적으로 활성화되어 있지 않은 OpenShift Container Platform 기능 컬렉션입니다.

FeatureGate CR을 사용하여 다음 기능을 활성화할 수 있습니다.

  • TechPreviewNoUpgrade. 이 기능 세트는 현재 기술 프리뷰 기능의 서브 세트입니다. 이 기능 세트를 사용하면 프로덕션 클러스터에서 비활성화된 기능을 유지하면서 테스트 클러스터에서 이러한 기술 프리뷰 기능을 완전히 테스트할 수 있습니다.

    주의

    클러스터에서 TechPreviewNoUpgrade 기능 세트를 활성화하면 취소할 수 없으며 마이너 버전 업데이트를 방지할 수 없습니다. 프로덕션 클러스터에서 이 기능 세트를 활성화해서는 안 됩니다.

    기능 세트를 통해 다음과 같은 기술 프리뷰 기능을 활성화할 수 있습니다.

    • CSI 자동 마이그레이션. 지원되는 in-tree 볼륨 플러그인을 동등한 CSI(Container Storage Interface) 드라이버로 자동 마이그레이션을 활성화합니다. 지원 대상:

      • Azure File (CSIMigrationAzureFile)
      • VMware vSphere (CSIMigrationvSphere)
    • OpenShift 빌드의 공유 리소스 CSI 드라이버 및 CSI 볼륨 빌드. CSI(Container Storage Interface)를 활성화합니다. (CSIDriverSharedResource)
    • CSI 볼륨. OpenShift Container Platform 빌드 시스템에 대한 CSI 볼륨 지원을 활성화합니다. (빌드CSIVolumes)
    • 노드의 스왑 메모리입니다. 노드별로 OpenShift Container Platform 워크로드에 대한 스왑 메모리 사용을 활성화합니다. (NodeSwap)
    • cgroups v2. 다음 버전의 Linux cgroup API를 cgroup v2를 활성화합니다. (CGroupsV2)
    • Crun. crun 컨테이너 런타임을 활성화합니다. (crun)
    • Insights Operator. OpenShift Container Platform 구성 데이터를 수집하여 Red Hat으로 전송하는 Insights Operator를 활성화합니다. (InsightsConfigAPI)
    • 외부 클라우드 공급자. vSphere, AWS, Azure 및 GCP에서 클러스터에 대한 외부 클라우드 공급자를 지원합니다. OpenStack에 대한 지원은 GA입니다. (ExternalCloudProvider)
    • Pod 토폴로지 분배 제약 조건입니다. Pod 토폴로지 제약 조건에 대한 matchLabelKeys 매개변수를 활성화합니다. 매개변수는 분배를 계산할 Pod를 선택하는 Pod 라벨 키 목록입니다. (MatchLabelKeysInPodTopologySpread)
    • Pod 보안 승인 적용 Pod 보안 승인에 대한 제한 적용을 활성화합니다. 경고만 로깅하는 대신 Pod가 Pod 보안 표준을 위반하는 경우 거부됩니다. (OpenShiftPodSecurityAdmission)

      참고

      Pod 보안 승인 제한 적용은 OpenShift Container Platform 클러스터가 설치된 후 TechPreviewNoUpgrade 기능을 활성화하는 경우에만 활성화됩니다. 클러스터 설치 중에 TechPreviewNoUpgrade 기능 세트를 활성화하면 활성화되지 않습니다.

TechPreviewNoUpgrade 기능 게이트에서 활성화한 기능에 대한 자세한 내용은 다음 항목을 참조하십시오.

8.7.2. 설치 시 기능 세트 활성화

클러스터를 배포하기 전에 install-config.yaml 파일을 편집하여 클러스터의 모든 노드에 대해 기능 세트를 활성화할 수 있습니다.

사전 요구 사항

  • install-config.yaml 파일이 있습니다.

절차

  1. featureSet 매개변수를 사용하여 활성화할 기능 세트의 이름 (예: TechPreviewNoUpgrade )을 지정합니다.

    주의

    클러스터에서 TechPreviewNoUpgrade 기능 세트를 활성화하면 취소할 수 없으며 마이너 버전 업데이트를 방지할 수 없습니다. 프로덕션 클러스터에서 이 기능 세트를 활성화해서는 안 됩니다.

    활성화된 기능 세트가 있는 샘플 install-config.yaml 파일

    compute:
    - hyperthreading: Enabled
      name: worker
      platform:
        aws:
          rootVolume:
            iops: 2000
            size: 500
            type: io1
          metadataService:
            authentication: Optional
          type: c5.4xlarge
          zones:
          - us-west-2c
      replicas: 3
    featureSet: TechPreviewNoUpgrade

  2. 설치 프로그램을 사용하여 클러스터를 배포할 때 파일을 저장하고 참조합니다.

검증

노드가 ready 상태로 돌아간 후 노드의 kubelet.conf 파일을 보고 기능 게이트가 활성화되었는지 확인할 수 있습니다.

  1. 웹 콘솔의 관리자 화면에서 ComputeNodes 로 이동합니다.
  2. 노드를 선택합니다.
  3. 노드 세부 정보 페이지에서 터미널 을 클릭합니다.
  4. 터미널 창에서 root 디렉토리를 /host:로 변경합니다.

    sh-4.2# chroot /host
  5. kubelet.conf 파일을 확인합니다.

    sh-4.2# cat /etc/kubernetes/kubelet.conf

    샘플 출력

    # ...
    featureGates:
      InsightsOperatorPullingSCA: true,
      LegacyNodeRoleBehavior: false
    # ...

    true 로 나열된 기능은 클러스터에서 활성화되어 있습니다.

    참고

    나열된 기능은 OpenShift Container Platform 버전에 따라 다릅니다.

8.7.3. 웹 콘솔을 사용하여 기능 세트 활성화

OpenShift Container Platform 웹 콘솔을 사용하여 FeatureGate CR(사용자 정의 리소스)을 편집하여 클러스터의 모든 노드에 대해 기능 세트를 활성화할 수 있습니다.

절차

기능 세트를 활성화하려면 다음을 수행합니다.

  1. OpenShift Container Platform 웹 콘솔에서 관리사용자 지정 리소스 정의 페이지로 전환합니다.
  2. 사용자 지정 리소스 정의 페이지에서 FeatureGate를 클릭합니다.
  3. 사용자 정의 리소스 정의 세부 정보 페이지에서 인스턴스 탭을 클릭합니다.
  4. 클러스터 기능 게이트를 클릭한 다음 YAML 탭을 클릭합니다.
  5. 특정 기능 세트를 추가하려면 클러스터 인스턴스를 편집합니다.

    주의

    클러스터에서 TechPreviewNoUpgrade 기능 세트를 활성화하면 취소할 수 없으며 마이너 버전 업데이트를 방지할 수 없습니다. 프로덕션 클러스터에서 이 기능 세트를 활성화해서는 안 됩니다.

    FeatureGate 사용자 지정 리소스 샘플

    apiVersion: config.openshift.io/v1
    kind: FeatureGate
    metadata:
      name: cluster 1
    # ...
    spec:
      featureSet: TechPreviewNoUpgrade 2

    1
    FeatureGate CR의 이름은 cluster이어야 합니다.
    2
    활성화할 기능 세트를 추가합니다.
    • TechPreviewNoUpgrade를 사용하면 특정 기술 프리뷰 기능을 사용할 수 있습니다.

    변경 사항을 저장하면 새 머신 구성이 생성되면 머신 구성 풀이 업데이트되고 변경 사항이 적용되는 동안 각 노드에 대한 스케줄링이 비활성화됩니다.

검증

노드가 ready 상태로 돌아간 후 노드의 kubelet.conf 파일을 보고 기능 게이트가 활성화되었는지 확인할 수 있습니다.

  1. 웹 콘솔의 관리자 화면에서 ComputeNodes 로 이동합니다.
  2. 노드를 선택합니다.
  3. 노드 세부 정보 페이지에서 터미널 을 클릭합니다.
  4. 터미널 창에서 root 디렉토리를 /host:로 변경합니다.

    sh-4.2# chroot /host
  5. kubelet.conf 파일을 확인합니다.

    sh-4.2# cat /etc/kubernetes/kubelet.conf

    샘플 출력

    # ...
    featureGates:
      InsightsOperatorPullingSCA: true,
      LegacyNodeRoleBehavior: false
    # ...

    true 로 나열된 기능은 클러스터에서 활성화되어 있습니다.

    참고

    나열된 기능은 OpenShift Container Platform 버전에 따라 다릅니다.

8.7.4. CLI를 사용하여 기능 세트 활성화

OpenShift CLI(oc)를 사용하여 FeatureGate CR(사용자 정의 리소스)을 편집하여 클러스터의 모든 노드에 대해 기능 세트를 활성화할 수 있습니다.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.

절차

기능 세트를 활성화하려면 다음을 수행합니다.

  1. cluster라는 FeatureGate CR을 편집합니다.

    $ oc edit featuregate cluster
    주의

    클러스터에서 TechPreviewNoUpgrade 기능 세트를 활성화하면 취소할 수 없으며 마이너 버전 업데이트를 방지할 수 없습니다. 프로덕션 클러스터에서 이 기능 세트를 활성화해서는 안 됩니다.

    FeatureGate 사용자 지정 리소스 샘플

    apiVersion: config.openshift.io/v1
    kind: FeatureGate
    metadata:
      name: cluster 1
    # ...
    spec:
      featureSet: TechPreviewNoUpgrade 2

    1
    FeatureGate CR의 이름은 cluster이어야 합니다.
    2
    활성화할 기능 세트를 추가합니다.
    • TechPreviewNoUpgrade를 사용하면 특정 기술 프리뷰 기능을 사용할 수 있습니다.

    변경 사항을 저장하면 새 머신 구성이 생성되면 머신 구성 풀이 업데이트되고 변경 사항이 적용되는 동안 각 노드에 대한 스케줄링이 비활성화됩니다.

검증

노드가 ready 상태로 돌아간 후 노드의 kubelet.conf 파일을 보고 기능 게이트가 활성화되었는지 확인할 수 있습니다.

  1. 웹 콘솔의 관리자 화면에서 ComputeNodes 로 이동합니다.
  2. 노드를 선택합니다.
  3. 노드 세부 정보 페이지에서 터미널 을 클릭합니다.
  4. 터미널 창에서 root 디렉토리를 /host:로 변경합니다.

    sh-4.2# chroot /host
  5. kubelet.conf 파일을 확인합니다.

    sh-4.2# cat /etc/kubernetes/kubelet.conf

    샘플 출력

    # ...
    featureGates:
      InsightsOperatorPullingSCA: true,
      LegacyNodeRoleBehavior: false
    # ...

    true 로 나열된 기능은 클러스터에서 활성화되어 있습니다.

    참고

    나열된 기능은 OpenShift Container Platform 버전에 따라 다릅니다.