해당 문서의 쿠버네티스 버전: v1.20

Kubernetes v1.20 문서는 더 이상 적극적으로 관리되지 않음. 현재 보고있는 문서는 정적 스냅샷임. 최신 문서를 위해서는, 다음을 참고. 최신 버전.

기능 게이트

이 페이지에는 관리자가 다른 쿠버네티스 컴포넌트에서 지정할 수 있는 다양한 기능 게이트에 대한 개요가 포함되어 있다.

기능의 단계(stage)에 대한 설명은 기능 단계를 참고한다.

개요

기능 게이트는 쿠버네티스 기능을 설명하는 일련의 키=값 쌍이다. 각 쿠버네티스 컴포넌트에서 --feature-gates 커맨드 라인 플래그를 사용하여 이러한 기능을 켜거나 끌 수 있다.

각 쿠버네티스 컴포넌트를 사용하면 해당 컴포넌트와 관련된 기능 게이트 집합을 활성화 또는 비활성화할 수 있다. 모든 컴포넌트에 대한 전체 기능 게이트 집합을 보려면 -h 플래그를 사용한다. kubelet과 같은 컴포넌트의 기능 게이트를 설정하려면, 기능 쌍 목록에 지정된 --feature-gates 플래그를 사용한다.

--feature-gates="...,DynamicKubeletConfig=true"

다음 표는 다른 쿠버네티스 컴포넌트에서 설정할 수 있는 기능 게이트를 요약한 것이다.

알파 또는 베타 기능을 위한 기능 게이트

알파 또는 베타 단계에 있는 기능을 위한 기능 게이트
기능디폴트단계도입종료
APIListChunkingfalse알파1.81.8
APIListChunkingtrue베타1.9
APIPriorityAndFairnessfalse알파1.171.19
APIPriorityAndFairnesstrue베타1.20
APIResponseCompressionfalse알파1.71.15
APIResponseCompressionfalse베타1.16
APIServerIdentityfalse알파1.20
AllowInsecureBackendProxytrue베타1.17
AnyVolumeDataSourcefalse알파1.18
AppArmortrue베타1.4
BalanceAttachedNodeVolumesfalse알파1.11
BoundServiceAccountTokenVolumefalse알파1.13
CPUManagerfalse알파1.81.9
CPUManagertrue베타1.10
CRIContainerLogRotationfalse알파1.101.10
CRIContainerLogRotationtrue베타1.11
CSIInlineVolumefalse알파1.151.15
CSIInlineVolumetrue베타1.16-
CSIMigrationfalse알파1.141.16
CSIMigrationtrue베타1.17
CSIMigrationAWSfalse알파1.14
CSIMigrationAWSfalse베타1.17
CSIMigrationAWSCompletefalse알파1.17
CSIMigrationAzureDiskfalse알파1.151.18
CSIMigrationAzureDiskfalse베타1.19
CSIMigrationAzureDiskCompletefalse알파1.17
CSIMigrationAzureFilefalse알파1.15
CSIMigrationAzureFileCompletefalse알파1.17
CSIMigrationGCEfalse알파1.141.16
CSIMigrationGCEfalse베타1.17
CSIMigrationGCECompletefalse알파1.17
CSIMigrationOpenStackfalse알파1.141.17
CSIMigrationOpenStacktrue베타1.18
CSIMigrationOpenStackCompletefalse알파1.17
CSIMigrationvSpherefalse베타1.19
CSIMigrationvSphereCompletefalse베타1.19
CSIServiceAccountTokenfalse알파1.20
CSIStorageCapacityfalse알파1.19
CSIVolumeFSGroupPolicyfalse알파1.191.19
CSIVolumeFSGroupPolicytrue베타1.20
ConfigurableFSGroupPolicyfalse알파1.181.19
ConfigurableFSGroupPolicytrue베타1.20
CronJobControllerV2false알파1.20
CustomCPUCFSQuotaPeriodfalse알파1.12
DefaultPodTopologySpreadfalse알파1.191.19
DefaultPodTopologySpreadtrue베타1.20
DevicePluginsfalse알파1.81.9
DevicePluginstrue베타1.10
DisableAcceleratorUsageMetricsfalse알파1.191.19
DisableAcceleratorUsageMetricstrue베타1.20
DownwardAPIHugePagesfalse알파1.20
DynamicKubeletConfigfalse알파1.41.10
DynamicKubeletConfigtrue베타1.11
EfficientWatchResumptionfalse알파1.20
EndpointSlicefalse알파1.161.16
EndpointSlicefalse베타1.17
EndpointSlicetrue베타1.18
EndpointSliceNodeNamefalse알파1.20
EndpointSliceProxyingfalse알파1.181.18
EndpointSliceProxyingtrue베타1.19
EndpointSliceTerminatingConditionfalse알파1.20
EphemeralContainersfalse알파1.16
ExpandCSIVolumesfalse알파1.141.15
ExpandCSIVolumestrue베타1.16
ExpandInUsePersistentVolumesfalse알파1.111.14
ExpandInUsePersistentVolumestrue베타1.15
ExpandPersistentVolumesfalse알파1.81.10
ExpandPersistentVolumestrue베타1.11
ExperimentalHostUserNamespaceDefaultingfalse베타1.5
GenericEphemeralVolumefalse알파1.19
GracefulNodeShutdownfalse알파1.20
HPAContainerMetricsfalse알파1.20
HPAScaleToZerofalse알파1.16
HugePageStorageMediumSizefalse알파1.181.18
HugePageStorageMediumSizetrue베타1.19
IPv6DualStackfalse알파1.15
ImmutableEphemeralVolumesfalse알파1.181.18
ImmutableEphemeralVolumestrue베타1.19
KubeletCredentialProvidersfalse알파1.20
KubeletPodResourcestrue알파1.131.14
KubeletPodResourcestrue베타1.15
LegacyNodeRoleBehaviorfalse알파1.161.18
LegacyNodeRoleBehaviortrueTrue1.19
LocalStorageCapacityIsolationfalse알파1.71.9
LocalStorageCapacityIsolationtrue베타1.10
LocalStorageCapacityIsolationFSQuotaMonitoringfalse알파1.15
MixedProtocolLBServicefalse알파1.20
NodeDisruptionExclusionfalse알파1.161.18
NodeDisruptionExclusiontrue베타1.19
NonPreemptingPriorityfalse알파1.151.18
NonPreemptingPrioritytrue베타1.19
PodDisruptionBudgetfalse알파1.31.4
PodDisruptionBudgettrue베타1.5
PodOverheadfalse알파1.161.17
PodOverheadtrue베타1.18
ProcMountTypefalse알파1.12
QOSReservedfalse알파1.11
RemainingItemCountfalse알파1.15
RemoveSelfLinkfalse알파1.161.19
RemoveSelfLinktrue베타1.20
RootCAConfigMapfalse알파1.131.19
RootCAConfigMaptrue베타1.20
RotateKubeletServerCertificatefalse알파1.71.11
RotateKubeletServerCertificatetrue베타1.12
RunAsGrouptrue베타1.14
SCTPSupportfalse알파1.121.18
SCTPSupporttrue베타1.19
ServerSideApplyfalse알파1.141.15
ServerSideApplytrue베타1.16
ServiceAccountIssuerDiscoveryfalse알파1.181.19
ServiceAccountIssuerDiscoverytrue베타1.20
ServiceLBNodePortControlfalse알파1.20
ServiceNodeExclusionfalse알파1.81.18
ServiceNodeExclusiontrue베타1.19
ServiceTopologyfalse알파1.17
SetHostnameAsFQDNfalse알파1.191.19
SetHostnameAsFQDNtrue베타1.20
SizeMemoryBackedVolumesfalse알파1.20
StorageVersionAPIfalse알파1.20
StorageVersionHashfalse알파1.141.14
StorageVersionHashtrue베타1.15
Sysctlstrue베타1.11
TTLAfterFinishedfalse알파1.12
TopologyManagerfalse알파1.161.17
TopologyManagertrue베타1.18
ValidateProxyRedirectsfalse알파1.121.13
ValidateProxyRedirectstrue베타1.14
WarningHeaderstrue베타1.19
WinDSRfalse알파1.14
WinOverlayfalse알파1.141.19
WinOverlaytrue베타1.20
WindowsEndpointSliceProxyingfalse알파1.19

