8.7. 기능 게이트를 사용한 기능 활성화
관리자는 Feature Gate 를 사용하여 기본 기능 세트의 일부가 아닌 기능을 활성화할 수 있습니다.
8.7.1. FeatureGate 이해
FeatureGate
사용자 정의 리소스 (CR)를 사용하여 클러스터에서 특정 기능 세트를 활성화할 수 있습니다. 기능 세트는 기본적으로 활성화되어 있지 않은 OpenShift Container Platform 기능 컬렉션입니다.
FeatureGate
CR을 사용하여 다음 기능 세트를 활성화할 수 있습니다.
TechPreviewNoUpgrade
. 이 기능 세트는 현재 기술 프리뷰 기능의 서브 세트입니다. 이 기능 세트를 사용하면 테스트 클러스터에서 이러한 기술 프리뷰 기능을 활성화할 수 있으며 프로덕션 클러스터에서 비활성화된 기능을 완전히 테스트할 수 있습니다.주의클러스터에서
TechPreviewNoUpgrade
기능 세트를 활성화하면 취소할 수 없으며 마이너 버전 업데이트를 방지할 수 없습니다. 프로덕션 클러스터에서 이 기능 세트를 활성화해서는 안 됩니다.기능 세트를 통해 다음과 같은 기술 프리뷰 기능을 활성화할 수 있습니다.
-
외부 클라우드 공급자. vSphere, AWS, Azure 및 GCP에서 클러스터의 외부 클라우드 공급자 지원을 활성화합니다. OpenStack 지원은 GA입니다. 이는 대부분의 사용자가 상호 작용할 필요가 없는 내부 기능입니다. (
ExternalCloudProvider
) -
OpenShift 빌드의 공유 리소스 CSI 드라이버. CSI(Container Storage Interface)를 활성화합니다. (
CSIDriverSharedResource
) -
노드의 메모리를 스왑합니다. 노드별로 OpenShift Container Platform 워크로드에 대한 스왑 메모리 사용을 활성화합니다. (
NodeSwap
) -
OpenStack 시스템 API 공급자. 이 게이트는 효과가 없으며 향후 릴리스에서 이 기능 세트에서 제거될 예정입니다. (
MachineAPIProviderOpenStack
) -
Insights Operator.
InsightsDataGather
CRD를 활성화하여 사용자가 일부 Insights 데이터 수집 옵션을 구성할 수 있습니다. 기능 세트를 사용하면 사용자가 필요에 따라 Insights 데이터 수집을 실행할 수 있는DataGather
CRD를 사용할 수 있습니다. (InsightsConfigAPI
) -
하위 활성 기본 스토리지 클래스. PVC가 생성될 때 기본 스토리지 클래스가 없는 경우 OpenShift Container Platform에서 기본 스토리지 클래스를 PVC에 소급 할당할 수 있습니다.(
RetroactiveDefaultStorageClass
) -
동적 리소스 할당 API. Pod와 컨테이너 간에 리소스를 요청하고 공유하는 데 새 API를 활성화합니다. 이는 대부분의 사용자가 상호 작용할 필요가 없는 내부 기능입니다. (
DynamicResourceAllocation
) -
Pod 보안 승인 적용. Pod 보안 승인에 대한 restricted 적용 모드를 활성화합니다. 경고를 기록하는 대신 Pod 보안 표준을 위반하는 경우 Pod가 거부됩니다. (
OpenShiftPodSecurityAdmission
) -
StatefulSet Pod 가용성 업그레이드 제한 사용자는 업데이트 중에 사용할 수 없는 최대 상태 저장 세트 Pod 수를 정의하여 애플리케이션 다운 타임을 줄일 수 있습니다. (
MaxUnavailableStatefulSet
) -
관리자 네트워크 정책 및 기본 관리자 네트워크 정책. OVN-Kubernetes CNI 플러그인을 실행하는 클러스터에서 Network Policy V2 API의 일부인
AdminNetworkPolicy
및BaselineAdminNetworkPolicy
리소스를 활성화합니다. 클러스터 관리자는 네임스페이스를 생성하기 전에 전체 클러스터에 대한 클러스터 범위 정책 및 보호 장치를 적용할 수 있습니다. 네트워크 관리자는 사용자가 재정의할 수 없는 네트워크 트래픽 제어를 적용하여 클러스터를 보호할 수 있습니다. 네트워크 관리자는 필요한 경우 클러스터 사용자가 덮어쓸 수 있는 선택적 기본 네트워크 트래픽 제어를 적용할 수 있습니다. 현재 이러한 API는 클러스터 내부 트래픽에 대한 정책만 지원합니다. (관리자NetworkPolicy
) -
MatchConditions
는 이 Webhook에 요청을 전송하려면 충족해야 하는 조건 목록입니다. 일치 조건은 규칙, namespaceSelector 및 objectSelector와 이미 일치하는 요청을 필터링합니다. 일치하는Condition
의 빈 목록은 모든 요청과 일치합니다. (admissionWebhookMatchConditions
) -
게이트웨이 API. OpenShift Container Platform Gateway API를 활성화하려면
ServiceMeshControlPlane
리소스의techPreview.gatewayAPI
사양에서활성화된
필드의 값을true
로 설정합니다.(gateGatewayAPI
) -
gcpLabelsTags
-
vSphereStaticIPs
-
routeExternalCertificate
-
automatedEtcdBackup
-
gcpClusterHostedDNS
-
vSphereControlPlaneMachineset
-
dnsNameResolver
-
machineConfigNodes
-
metricsServer
-
installAlternateInfrastructureAWS
-
sdnLiveMigration
-
mixedCPUsAllocation
-
managedBootImages
-
onClusterBuild
-
signatureStores
-
외부 클라우드 공급자. vSphere, AWS, Azure 및 GCP에서 클러스터의 외부 클라우드 공급자 지원을 활성화합니다. OpenStack 지원은 GA입니다. 이는 대부분의 사용자가 상호 작용할 필요가 없는 내부 기능입니다. (
TechPreviewNoUpgrade
기능 게이트에서 활성화한 기능에 대한 자세한 내용은 다음 항목을 참조하십시오.
8.7.2. 설치 시 기능 세트 활성화
클러스터를 배포하기 전에 install-config.yaml
파일을 편집하여 클러스터의 모든 노드에 대해 기능 세트를 활성화할 수 있습니다.
사전 요구 사항
-
install-config.yaml
파일이 있습니다.
프로세스
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
- 파일을 저장하고 설치 프로그램을 사용하여 클러스터를 배포할 때 참조합니다.
검증
노드가 ready 상태로 돌아간 후 노드에서 kubelet.conf
파일을 확인하여 기능 게이트가 활성화되어 있는지 확인할 수 있습니다.
-
웹 콘솔의 관리자 화면에서 컴퓨팅
노드로 이동합니다. - 노드를 선택합니다.
- 노드 세부 정보 페이지에서 터미널을 클릭합니다.
터미널 창에서 root 디렉토리를
/host
로 변경합니다.sh-4.2# chroot /host
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(사용자 정의 리소스)을 편집하여 클러스터의 모든 노드에 대해 기능 세트를 활성화할 수 있습니다.
프로세스
기능 세트를 활성화하려면 다음을 수행합니다.
-
OpenShift Container Platform 웹 콘솔에서 관리
사용자 지정 리소스 정의 페이지로 전환합니다. - 사용자 지정 리소스 정의 페이지에서 FeatureGate를 클릭합니다.
- 사용자 정의 리소스 정의 세부 정보 페이지에서 인스턴스 탭을 클릭합니다.
- 클러스터 기능 게이트를 클릭한 다음 YAML 탭을 클릭합니다.
특정 기능 세트를 추가하려면 클러스터 인스턴스를 편집합니다.
주의클러스터에서
TechPreviewNoUpgrade
기능 세트를 활성화하면 취소할 수 없으며 마이너 버전 업데이트를 방지할 수 없습니다. 프로덕션 클러스터에서 이 기능 세트를 활성화해서는 안 됩니다.FeatureGate 사용자 지정 리소스 샘플
apiVersion: config.openshift.io/v1 kind: FeatureGate metadata: name: cluster 1 # ... spec: featureSet: TechPreviewNoUpgrade 2
변경 사항을 저장하면 새 머신 구성이 생성되면 머신 구성 풀이 업데이트되고 변경 사항이 적용되는 동안 각 노드의 예약이 비활성화됩니다.
검증
노드가 ready 상태로 돌아간 후 노드에서 kubelet.conf
파일을 확인하여 기능 게이트가 활성화되어 있는지 확인할 수 있습니다.
-
웹 콘솔의 관리자 화면에서 컴퓨팅
노드로 이동합니다. - 노드를 선택합니다.
- 노드 세부 정보 페이지에서 터미널을 클릭합니다.
터미널 창에서 root 디렉토리를
/host
로 변경합니다.sh-4.2# chroot /host
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
)가 설치되어 있습니다.
프로세스
기능 세트를 활성화하려면 다음을 수행합니다.
cluster
라는FeatureGate
CR을 편집합니다.$ oc edit featuregate cluster
주의클러스터에서
TechPreviewNoUpgrade
기능 세트를 활성화하면 취소할 수 없으며 마이너 버전 업데이트를 방지할 수 없습니다. 프로덕션 클러스터에서 이 기능 세트를 활성화해서는 안 됩니다.FeatureGate 사용자 지정 리소스 샘플
apiVersion: config.openshift.io/v1 kind: FeatureGate metadata: name: cluster 1 # ... spec: featureSet: TechPreviewNoUpgrade 2
변경 사항을 저장하면 새 머신 구성이 생성되면 머신 구성 풀이 업데이트되고 변경 사항이 적용되는 동안 각 노드의 예약이 비활성화됩니다.
검증
노드가 ready 상태로 돌아간 후 노드에서 kubelet.conf
파일을 확인하여 기능 게이트가 활성화되어 있는지 확인할 수 있습니다.
-
웹 콘솔의 관리자 화면에서 컴퓨팅
노드로 이동합니다. - 노드를 선택합니다.
- 노드 세부 정보 페이지에서 터미널을 클릭합니다.
터미널 창에서 root 디렉토리를
/host
로 변경합니다.sh-4.2# chroot /host
kubelet.conf
파일을 확인합니다.sh-4.2# cat /etc/kubernetes/kubelet.conf
샘플 출력
# ... featureGates: InsightsOperatorPullingSCA: true, LegacyNodeRoleBehavior: false # ...
true
로 나열된 기능은 클러스터에서 활성화됩니다.참고나열된 기능은 OpenShift Container Platform 버전에 따라 다릅니다.