GA 또는 사용 중단된 기능을 위한 기능 게이트

GA 또는 사용 중단 기능을 위한 기능 게이트
기능디폴트단계도입종료
Acceleratorsfalse알파1.61.10
Accelerators-사용중단1.11-
AdvancedAuditingfalse알파1.71.7
AdvancedAuditingtrue베타1.81.11
AdvancedAuditingtrueGA1.12-
AffinityInAnnotationsfalse알파1.61.7
AffinityInAnnotations-사용중단1.8-
AllowExtTrafficLocalEndpointsfalse베타1.41.6
AllowExtTrafficLocalEndpointstrueGA1.7-
BlockVolumefalse알파1.91.12
BlockVolumetrue베타1.131.17
BlockVolumetrueGA1.18-
CSIBlockVolumefalse알파1.111.13
CSIBlockVolumetrue베타1.141.17
CSIBlockVolumetrueGA1.18-
CSIDriverRegistryfalse알파1.121.13
CSIDriverRegistrytrue베타1.141.17
CSIDriverRegistrytrueGA1.18
CSINodeInfofalse알파1.121.13
CSINodeInfotrue베타1.141.16
CSINodeInfotrueGA1.17
AttachVolumeLimitfalse알파1.111.11
AttachVolumeLimittrue베타1.121.16
AttachVolumeLimittrueGA1.17-
CSIPersistentVolumefalse알파1.91.9
CSIPersistentVolumetrue베타1.101.12
CSIPersistentVolumetrueGA1.13-
CustomPodDNSfalse알파1.91.9
CustomPodDNStrue베타1.101.13
CustomPodDNStrueGA1.14-
CustomResourceDefaultingfalse알파1.151.15
CustomResourceDefaultingtrue베타1.161.16
CustomResourceDefaultingtrueGA1.17-
CustomResourcePublishOpenAPIfalse알파1.141.14
CustomResourcePublishOpenAPItrue베타1.151.15
CustomResourcePublishOpenAPItrueGA1.16-
CustomResourceSubresourcesfalse알파1.101.10
CustomResourceSubresourcestrue베타1.111.15
CustomResourceSubresourcestrueGA1.16-
CustomResourceValidationfalse알파1.81.8
CustomResourceValidationtrue베타1.91.15
CustomResourceValidationtrueGA1.16-
CustomResourceWebhookConversionfalse알파1.131.14
CustomResourceWebhookConversiontrue베타1.151.15
CustomResourceWebhookConversiontrueGA1.16-
DryRunfalse알파1.121.12
DryRuntrue베타1.131.18
DryRuntrueGA1.19-
DynamicAuditingfalse알파1.131.18
DynamicAuditing-사용중단1.19-
DynamicProvisioningSchedulingfalse알파1.111.11
DynamicProvisioningScheduling-사용중단1.12-
DynamicVolumeProvisioningtrue알파1.31.7
DynamicVolumeProvisioningtrueGA1.8-
EnableAggregatedDiscoveryTimeouttrue사용중단1.16-
EnableEquivalenceClassCachefalse알파1.81.14
EnableEquivalenceClassCache-사용중단1.15-
ExperimentalCriticalPodAnnotationfalse알파1.51.12
ExperimentalCriticalPodAnnotationfalse사용중단1.13-
EvenPodsSpreadfalse알파1.161.17
EvenPodsSpreadtrue베타1.181.18
EvenPodsSpreadtrueGA1.19-
ExecProbeTimeouttrueGA1.20-
GCERegionalPersistentDisktrue베타1.101.12
GCERegionalPersistentDisktrueGA1.13-
HugePagesfalse알파1.81.9
HugePagestrue베타1.101.13
HugePagestrueGA1.14-
HyperVContainerfalse알파1.101.19
HyperVContainerfalse사용중단1.20-
Initializersfalse알파1.71.13
Initializers-사용중단1.14-
KubeletConfigFilefalse알파1.81.9
KubeletConfigFile-사용중단1.10-
KubeletPluginsWatcherfalse알파1.111.11
KubeletPluginsWatchertrue베타1.121.12
KubeletPluginsWatchertrueGA1.13-
KubeletPodResourcesfalse알파1.131.14
KubeletPodResourcestrue베타1.15
KubeletPodResourcestrueGA1.20
MountContainersfalse알파1.91.16
MountContainersfalse사용중단1.17-
MountPropagationfalse알파1.81.9
MountPropagationtrue베타1.101.11
MountPropagationtrueGA1.12-
NodeLeasefalse알파1.121.13
NodeLeasetrue베타1.141.16
NodeLeasetrueGA1.17-
PVCProtectionfalse알파1.91.9
PVCProtection-사용중단1.10-
PersistentLocalVolumesfalse알파1.71.9
PersistentLocalVolumestrue베타1.101.13
PersistentLocalVolumestrueGA1.14-
PodPriorityfalse알파1.81.10
PodPrioritytrue베타1.111.13
PodPrioritytrueGA1.14-
PodReadinessGatesfalse알파1.111.11
PodReadinessGatestrue베타1.121.13
PodReadinessGatestrueGA1.14-
PodShareProcessNamespacefalse알파1.101.11
PodShareProcessNamespacetrue베타1.121.16
PodShareProcessNamespacetrueGA1.17-
RequestManagementfalse알파1.151.16
ResourceLimitsPriorityFunctionfalse알파1.91.18
ResourceLimitsPriorityFunction-사용중단1.19-
ResourceQuotaScopeSelectorsfalse알파1.111.11
ResourceQuotaScopeSelectorstrue베타1.121.16
ResourceQuotaScopeSelectorstrueGA1.17-
RotateKubeletClientCertificatetrue베타1.81.18
RotateKubeletClientCertificatetrueGA1.19-
RuntimeClassfalse알파1.121.13
RuntimeClasstrue베타1.141.19
RuntimeClasstrueGA1.20-
ScheduleDaemonSetPodsfalse알파1.111.11
ScheduleDaemonSetPodstrue베타1.121.16
ScheduleDaemonSetPodstrueGA1.17-
SCTPSupportfalse알파1.121.18
SCTPSupporttrue베타1.191.19
SCTPSupporttrueGA1.20-
ServiceAppProtocolfalse알파1.181.18
ServiceAppProtocoltrue베타1.19
ServiceAppProtocoltrueGA1.20-
ServiceLoadBalancerFinalizerfalse알파1.151.15
ServiceLoadBalancerFinalizertrue베타1.161.16
ServiceLoadBalancerFinalizertrueGA1.17-
StartupProbefalse알파1.161.17
StartupProbetrue베타1.181.19
StartupProbetrueGA1.20-
StorageObjectInUseProtectiontrue베타1.101.10
StorageObjectInUseProtectiontrueGA1.11-
StreamingProxyRedirectsfalse베타1.51.5
StreamingProxyRedirectstrue베타1.61.18
StreamingProxyRedirects-사용중단1.19-
SupportIPVSProxyModefalse알파1.81.8
SupportIPVSProxyModefalse베타1.91.9
SupportIPVSProxyModetrue베타1.101.10
SupportIPVSProxyModetrueGA1.11-
SupportNodePidsLimitfalse알파1.141.14
SupportNodePidsLimittrue베타1.151.19
SupportNodePidsLimittrueGA1.20-
SupportPodPidsLimitfalse알파1.101.13
SupportPodPidsLimittrue베타1.141.19
SupportPodPidsLimittrueGA1.20-
TaintBasedEvictionsfalse알파1.61.12
TaintBasedEvictionstrue베타1.131.17
TaintBasedEvictionstrueGA1.18-
TaintNodesByConditionfalse알파1.81.11
TaintNodesByConditiontrue베타1.121.16
TaintNodesByConditiontrueGA1.17-
TokenRequestfalse알파1.101.11
TokenRequesttrue베타1.121.19
TokenRequesttrueGA1.20-
TokenRequestProjectionfalse알파1.111.11
TokenRequestProjectiontrue베타1.121.19
TokenRequestProjectiontrueGA1.20-
VolumeSnapshotDataSourcefalse알파1.121.16
VolumeSnapshotDataSourcetrue베타1.171.19
VolumeSnapshotDataSourcetrueGA1.20-
VolumePVCDataSourcefalse알파1.151.15
VolumePVCDataSourcetrue베타1.161.17
VolumePVCDataSourcetrueGA1.18-
VolumeSchedulingfalse알파1.91.9
VolumeSchedulingtrue베타1.101.12
VolumeSchedulingtrueGA1.13-
VolumeSubpathtrueGA1.10-
VolumeSubpathEnvExpansionfalse알파1.141.14
VolumeSubpathEnvExpansiontrue베타1.151.16
VolumeSubpathEnvExpansiontrueGA1.17-
WatchBookmarkfalse알파1.151.15
WatchBookmarktrue베타1.161.16
WatchBookmarktrueGA1.17-
WindowsGMSAfalse알파1.141.15
WindowsGMSAtrue베타1.161.17
WindowsGMSAtrueGA1.18-
WindowsRunAsUserNamefalse알파1.161.16
WindowsRunAsUserNametrue베타1.171.17
WindowsRunAsUserNametrueGA1.18-

기능 사용

기능 단계

기능은 알파, 베타 또는 GA 단계일 수 있다. 알파 기능은 다음을 의미한다.

  • 기본적으로 비활성화되어 있다.
  • 버그가 있을 수 있다. 이 기능을 사용하면 버그에 노출될 수 있다.
  • 기능에 대한 지원은 사전 통지없이 언제든지 중단될 수 있다.
  • API는 이후 소프트웨어 릴리스에서 예고없이 호환되지 않는 방식으로 변경될 수 있다.
  • 버그의 위험이 증가하고 장기 지원이 부족하여, 단기 테스트 클러스터에서만 사용하는 것이 좋다.

베타 기능은 다음을 의미한다.

  • 기본적으로 활성화되어 있다.
  • 이 기능은 잘 테스트되었다. 이 기능을 활성화하면 안전한 것으로 간주된다.
  • 세부 내용은 변경될 수 있지만, 전체 기능에 대한 지원은 중단되지 않는다.
  • 오브젝트의 스키마 및/또는 시맨틱은 후속 베타 또는 안정 릴리스에서 호환되지 않는 방식으로 변경될 수 있다. 이러한 상황이 발생하면, 다음 버전으로 마이그레이션하기 위한 지침을 제공한다. API 오브젝트를 삭제, 편집 및 재작성해야 할 수도 있다. 편집 과정에서 약간의 생각이 필요할 수 있다. 해당 기능에 의존하는 애플리케이션의 경우 다운타임이 필요할 수 있다.
  • 후속 릴리스에서 호환되지 않는 변경이 발생할 수 있으므로 업무상 중요하지 않은(non-business-critical) 용도로만 권장한다. 독립적으로 업그레이드할 수 있는 여러 클러스터가 있는 경우, 이 제한을 완화할 수 있다.
참고: 베타 기능을 사용해 보고 의견을 보내주길 바란다! 베타 기간이 종료된 후에는, 더 많은 변경을 하는 것이 실용적이지 않을 수 있다.

GA(General Availability) 기능은 안정 기능이라고도 한다. 이 의미는 다음과 같다.

  • 이 기능은 항상 활성화되어 있다. 비활성화할 수 없다.
  • 해당 기능 게이트는 더 이상 필요하지 않다.
  • 여러 후속 버전의 릴리스된 소프트웨어에 안정적인 기능의 버전이 포함된다.

기능 게이트 목록

각 기능 게이트는 특정 기능을 활성화/비활성화하도록 설계되었다.

  • APIListChunking: API 클라이언트가 API 서버에서 (LIST 또는 GET) 리소스를 청크(chunks)로 검색할 수 있도록 한다.
  • APIPriorityAndFairness: 각 서버의 우선 순위와 공정성을 통해 동시 요청을 관리할 수 있다. (RequestManagement 에서 이름이 변경됨)
  • APIResponseCompression: LIST 또는 GET 요청에 대한 API 응답을 압축한다.
  • APIServerIdentity: 클러스터의 각 API 서버에 ID를 할당한다.
  • Accelerators: 도커 사용 시 Nvidia GPU 지원 활성화한다.
  • AdvancedAuditing: 고급 감사 기능을 활성화한다.
  • AffinityInAnnotations(사용 중단됨): 파드 어피니티 또는 안티-어피니티 설정을 활성화한다.
  • AllowExtTrafficLocalEndpoints: 서비스가 외부 요청을 노드의 로컬 엔드포인트로 라우팅할 수 있도록 한다.
  • AllowInsecureBackendProxy: 사용자가 파드 로그 요청에서 kubelet의 TLS 확인을 건너뛸 수 있도록 한다.
  • AnyVolumeDataSource: PVCDataSource 로 모든 사용자 정의 리소스 사용을 활성화한다.
  • AppArmor: 도커를 사용할 때 리눅스 노드에서 AppArmor 기반의 필수 접근 제어를 활성화한다. 자세한 내용은 AppArmor 튜토리얼을 참고한다.
  • AttachVolumeLimit: 볼륨 플러그인이 노드에 연결될 수 있는 볼륨 수에 대한 제한을 보고하도록 한다. 자세한 내용은 동적 볼륨 제한을 참고한다.
  • BalanceAttachedNodeVolumes: 스케줄링 시 균형 잡힌 리소스 할당을 위해 고려할 노드의 볼륨 수를 포함한다. 스케줄러가 결정을 내리는 동안 CPU, 메모리 사용률 및 볼륨 수가 더 가까운 노드가 선호된다.
  • BlockVolume: 파드에서 원시 블록 장치의 정의와 사용을 활성화한다. 자세한 내용은 원시 블록 볼륨 지원을 참고한다.
  • BoundServiceAccountTokenVolume: ServiceAccountTokenVolumeProjection으로 구성된 프로젝션 볼륨을 사용하도록 서비스어카운트 볼륨을 마이그레이션한다. 클러스터 관리자는 serviceaccount_stale_tokens_total 메트릭을 사용하여 확장 토큰에 의존하는 워크로드를 모니터링 할 수 있다. 이러한 워크로드가 없는 경우 --service-account-extend-token-expiration=false 플래그로 kube-apiserver를 시작하여 확장 토큰 기능을 끈다. 자세한 내용은 바운드 서비스 계정 토큰을 확인한다.
  • CPUManager: 컨테이너 수준의 CPU 어피니티 지원을 활성화한다. CPU 관리 정책을 참고한다.
  • CRIContainerLogRotation: cri 컨테이너 런타임에 컨테이너 로그 로테이션을 활성화한다.
  • CSIBlockVolume: 외부 CSI 볼륨 드라이버가 블록 스토리지를 지원할 수 있게 한다. 자세한 내용은 csi 원시 블록 볼륨 지원 문서를 참고한다.
  • CSIDriverRegistry: csi.storage.k8s.io에서 CSIDriver API 오브젝트와 관련된 모든 로직을 활성화한다.
  • CSIInlineVolume: 파드에 대한 CSI 인라인 볼륨 지원을 활성화한다.
  • CSIMigration: shim 및 변환 로직을 통해 볼륨 작업을 인-트리 플러그인에서 사전 설치된 해당 CSI 플러그인으로 라우팅할 수 있다.
  • CSIMigrationAWS: shim 및 변환 로직을 통해 볼륨 작업을 AWS-EBS 인-트리 플러그인에서 EBS CSI 플러그인으로 라우팅할 수 있다. 노드에 EBS CSI 플러그인이 설치와 구성이 되어 있지 않은 경우 인-트리 EBS 플러그인으로 폴백(falling back)을 지원한다. CSIMigration 기능 플래그가 필요하다.
  • CSIMigrationAWSComplete: kubelet 및 볼륨 컨트롤러에서 EBS 인-트리 플러그인 등록을 중지하고 shim 및 변환 로직을 사용하여 볼륨 작업을 AWS-EBS 인-트리 플러그인에서 EBS CSI 플러그인으로 라우팅할 수 있다. 클러스터의 모든 노드에 CSIMigration과 CSIMigrationAWS 기능 플래그가 활성화되고 EBS CSI 플러그인이 설치 및 구성이 되어 있어야 한다.
  • CSIMigrationAzureDisk: shim 및 변환 로직을 통해 볼륨 작업을 Azure-Disk 인-트리 플러그인에서 AzureDisk CSI 플러그인으로 라우팅할 수 있다. 노드에 AzureDisk CSI 플러그인이 설치와 구성이 되어 있지 않은 경우 인-트리 AzureDisk 플러그인으로 폴백을 지원한다. CSIMigration 기능 플래그가 필요하다.
  • CSIMigrationAzureDiskComplete: kubelet 및 볼륨 컨트롤러에서 Azure-Disk 인-트리 플러그인 등록을 중지하고 shim 및 변환 로직을 사용하여 볼륨 작업을 Azure-Disk 인-트리 플러그인에서 AzureDisk CSI 플러그인으로 라우팅할 수 있다. 클러스터의 모든 노드에 CSIMigration과 CSIMigrationAzureDisk 기능 플래그가 활성화되고 AzureDisk CSI 플러그인이 설치 및 구성이 되어 있어야 한다.
  • CSIMigrationAzureFile: shim 및 변환 로직을 통해 볼륨 작업을 Azure-File 인-트리 플러그인에서 AzureFile CSI 플러그인으로 라우팅할 수 있다. 노드에 AzureFile CSI 플러그인이 설치 및 구성이 되어 있지 않은 경우 인-트리 AzureFile 플러그인으로 폴백을 지원한다. CSIMigration 기능 플래그가 필요하다.
  • CSIMigrationAzureFileComplete: kubelet 및 볼륨 컨트롤러에서 Azure 파일 인-트리 플러그인 등록을 중지하고 shim 및 변환 로직을 통해 볼륨 작업을 Azure 파일 인-트리 플러그인에서 AzureFile CSI 플러그인으로 라우팅할 수 있다. 클러스터의 모든 노드에 CSIMigration과 CSIMigrationAzureFile 기능 플래그가 활성화되고 AzureFile CSI 플러그인이 설치 및 구성이 되어 있어야 한다.
  • CSIMigrationGCE: shim 및 변환 로직을 통해 볼륨 작업을 GCE-PD 인-트리 플러그인에서 PD CSI 플러그인으로 라우팅할 수 있다. 노드에 PD CSI 플러그인이 설치 및 구성이 되어 있지 않은 경우 인-트리 GCE 플러그인으로 폴백을 지원한다. CSIMigration 기능 플래그가 필요하다.
  • CSIMigrationGCEComplete: kubelet 및 볼륨 컨트롤러에서 GCE-PD 인-트리 플러그인 등록을 중지하고 shim 및 변환 로직을 통해 볼륨 작업을 GCE-PD 인-트리 플러그인에서 PD CSI 플러그인으로 라우팅할 수 있다. CSIMigration과 CSIMigrationGCE 기능 플래그가 활성화되고 PD CSI 플러그인이 클러스터의 모든 노드에 설치 및 구성이 되어 있어야 한다.
  • CSIMigrationOpenStack: shim 및 변환 로직을 통해 볼륨 작업을 Cinder 인-트리 플러그인에서 Cinder CSI 플러그인으로 라우팅할 수 있다. 노드에 Cinder CSI 플러그인이 설치 및 구성이 되어 있지 않은 경우 인-트리 Cinder 플러그인으로 폴백을 지원한다. CSIMigration 기능 플래그가 필요하다.
  • CSIMigrationOpenStackComplete: kubelet 및 볼륨 컨트롤러에서 Cinder 인-트리 플러그인 등록을 중지하고 shim 및 변환 로직이 Cinder 인-트리 플러그인에서 Cinder CSI 플러그인으로 볼륨 작업을 라우팅할 수 있도록 한다. 클러스터의 모든 노드에 CSIMigration과 CSIMigrationOpenStack 기능 플래그가 활성화되고 Cinder CSI 플러그인이 설치 및 구성이 되어 있어야 한다.
  • CSIMigrationvSphere: vSphere 인-트리 플러그인에서 vSphere CSI 플러그인으로 볼륨 작업을 라우팅하는 shim 및 변환 로직을 사용한다. 노드에 vSphere CSI 플러그인이 설치 및 구성이 되어 있지 않은 경우 인-트리 vSphere 플러그인으로 폴백을 지원한다. CSIMigration 기능 플래그가 필요하다.
  • CSIMigrationvSphereComplete: kubelet 및 볼륨 컨트롤러에서 vSphere 인-트리 플러그인 등록을 중지하고 shim 및 변환 로직을 활성화하여 vSphere 인-트리 플러그인에서 vSphere CSI 플러그인으로 볼륨 작업을 라우팅할 수 있도록 한다. CSIMigration 및 CSIMigrationvSphere 기능 플래그가 활성화되고 vSphere CSI 플러그인이 클러스터의 모든 노드에 설치 및 구성이 되어 있어야 한다.
  • CSINodeInfo: csi.storage.k8s.io에서 CSINodeInfo API 오브젝트와 관련된 모든 로직을 활성화한다.
  • CSIPersistentVolume: CSI (Container Storage Interface) 호환 볼륨 플러그인을 통해 프로비저닝된 볼륨을 감지하고 마운트할 수 있다.
  • CSIServiceAccountToken : 볼륨을 마운트하는 파드의 서비스 계정 토큰을 받을 수 있도록 CSI 드라이버를 활성화한다. 토큰 요청을 참조한다.
  • CSIStorageCapacity: CSI 드라이버가 스토리지 용량 정보를 게시하고 쿠버네티스 스케줄러가 파드를 스케줄할 때 해당 정보를 사용하도록 한다. 스토리지 용량을 참고한다. 자세한 내용은 csi 볼륨 유형 문서를 확인한다.
  • CSIVolumeFSGroupPolicy: CSI드라이버가 fsGroupPolicy 필드를 사용하도록 허용한다. 이 필드는 CSI드라이버에서 생성된 볼륨이 마운트될 때 볼륨 소유권과 권한 수정을 지원하는지 여부를 제어한다.
  • ConfigurableFSGroupPolicy: 사용자가 파드에 볼륨을 마운트할 때 fsGroups에 대한 볼륨 권한 변경 정책을 구성할 수 있다. 자세한 내용은 파드의 볼륨 권한 및 소유권 변경 정책 구성을 참고한다.
  • CronJobControllerV2: 크론잡(CronJob) 컨트롤러의 대체 구현을 사용한다. 그렇지 않으면, 동일한 컨트롤러의 버전 1이 선택된다. 버전 2 컨트롤러는 실험적인 성능 향상을 제공한다.
  • CustomCPUCFSQuotaPeriod: kubelet config에서 cpuCFSQuotaPeriod 를 노드가 변경할 수 있도록 한다.
  • CustomPodDNS: dnsConfig 속성을 사용하여 파드의 DNS 설정을 사용자 정의할 수 있다. 자세한 내용은 파드의 DNS 설정을 확인한다.
  • CustomResourceDefaulting: OpenAPI v3 유효성 검사 스키마에서 기본값에 대한 CRD 지원을 활성화한다.
  • CustomResourcePublishOpenAPI: CRD OpenAPI 사양을 게시할 수 있다.
  • CustomResourceSubresources: 커스텀리소스데피니션에서 생성된 리소스에서 /status/scale 하위 리소스를 활성화한다.
  • CustomResourceValidation: 커스텀리소스데피니션에서 생성된 리소스에서 스키마 기반 유효성 검사를 활성화한다.
  • CustomResourceWebhookConversion: 커스텀리소스데피니션에서 생성된 리소스에 대해 웹 훅 기반의 변환을 활성화한다.
  • DefaultPodTopologySpread: PodTopologySpread 스케줄링 플러그인을 사용하여 기본 분배를 수행한다.
  • DevicePlugins: 노드에서 장치 플러그인 기반 리소스 프로비저닝을 활성화한다.
  • DisableAcceleratorUsageMetrics: kubelet이 수집한 액셀러레이터 지표 비활성화.
  • DownwardAPIHugePages: 다운워드 API에서 hugepages 사용을 활성화한다.
  • DryRun: 서버 측의 dry run 요청을 요청을 활성화하여 커밋하지 않고 유효성 검사, 병합 및 변화를 테스트할 수 있다.
  • DynamicAuditing(사용 중단됨): v1.19 이전의 버전에서 동적 감사를 활성화하는 데 사용된다.
  • DynamicKubeletConfig: kubelet의 동적 구성을 활성화한다. kubelet 재구성을 참고한다.
  • DynamicProvisioningScheduling: 볼륨 토폴로지를 인식하고 PV 프로비저닝을 처리하도록 기본 스케줄러를 확장한다. 이 기능은 v1.12의 VolumeScheduling 기능으로 대체되었다.
  • DynamicVolumeProvisioning(사용 중단됨): 파드에 퍼시스턴트 볼륨의 동적 프로비저닝을 활성화한다.
  • EfficientWatchResumption: 스토리지에서 생성된 북마크(진행 알림) 이벤트를 사용자에게 전달할 수 있다. 이것은 감시 작업에만 적용된다.
  • EnableAggregatedDiscoveryTimeout (사용 중단됨): 수집된 검색 호출에서 5초 시간 초과를 활성화한다.
  • EnableEquivalenceClassCache: 스케줄러가 파드를 스케줄링할 때 노드의 동등성을 캐시할 수 있게 한다.
  • EndpointSlice: 보다 스케일링 가능하고 확장 가능한 네트워크 엔드포인트에 대한 엔드포인트슬라이스(EndpointSlices)를 활성화한다. 엔드포인트슬라이스 활성화를 참고한다.
  • EndpointSliceNodeName : 엔드포인트슬라이스 nodeName 필드를 활성화한다.
  • EndpointSliceProxying: 활성화되면, 리눅스에서 실행되는 kube-proxy는 엔드포인트 대신 엔드포인트슬라이스를 기본 데이터 소스로 사용하여 확장성과 성능을 향상시킨다. 엔드포인트 슬라이스 활성화를 참고한다.
  • EndpointSliceTerminatingCondition: 엔드포인트슬라이스 terminatingserving 조건 필드를 활성화한다.
  • EphemeralContainers: 파드를 실행하기 위한 임시 컨테이너를 추가할 수 있다.
  • EvenPodsSpread: 토폴로지 도메인 간에 파드를 균등하게 스케줄링할 수 있다. 파드 토폴로지 분배 제약 조건을 참고한다.
  • ExecProbeTimeout : kubelet이 exec 프로브 시간 초과를 준수하는지 확인한다. 이 기능 게이트는 기존 워크로드가 쿠버네티스가 exec 프로브 제한 시간을 무시한 현재 수정된 결함에 의존하는 경우 존재한다. 준비성 프로브를 참조한다.
  • ExpandCSIVolumes: CSI 볼륨 확장을 활성화한다.
  • ExpandInUsePersistentVolumes: 사용 중인 PVC를 확장할 수 있다. 사용 중인 퍼시스턴트볼륨클레임 크기 조정을 참고한다.
  • ExpandPersistentVolumes: 퍼시스턴트 볼륨 확장을 활성화한다. 퍼시스턴트 볼륨 클레임 확장을 참고한다.
  • ExperimentalCriticalPodAnnotation: 특정 파드에 critical 로 어노테이션을 달아서 스케줄링이 보장되도록 한다. 이 기능은 v1.13부터 파드 우선 순위 및 선점으로 인해 사용 중단되었다.
  • ExperimentalHostUserNamespaceDefaultingGate: 사용자 네임스페이스를 호스트로 기본 활성화한다. 이것은 다른 호스트 네임스페이스, 호스트 마운트, 권한이 있는 컨테이너 또는 특정 비-네임스페이스(non-namespaced) 기능(예: MKNODE, SYS_MODULE 등)을 사용하는 컨테이너를 위한 것이다. 도커 데몬에서 사용자 네임스페이스 재 매핑이 활성화된 경우에만 활성화해야 한다.
  • GCERegionalPersistentDisk: GCE에서 지역 PD 기능을 활성화한다.
  • GenericEphemeralVolume: 일반 볼륨의 모든 기능을 지원하는 임시, 인라인 볼륨을 활성화한다(타사 스토리지 공급 업체, 스토리지 용량 추적, 스냅샷으로부터 복원 등에서 제공할 수 있음). 임시 볼륨을 참고한다.
  • GracefulNodeShutdown : kubelet에서 정상 종료를 지원한다. 시스템 종료 중에 kubelet은 종료 이벤트를 감지하고 노드에서 실행 중인 파드를 정상적으로 종료하려고 시도한다. 자세한 내용은 Graceful Node Shutdown을 참조한다.
  • HPAContainerMetrics: HorizontalPodAutoscaler를 활성화하여 대상 파드의 개별 컨테이너 메트릭을 기반으로 확장한다.
  • HPAScaleToZero: 사용자 정의 또는 외부 메트릭을 사용할 때 HorizontalPodAutoscaler 리소스에 대해 minReplicas 를 0으로 설정한다.
  • HugePages: 사전 할당된 huge page의 할당 및 사용을 활성화한다.
  • HugePageStorageMediumSize: 사전 할당된 huge page의 여러 크기를 지원한다.
  • HyperVContainer: 윈도우 컨테이너를 위한 Hyper-V 격리 기능을 활성화한다.
  • IPv6DualStack: IPv6에 대한 듀얼 스택 지원을 활성화한다.
  • ImmutableEphemeralVolumes: 안정성과 성능 향상을 위해 개별 시크릿(Secret)과 컨피그맵(ConfigMap)을 변경할 수 없는(immutable) 것으로 표시할 수 있다.
  • KubeletConfigFile: 구성 파일을 사용하여 지정된 파일에서 kubelet 구성을 로드할 수 있다. 자세한 내용은 구성 파일을 통해 kubelet 파라미터 설정을 참고한다.
  • KubeletCredentialProviders: 이미지 풀 자격 증명에 대해 kubelet exec 자격 증명 공급자를 활성화한다.
  • KubeletPluginsWatcher: kubelet이 CSI 볼륨 드라이버와 같은 플러그인을 검색할 수 있도록 프로브 기반 플러그인 감시자(watcher) 유틸리티를 사용한다.
  • KubeletPodResources: kubelet의 파드 리소스 gPRC 엔드포인트를 활성화한다. 자세한 내용은 장치 모니터링 지원을 참고한다.
  • LegacyNodeRoleBehavior: 비활성화되면, 서비스 로드 밸런서 및 노드 중단의 레거시 동작은 NodeDisruptionExclusionServiceNodeExclusion 에 의해 제공된 기능별 레이블을 대신하여 node-role.kubernetes.io/master 레이블을 무시한다.
  • LocalStorageCapacityIsolation: 로컬 임시 스토리지emptyDir 볼륨sizeLimit 속성을 사용할 수 있게 한다.
  • LocalStorageCapacityIsolationFSQuotaMonitoring: 로컬 임시 스토리지LocalStorageCapacityIsolation 이 활성화되고 emptyDir 볼륨의 백업 파일시스템이 프로젝트 쿼터를 지원하고 활성화된 경우, 파일시스템 사용보다는 프로젝트 쿼터를 사용하여 emptyDir 볼륨 스토리지 사용을 모니터링하여 성능과 정확성을 향상시킨다.
  • MixedProtocolLBService: 동일한 로드밸런서 유형 서비스 인스턴스에서 다른 프로토콜 사용을 활성화한다.
  • MountContainers (사용 중단됨): 호스트의 유틸리티 컨테이너를 볼륨 마운터로 사용할 수 있다.
  • MountPropagation: 한 컨테이너에서 다른 컨테이너 또는 파드로 마운트된 볼륨을 공유할 수 있다. 자세한 내용은 마운트 전파(propagation)을 참고한다.
  • NodeDisruptionExclusion: 영역(zone) 장애 시 노드가 제외되지 않도록 노드 레이블 node.kubernetes.io/exclude-disruption 사용을 활성화한다.
  • NodeLease: 새로운 리스(Lease) API가 노드 상태 신호로 사용될 수 있는 노드 하트비트(heartbeats)를 보고할 수 있게 한다.
  • NonPreemptingPriority: 프라이어리티클래스(PriorityClass)와 파드에 preemptionPolicy 필드를 활성화한다.
  • PVCProtection: 파드에서 사용 중일 때 퍼시스턴트볼륨클레임(PVC)이 삭제되지 않도록 한다.
  • PersistentLocalVolumes: 파드에서 local 볼륨 유형의 사용을 활성화한다. local 볼륨을 요청하는 경우 파드 어피니티를 지정해야 한다.
  • PodDisruptionBudget: PodDisruptionBudget 기능을 활성화한다.
  • PodOverhead: 파드 오버헤드를 판단하기 위해 파드오버헤드(PodOverhead) 기능을 활성화한다.
  • PodPriority: 우선 순위를 기반으로 파드의 스케줄링 취소와 선점을 활성화한다.
  • PodReadinessGates: 파드 준비성 평가를 확장하기 위해 PodReadinessGate 필드 설정을 활성화한다. 자세한 내용은 파드의 준비성 게이트를 참고한다.
  • PodShareProcessNamespace: 파드에서 실행되는 컨테이너 간에 단일 프로세스 네임스페이스를 공유하기 위해 파드에서 shareProcessNamespace 설정을 활성화한다. 자세한 내용은 파드의 컨테이너 간 프로세스 네임스페이스 공유에서 확인할 수 있다.
  • ProcMountType: SecurityContext의 procMount 필드를 설정하여 컨테이너의 proc 타입의 마운트를 제어할 수 있다.
  • QOSReserved: QoS 수준에서 리소스 예약을 허용하여 낮은 QoS 수준의 파드가 더 높은 QoS 수준에서 요청된 리소스로 파열되는 것을 방지한다 (현재 메모리만 해당).
  • RemainingItemCount: API 서버가 청크(chunking) 목록 요청에 대한 응답에서 남은 항목 수를 표시하도록 허용한다.
  • RemoveSelfLink: ObjectMeta 및 ListMeta에서 selfLink 를 사용하지 않고 제거한다.
  • ResourceLimitsPriorityFunction (사용 중단됨): 입력 파드의 CPU 및 메모리 한도 중 하나 이상을 만족하는 노드에 가능한 최저 점수 1을 할당하는 스케줄러 우선 순위 기능을 활성화한다. 의도는 동일한 점수를 가진 노드 사이의 관계를 끊는 것이다.
  • ResourceQuotaScopeSelectors: 리소스 쿼터 범위 셀렉터를 활성화한다.
  • RootCAConfigMap: 모든 네임스페이스에 kube-root-ca.crt라는 컨피그맵을 게시하도록 kube-controller-manager 를 구성한다. 이 컨피그맵에는 kube-apiserver에 대한 연결을 확인하는 데 사용되는 CA 번들이 포함되어 있다. 자세한 내용은 바운드 서비스 계정 토큰을 참조한다.
  • RotateKubeletClientCertificate: kubelet에서 클라이언트 TLS 인증서의 로테이션을 활성화한다. 자세한 내용은 kubelet 구성을 참고한다.
  • RotateKubeletServerCertificate: kubelet에서 서버 TLS 인증서의 로테이션을 활성화한다.
  • RunAsGroup: 컨테이너의 init 프로세스에 설정된 기본 그룹 ID 제어를 활성화한다.
  • RuntimeClass: 컨테이너 런타임 구성을 선택하기 위해 런타임클래스(RuntimeClass) 기능을 활성화한다.
  • ScheduleDaemonSetPods: 데몬셋(DaemonSet) 컨트롤러 대신 기본 스케줄러로 데몬셋 파드를 스케줄링할 수 있다.
  • SCTPSupport: 파드, 서비스, 엔드포인트, 엔드포인트슬라이스 및 네트워크폴리시 정의에서 SCTP protocol 값을 활성화한다.
  • ServerSideApply: API 서버에서 SSA(Sever Side Apply) 경로를 활성화한다.
  • ServiceAccountIssuerDiscovery: API 서버에서 서비스 어카운트 발행자에 대해 OIDC 디스커버리 엔드포인트(발급자 및 JWKS URL)를 활성화한다. 자세한 내용은 파드의 서비스 어카운트 구성을 참고한다.
  • ServiceAppProtocol: 서비스와 엔드포인트에서 AppProtocol 필드를 활성화한다.
  • ServiceLBNodePortControl: 서비스에서spec.allocateLoadBalancerNodePorts 필드를 활성화한다.
  • ServiceLoadBalancerFinalizer: 서비스 로드 밸런서에 대한 Finalizer 보호를 활성화한다.
  • ServiceNodeExclusion: 클라우드 제공자가 생성한 로드 밸런서에서 노드를 제외할 수 있다. "node.kubernetes.io/exclude-from-external-load-balancers"로 레이블이 지정된 경우 노드를 제외할 수 있다.
  • ServiceTopology: 서비스가 클러스터의 노드 토폴로지를 기반으로 트래픽을 라우팅할 수 있도록 한다. 자세한 내용은 서비스토폴로지(ServiceTopology)를 참고한다.
  • SetHostnameAsFQDN: 전체 주소 도메인 이름(FQDN)을 파드의 호스트 이름으로 설정하는 기능을 활성화한다. 파드의 setHostnameAsFQDN 필드를 참고한다.
  • StartupProbe: kubelet에서 스타트업 프로브를 활성화한다.
  • StorageObjectInUseProtection: 퍼시스턴트볼륨 또는 퍼시스턴트볼륨클레임 오브젝트가 여전히 사용 중인 경우 삭제를 연기한다.
  • StorageVersionAPI: 스토리지 버전 API를 활성화한다.
  • StorageVersionHash: API 서버가 디스커버리에서 스토리지 버전 해시를 노출하도록 허용한다.
  • StreamingProxyRedirects: 스트리밍 요청을 위해 백엔드(kubelet)에서 리디렉션을 가로채서 따르도록 API 서버에 지시한다. 스트리밍 요청의 예로는 exec, attachport-forward 요청이 있다.
  • SupportIPVSProxyMode: IPVS를 사용하여 클러스터 내 서비스 로드 밸런싱을 제공한다. 자세한 내용은 서비스 프록시를 참고한다.
  • SupportPodPidsLimit: 파드의 PID 제한을 지원한다.
  • SupportNodePidsLimit: 노드에서 PID 제한 지원을 활성화한다. --system-reserved--kube-reserved 옵션의 pid=<number> 파라미터를 지정하여 지정된 수의 프로세스 ID가 시스템 전체와 각각 쿠버네티스 시스템 데몬에 대해 예약되도록 할 수 있다.
  • Sysctls: 각 파드에 설정할 수 있는 네임스페이스 커널 파라미터(sysctl)를 지원한다. 자세한 내용은 sysctl을 참고한다.
  • TTLAfterFinished: TTL 컨트롤러가 실행이 끝난 후 리소스를 정리하도록 허용한다.
  • TaintBasedEvictions: 노드의 테인트(taint) 및 파드의 톨러레이션(toleration)을 기반으로 노드에서 파드를 축출할 수 있다. 자세한 내용은 테인트와 톨러레이션을 참고한다.
  • TaintNodesByCondition: 노드 컨디션을 기반으로 자동 테인트 노드를 활성화한다.
  • TokenRequest: 서비스 어카운트 리소스에서 TokenRequest 엔드포인트를 활성화한다.
  • TokenRequestProjection: projected 볼륨을 통해 서비스 어카운트 토큰을 파드에 주입할 수 있다.
  • TopologyManager: 쿠버네티스의 다른 컴포넌트에 대한 세분화된 하드웨어 리소스 할당을 조정하는 메커니즘을 활성화한다. 노드의 토폴로지 관리 정책 제어를 참고한다.
  • VolumePVCDataSource: 기존 PVC를 데이터 소스로 지정하는 기능을 지원한다.
  • VolumeScheduling: 볼륨 토폴로지 인식 스케줄링을 활성화하고 퍼시스턴트볼륨클레임(PVC) 바인딩이 스케줄링 결정을 인식하도록 한다. 또한 PersistentLocalVolumes 기능 게이트와 함께 사용될 때 local 볼륨 유형을 사용할 수 있다.
  • VolumeSnapshotDataSource: 볼륨 스냅샷 데이터 소스 지원을 활성화한다.
  • VolumeSubpathEnvExpansion: 환경 변수를 subPath로 확장하기 위해 subPathExpr 필드를 활성화한다.
  • WarningHeaders: API 응답에서 경고 헤더를 보낼 수 있다.
  • WatchBookmark: 감시자 북마크(watch bookmark) 이벤트 지원을 활성화한다.
  • WinDSR: kube-proxy가 윈도우용 DSR 로드 밸런서를 생성할 수 있다.
  • WinOverlay: kube-proxy가 윈도우용 오버레이 모드에서 실행될 수 있도록 한다.
  • WindowsGMSA: 파드에서 컨테이너 런타임으로 GMSA 자격 증명 스펙을 전달할 수 있다.
  • WindowsRunAsUserName : 기본 사용자가 아닌(non-default) 사용자로 윈도우 컨테이너에서 애플리케이션을 실행할 수 있도록 지원한다. 자세한 내용은 RunAsUserName 구성을 참고한다.
  • WindowsEndpointSliceProxying: 활성화되면, 윈도우에서 실행되는 kube-proxy는 엔드포인트 대신 엔드포인트슬라이스를 기본 데이터 소스로 사용하여 확장성과 성능을 향상시킨다. 엔드포인트 슬라이스 활성화하기를 참고한다.

다음 내용

  • 사용 중단 정책은 쿠버네티스에 대한 기능과 컴포넌트를 제거하는 프로젝트의 접근 방법을 설명한다.
최종 수정 April 26, 2021 at 5:21 PM PST: [ko] Update outdated files in dev-1.20-ko.8 (p1) (0d17ba6f58)