これは、このセクションの複数ページの印刷可能なビューです。 印刷するには、ここをクリックしてください.

このページの通常のビューに戻る.

コマンドラインツールのリファレンス

1 - フィーチャーゲート

このページでは管理者がそれぞれのKubernetesコンポーネントで指定できるさまざまなフィーチャーゲートの概要について説明しています。

各機能におけるステージの説明については、機能のステージを参照してください。

概要

フィーチャーゲートはアルファ機能または実験的機能を記述するkey=valueのペアのセットです。管理者は各コンポーネントで--feature-gatesコマンドラインフラグを使用することで機能をオンまたはオフにできます。

各コンポーネントはそれぞれのコンポーネント固有のフィーチャーゲートの設定をサポートします。すべてのコンポーネントのフィーチャーゲートの全リストを表示するには-hフラグを使用します。kubeletなどのコンポーネントにフィーチャーゲートを設定するには以下のようにリストの機能ペアを--feature-gatesフラグを使用して割り当てます。

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

次の表は各Kubernetesコンポーネントに設定できるフィーチャーゲートの概要です。

  • 「導入開始バージョン」列は機能が導入されたとき、またはリリース段階が変更されたときのKubernetesリリースバージョンとなります。
  • 「最終利用可能バージョン」列は空ではない場合はフィーチャーゲートを使用できる最後のKubernetesリリースバージョンとなります。
  • アルファまたはベータ状態の機能はAlphaまたはBetaのフィーチャーゲートに載っています。
  • 安定している機能は、graduatedまたはdeprecatedのフィーチャーゲートに載っています。
  • graduatedまたはdeprecatedのフィーチャーゲートには、非推奨および廃止された機能もリストされています。

AlphaまたはBetaのフィーチャーゲート

AlphaまたはBetaのフィーチャーゲート
機能名 デフォルト値 ステージ 導入開始バージョン 最終利用可能バージョン
APIListChunking false Alpha 1.8 1.8
APIListChunking true Beta 1.9
APIPriorityAndFairness false Alpha 1.18 1.19
APIPriorityAndFairness true Beta 1.20
APIResponseCompression false Alpha 1.7 1.15
APIResponseCompression true Beta 1.16
APISelfSubjectReview false Alpha 1.26
APIServerIdentity false Alpha 1.20 1.25
APIServerIdentity true Beta 1.26
APIServerTracing false Alpha 1.22
AggregatedDiscoveryEndpoint false Alpha 1.26
AnyVolumeDataSource false Alpha 1.18 1.23
AnyVolumeDataSource true Beta 1.24
AppArmor true Beta 1.4
CheckpointContainer false Alpha 1.25
CPUManagerPolicyAlphaOptions false Alpha 1.23
CPUManagerPolicyBetaOptions true Beta 1.23
CPUManagerPolicyOptions false Alpha 1.22 1.22
CPUManagerPolicyOptions true Beta 1.23
CSIMigrationPortworx false Alpha 1.23 1.24
CSIMigrationPortworx false Beta 1.25
CSIMigrationRBD false Alpha 1.23
CSINodeExpandSecret false Alpha 1.25
CSIVolumeHealth false Alpha 1.21
ComponentSLIs false Alpha 1.26
ContainerCheckpoint false Alpha 1.25
ContextualLogging false Alpha 1.24
CronJobTimeZone false Alpha 1.24 1.24
CronJobTimeZone true Beta 1.25
CrossNamespaceVolumeDataSource false Alpha 1.26
CustomCPUCFSQuotaPeriod false Alpha 1.12
CustomResourceValidationExpressions false Alpha 1.23 1.24
CustomResourceValidationExpressions true Beta 1.25
DisableCloudProviders false Alpha 1.22
DisableKubeletCloudCredentialProviders false Alpha 1.23
DownwardAPIHugePages false Alpha 1.20 1.20
DownwardAPIHugePages false Beta 1.21 1.21
DownwardAPIHugePages true Beta 1.22
DynamicResourceAllocation false Alpha 1.26
EventedPLEG false Alpha 1.26 -
ExpandedDNSConfig false Alpha 1.22 1.25
ExpandedDNSConfig true Beta 1.26
ExperimentalHostUserNamespaceDefaulting false Beta 1.5
GRPCContainerProbe false Alpha 1.23 1.23
GRPCContainerProbe true Beta 1.24
GracefulNodeShutdown false Alpha 1.20 1.20
GracefulNodeShutdown true Beta 1.21
GracefulNodeShutdownBasedOnPodPriority false Alpha 1.23 1.23
GracefulNodeShutdownBasedOnPodPriority true Beta 1.24
HPAContainerMetrics false Alpha 1.20
HPAScaleToZero false Alpha 1.16
HonorPVReclaimPolicy false Alpha 1.23
IPTablesOwnershipCleanup false Alpha 1.25
InTreePluginAWSUnregister false Alpha 1.21
InTreePluginAzureDiskUnregister false Alpha 1.21
InTreePluginAzureFileUnregister false Alpha 1.21
InTreePluginGCEUnregister false Alpha 1.21
InTreePluginOpenStackUnregister false Alpha 1.21
InTreePluginPortworxUnregister false Alpha 1.23
InTreePluginRBDUnregister false Alpha 1.23
InTreePluginvSphereUnregister false Alpha 1.21
JobMutableNodeSchedulingDirectives true Beta 1.23
JobPodFailurePolicy false Alpha 1.25 1.25
JobPodFailurePolicy true Beta 1.26
JobReadyPods false Alpha 1.23 1.23
JobReadyPods true Beta 1.24
KMSv2 false Alpha 1.25
KubeletInUserNamespace false Alpha 1.22
KubeletPodResources false Alpha 1.13 1.14
KubeletPodResources true Beta 1.15
KubeletPodResourcesGetAllocatable false Alpha 1.21 1.22
KubeletPodResourcesGetAllocatable true Beta 1.23
KubeletTracing false Alpha 1.25
LegacyServiceAccountTokenTracking false Alpha 1.26 1.26
LegacyServiceAccountTokenTracking true Beta 1.27
LocalStorageCapacityIsolationFSQuotaMonitoring false Alpha 1.15 -
LogarithmicScaleDown false Alpha 1.21 1.21
LogarithmicScaleDown true Beta 1.22
LoggingAlphaOptions false Alpha 1.24 -
LoggingBetaOptions true Beta 1.24 -
MatchLabelKeysInPodTopologySpread false Alpha 1.25
MaxUnavailableStatefulSet false Alpha 1.24
MemoryManager false Alpha 1.21 1.21
MemoryManager true Beta 1.22
MemoryQoS false Alpha 1.22
MinDomainsInPodTopologySpread false Alpha 1.24 1.24
MinDomainsInPodTopologySpread false Beta 1.25
MinimizeIPTablesRestore false Alpha 1.26 -
MultiCIDRRangeAllocator false Alpha 1.25
NetworkPolicyStatus false Alpha 1.24
NodeInclusionPolicyInPodTopologySpread false Alpha 1.25 1.25
NodeInclusionPolicyInPodTopologySpread true Beta 1.26
NodeOutOfServiceVolumeDetach false Alpha 1.24 1.25
NodeOutOfServiceVolumeDetach true Beta 1.26
NodeSwap false Alpha 1.22
OpenAPIEnums false Alpha 1.23 1.23
OpenAPIEnums true Beta 1.24
OpenAPIV3 false Alpha 1.23 1.23
OpenAPIV3 true Beta 1.24
PDBUnhealthyPodEvictionPolicy false Alpha 1.26
PodAndContainerStatsFromCRI false Alpha 1.23
PodDeletionCost false Alpha 1.21 1.21
PodDeletionCost true Beta 1.22
PodDisruptionConditions false Alpha 1.25 1.25
PodDisruptionConditions true Beta 1.26
PodHasNetworkCondition false Alpha 1.25
PodSchedulingReadiness false Alpha 1.26
ProbeTerminationGracePeriod false Alpha 1.21 1.21
ProbeTerminationGracePeriod false Beta 1.22 1.24
ProbeTerminationGracePeriod true Beta 1.25
ProcMountType false Alpha 1.12
ProxyTerminatingEndpoints false Alpha 1.22 1.25
ProxyTerminatingEndpoints true Beta 1.26
QOSReserved false Alpha 1.11
ReadWriteOncePod false Alpha 1.22
RecoverVolumeExpansionFailure false Alpha 1.23
RemainingItemCount false Alpha 1.15 1.15
RemainingItemCount true Beta 1.16
RetroactiveDefaultStorageClass false Alpha 1.25 1.25
RetroactiveDefaultStorageClass true Beta 1.26
RotateKubeletServerCertificate false Alpha 1.7 1.11
RotateKubeletServerCertificate true Beta 1.12
SELinuxMountReadWriteOncePod false Alpha 1.25
SeccompDefault false Alpha 1.22 1.24
SeccompDefault true Beta 1.25
ServerSideFieldValidation false Alpha 1.23 1.24
ServerSideFieldValidation true Beta 1.25
SizeMemoryBackedVolumes false Alpha 1.20 1.21
SizeMemoryBackedVolumes true Beta 1.22
StatefulSetAutoDeletePVC false Alpha 1.22
StatefulSetStartOrdinal false Alpha 1.26
StorageVersionAPI false Alpha 1.20
StorageVersionHash false Alpha 1.14 1.14
StorageVersionHash true Beta 1.15
TopologyAwareHints false Alpha 1.21 1.22
TopologyAwareHints false Beta 1.23 1.23
TopologyAwareHints true Beta 1.24
TopologyManager false Alpha 1.16 1.17
TopologyManager true Beta 1.18
TopologyManagerPolicyAlphaOptions false Alpha 1.26
TopologyManagerPolicyBetaOptions false Beta 1.26
TopologyManagerPolicyOptions false Alpha 1.26
UserNamespacesStatelessPodsSupport false Alpha 1.25
ValidatingAdmissionPolicy false Alpha 1.26
VolumeCapacityPriority false Alpha 1.21 -
WinDSR false Alpha 1.14
WinOverlay false Alpha 1.14 1.19
WinOverlay true Beta 1.20
WindowsHostNetwork false Alpha 1.26

GraduatedまたはDeprecatedのフィーチャーゲート

GraduatedまたはDeprecatedのフィーチャーゲート
機能名 デフォルト値 ステージ 導入開始バージョン 最終利用可能バージョン
AdvancedAuditing false Alpha 1.7 1.7
AdvancedAuditing true Beta 1.8 1.11
AdvancedAuditing true GA 1.12 -
CPUManager false Alpha 1.8 1.9
CPUManager true Beta 1.10 1.25
CPUManager true GA 1.26 -
CSIInlineVolume false Alpha 1.15 1.15
CSIInlineVolume true Beta 1.16 1.24
CSIInlineVolume true GA 1.25 -
CSIMigration false Alpha 1.14 1.16
CSIMigration true Beta 1.17 1.24
CSIMigration true GA 1.25 -
CSIMigrationAWS false Alpha 1.14 1.16
CSIMigrationAWS false Beta 1.17 1.22
CSIMigrationAWS true Beta 1.23 1.24
CSIMigrationAWS true GA 1.25 -
CSIMigrationAzureDisk false Alpha 1.15 1.18
CSIMigrationAzureDisk false Beta 1.19 1.22
CSIMigrationAzureDisk true Beta 1.23 1.23
CSIMigrationAzureDisk true GA 1.24
CSIMigrationAzureFile false Alpha 1.15 1.20
CSIMigrationAzureFile false Beta 1.21 1.23
CSIMigrationAzureFile true Beta 1.24 1.25
CSIMigrationAzureFile true GA 1.26
CSIMigrationGCE false Alpha 1.14 1.16
CSIMigrationGCE false Beta 1.17 1.22
CSIMigrationGCE true Beta 1.23 1.24
CSIMigrationGCE true GA 1.25 -
CSIMigrationvSphere false Alpha 1.18 1.18
CSIMigrationvSphere false Beta 1.19 1.24
CSIMigrationvSphere true Beta 1.25 1.25
CSIMigrationvSphere true GA 1.26 -
CSIStorageCapacity false Alpha 1.19 1.20
CSIStorageCapacity true Beta 1.21 1.23
CSIStorageCapacity true GA 1.24 -
ConsistentHTTPGetHandlers true GA 1.25 -
ControllerManagerLeaderMigration false Alpha 1.21 1.21
ControllerManagerLeaderMigration true Beta 1.22 1.23
ControllerManagerLeaderMigration true GA 1.24 -
DaemonSetUpdateSurge false Alpha 1.21 1.21
DaemonSetUpdateSurge true Beta 1.22 1.24
DaemonSetUpdateSurge true GA 1.25 -
DelegateFSGroupToCSIDriver false Alpha 1.22 1.22
DelegateFSGroupToCSIDriver true Beta 1.23 1.25
DelegateFSGroupToCSIDriver true GA 1.26 -
DevicePlugins false Alpha 1.8 1.9
DevicePlugins true Beta 1.10 1.25
DevicePlugins true GA 1.26 -
DisableAcceleratorUsageMetrics false Alpha 1.19 1.19
DisableAcceleratorUsageMetrics true Beta 1.20 1.24
DisableAcceleratorUsageMetrics true GA 1.25 -
DryRun false Alpha 1.12 1.12
DryRun true Beta 1.13 1.18
DryRun true GA 1.19 -
EfficientWatchResumption false Alpha 1.20 1.20
EfficientWatchResumption true Beta 1.21 1.23
EfficientWatchResumption true GA 1.24 -
EndpointSliceTerminatingCondition false Alpha 1.20 1.21
EndpointSliceTerminatingCondition true Beta 1.22 1.25
EndpointSliceTerminatingCondition true GA 1.26
EphemeralContainers false Alpha 1.16 1.22
EphemeralContainers true Beta 1.23 1.24
EphemeralContainers true GA 1.25 -
ExecProbeTimeout true GA 1.20 -
ExpandCSIVolumes false Alpha 1.14 1.15
ExpandCSIVolumes true Beta 1.16 1.23
ExpandCSIVolumes true GA 1.24 -
ExpandInUsePersistentVolumes false Alpha 1.11 1.14
ExpandInUsePersistentVolumes true Beta 1.15 1.23
ExpandInUsePersistentVolumes true GA 1.24 -
ExpandPersistentVolumes false Alpha 1.8 1.10
ExpandPersistentVolumes true Beta 1.11 1.23
ExpandPersistentVolumes true GA 1.24 -
JobTrackingWithFinalizers false Alpha 1.22 1.22
JobTrackingWithFinalizers false Beta 1.23 1.24
JobTrackingWithFinalizers true Beta 1.25 1.25
JobTrackingWithFinalizers true GA 1.26 -
KubeletCredentialProviders false Alpha 1.20 1.23
KubeletCredentialProviders true Beta 1.24 1.25
KubeletCredentialProviders true GA 1.26 -
LegacyServiceAccountTokenNoAutoGeneration true Beta 1.24 1.25
LegacyServiceAccountTokenNoAutoGeneration true GA 1.26 -
LocalStorageCapacityIsolation false Alpha 1.7 1.9
LocalStorageCapacityIsolation true Beta 1.10 1.24
LocalStorageCapacityIsolation true GA 1.25 -
MixedProtocolLBService false Alpha 1.20 1.23
MixedProtocolLBService true Beta 1.24 1.25
MixedProtocolLBService true GA 1.26 -
NetworkPolicyEndPort false Alpha 1.21 1.21
NetworkPolicyEndPort true Beta 1.22 1.24
NetworkPolicyEndPort true GA 1.25 -
PodSecurity false Alpha 1.22 1.22
PodSecurity true Beta 1.23 1.24
PodSecurity true GA 1.25
RemoveSelfLink false Alpha 1.16 1.19
RemoveSelfLink true Beta 1.20 1.23
RemoveSelfLink true GA 1.24 -
ServerSideApply false Alpha 1.14 1.15
ServerSideApply true Beta 1.16 1.21
ServerSideApply true GA 1.22 -
ServiceIPStaticSubrange false Alpha 1.24 1.24
ServiceIPStaticSubrange true Beta 1.25 1.25
ServiceIPStaticSubrange true GA 1.26 -
ServiceInternalTrafficPolicy false Alpha 1.21 1.21
ServiceInternalTrafficPolicy true Beta 1.22 1.25
ServiceInternalTrafficPolicy true GA 1.26 -
StatefulSetMinReadySeconds false Alpha 1.22 1.22
StatefulSetMinReadySeconds true Beta 1.23 1.24
StatefulSetMinReadySeconds true GA 1.25 -
WatchBookmark false Alpha 1.15 1.15
WatchBookmark true Beta 1.16 1.16
WatchBookmark true GA 1.17 -
WindowsHostProcessContainers false Alpha 1.22 1.22
WindowsHostProcessContainers true Beta 1.23 1.25
WindowsHostProcessContainers true GA 1.26 -

機能を使用する

機能のステージ

機能にはAlphaBetaGA の段階があります。Alpha 機能とは:

  • デフォルトでは無効になっています。
  • バグがあるかもしれません。機能を有効にするとバグが発生する可能性があります。
  • 機能のサポートは予告無しにいつでも削除される場合があります。
  • APIは今後のソフトウェアリリースで予告なく互換性の無い変更が行われる場合があります。
  • バグが発生するリスクが高く長期的なサポートはないため、短期間のテストクラスターでのみ使用することをお勧めします。

Beta 機能とは:

  • デフォルトで有効になっています。
  • この機能は十分にテストされていて、有効にすることは安全と考えられます。
  • 詳細は変更される可能性がありますが、機能全体のサポートは削除されません。
  • オブジェクトのスキーマやセマンティックは、その後のベータ版または安定版リリースで互換性の無い変更が行われる場合があります。互換性の無い変更が行われた場合には次のバージョンへの移行手順を提供します。これにはAPIオブジェクトの削除、編集、および再作成が必要になる場合があります。バージョンアップにはいくつかの対応が必要な場合があります。これには機能に依存するアプリケーションのダウンタイムが発生する場合があります。
  • 今後のリリースで互換性の無い変更が行われる可能性があるため、ビジネスクリティカルでない使用のみが推奨されます。個別にアップグレードできる複数のクラスターがある場合はこの制限を緩和できる場合があります。

GA 機能とは(GA 機能は安定版 機能とも呼ばれます):

  • 機能は常に有効となり、無効にすることはできません。
  • フィーチャーゲートの設定は不要になります。
  • 機能の安定版は後続バージョンでリリースされたソフトウェアで使用されます。

フィーチャーゲート

各フィーチャーゲートは特定の機能を有効/無効にするように設計されています。

  • Accelerators: DockerでのNvidia GPUのサポートを有効にします。
  • AdvancedAuditing: 高度な監査機能を有効にします。
  • AffinityInAnnotations(非推奨): Podのアフィニティまたはアンチアフィニティを有効にします。
  • AnyVolumeDataSource: PVCDataSourceとしてカスタムリソースの使用を有効にします。
  • AllowExtTrafficLocalEndpoints: サービスが外部へのリクエストをノードのローカルエンドポイントにルーティングできるようにします。
  • APIListChunking: APIクライアントがAPIサーバーからチャンク単位で(LISTGETの)リソースを取得できるようにします。 APIPriorityAndFairness: 各サーバーで優先順位付けと公平性を備えた要求の並行性を管理できるようにします(RequestManagementから名前が変更されました)。
  • APIResponseCompression:LISTGETリクエストのAPIレスポンスを圧縮します。
  • AppArmor: Dockerを使用する場合にLinuxノードでAppArmorによる強制アクセスコントロールを有効にします。詳細はAppArmorチュートリアルで確認できます。
  • ContainerCheckpoint: kubeletチェックポイントAPIを有効にします。詳細はKubeletチェックポイントAPIで確認できます。
  • AttachVolumeLimit: ボリュームプラグインを有効にすることでノードにアタッチできるボリューム数の制限を設定できます。
  • BalanceAttachedNodeVolumes: スケジューリング中にバランスのとれたリソース割り当てを考慮するノードのボリュームカウントを含めます。判断を行う際に、CPU、メモリー使用率、およびボリュームカウントが近いノードがスケジューラーによって優先されます。
  • BlockVolume: PodでRawブロックデバイスの定義と使用を有効にします。詳細はRawブロックボリュームのサポートで確認できます。
  • BoundServiceAccountTokenVolume: ServiceAccountTokenVolumeProjectionによって構成される計画ボリュームを使用するにはServiceAccountボリュームを移行します。詳細はService Account Token Volumesで確認できます。
  • ConfigurableFSGroupPolicy: Podにボリュームをマウントするときに、ユーザーがfsGroupsのボリューム権限変更ポリシーを設定できるようにします。詳細については、Podのボリューム権限と所有権変更ポリシーの設定をご覧ください。
  • CPUManager: コンテナレベルのCPUアフィニティサポートを有効します。CPUマネジメントポリシーを見てください。
  • CRIContainerLogRotation: criコンテナランタイムのコンテナログローテーションを有効にします。
  • CSIBlockVolume: 外部CSIボリュームドライバーを有効にしてブロックストレージをサポートします。詳細はcsiRawブロックボリュームのサポートで確認できます。
  • CSIDriverRegistry: csi.storage.k8s.ioのCSIDriver APIオブジェクトに関連するすべてのロジックを有効にします。
  • CSIInlineVolume: PodのCSIインラインボリュームサポートを有効にします。
  • CSIMigration: シムと変換ロジックを有効にしてボリューム操作をKubernetesリポジトリー内のプラグインから対応した事前インストール済みのCSIプラグインにルーティングします。
  • CSIMigrationAWS: シムと変換ロジックを有効にしてボリューム操作をKubernetesリポジトリー内のAWS-EBSプラグインからEBS CSIプラグインにルーティングします。ノードにEBS CSIプラグインがインストールおよび設定されていない場合、ツリー内のEBSプラグインへのフォールバックをサポートします。CSIMigration機能フラグを有効にする必要があります。
  • CSIMigrationAWSComplete: EBSツリー内プラグインのkubeletおよびボリュームコントローラーへの登録を停止し、シムと変換ロジックを有効にして、AWS-EBSツリー内プラグインからEBS CSIプラグインにボリューム操作をルーティングします。CSIMigrationおよびCSIMigrationAWS機能フラグを有効にし、クラスター内のすべてのノードにEBS CSIプラグインをインストールおよび設定する必要があります。
  • CSIMigrationAzureDisk: シムと変換ロジックを有効にしてボリューム操作をKubernetesリポジトリー内のAzure-DiskプラグインからAzure Disk CSIプラグインにルーティングします。ノードにAzureDisk CSIプラグインがインストールおよび設定されていない場合、ツリー内のAzureDiskプラグインへのフォールバックをサポートします。CSIMigration機能フラグを有効にする必要があります。
  • CSIMigrationAzureDiskComplete: Azure-Diskツリー内プラグインのkubeletおよびボリュームコントローラーへの登録を停止し、シムと変換ロジックを有効にして、Azure-Diskツリー内プラグインからAzureDisk CSIプラグインにボリューム操作をルーティングします。CSIMigrationおよびCSIMigrationAzureDisk機能フラグを有効にし、クラスター内のすべてのノードにAzureDisk CSIプラグインをインストールおよび設定する必要があります。
  • CSIMigrationAzureFile: シムと変換ロジックを有効にしてボリューム操作をKubernetesリポジトリー内のAzure-FileプラグインからAzure File CSIプラグインにルーティングします。ノードにAzureFile CSIプラグインがインストールおよび設定されていない場合、ツリー内のAzureFileプラグインへのフォールバックをサポートします。CSIMigration機能フラグを有効にする必要があります。
  • CSIMigrationAzureFileComplete: Azure-Fileツリー内プラグインのkubeletおよびボリュームコントローラーへの登録を停止し、シムと変換ロジックを有効にして、Azure-Fileツリー内プラグインからAzureFile CSIプラグインにボリューム操作をルーティングします。CSIMigrationおよびCSIMigrationAzureFile機能フラグを有効にし、クラスター内のすべてのノードにAzureFile CSIプラグインをインストールおよび設定する必要があります。
  • CSIMigrationGCE: シムと変換ロジックを有効にしてボリューム操作をKubernetesリポジトリー内のGCE-PDプラグインからPD CSIプラグインにルーティングします。ノードにPD CSIプラグインがインストールおよび設定されていない場合、ツリー内のGCEプラグインへのフォールバックをサポートします。CSIMigration機能フラグを有効にする必要があります。
  • CSIMigrationGCEComplete: GCE-PDのツリー内プラグインのkubeletおよびボリュームコントローラーへの登録を停止し、シムと変換ロジックがGCE-PDのツリー内プラグインからPD CSIプラグインにボリューム操作をルーティングできるようにします。CSIMigrationおよびCSIMigrationGCE機能フラグを有効にし、クラスター内のすべてのノードにPD CSIプラグインをインストールおよび設定する必要があります。
  • CSIMigrationOpenStack: シムと変換ロジックを有効にしてボリューム操作をKubernetesリポジトリー内のCinderプラグインからCinder CSIプラグインにルーティングします。ノードにCinder CSIプラグインがインストールおよび設定されていない場合、ツリー内のCinderプラグインへのフォールバックをサポートします。CSIMigration機能フラグを有効にする必要があります。
  • CSIMigrationOpenStackComplete: Cinderのツリー内プラグインのkubeletおよびボリュームコントローラーへの登録を停止し、シムと変換ロジックがCinderのツリー内プラグインからCinder CSIプラグインにボリューム操作をルーティングできるようにします。CSIMigrationおよびCSIMigrationOpenStack機能フラグを有効にし、クラスター内のすべてのノードにCinder CSIプラグインをインストールおよび設定する必要があります。
  • CSINodeInfo: csi.storage.k8s.ioのCSINodeInfo APIオブジェクトに関連するすべてのロジックを有効にします。
  • CSIPersistentVolume: CSI(Container Storage Interface)互換のボリュームプラグインを通してプロビジョニングされたボリュームの検出とマウントを有効にします。 詳細についてはcsiボリュームタイプドキュメントを確認してください。
  • CustomCPUCFSQuotaPeriod: ノードがCPUCFSQuotaPeriodを変更できるようにします。
  • CustomPodDNS: dnsConfigプロパティを使用したPodのDNS設定のカスタマイズを有効にします。詳細はPodのDNS構成で確認できます。
  • CustomResourceDefaulting: OpenAPI v3バリデーションスキーマにおいて、デフォルト値のCRDサポートを有効にします。
  • CustomResourcePublishOpenAPI: CRDのOpenAPI仕様での公開を有効にします。
  • CustomResourceSubresources: CustomResourceDefinitionから作成されたリソースの/statusおよび/scaleサブリソースを有効にします。
  • CustomResourceValidation: CustomResourceDefinitionから作成されたリソースのスキーマによる検証を有効にします。
  • CustomResourceWebhookConversion: CustomResourceDefinitionから作成されたリソースのWebhookベースの変換を有効にします。
  • DevicePlugins: device-pluginsによるノードでのリソースプロビジョニングを有効にします。
  • DryRun: サーバーサイドでのdry runリクエストを有効にします。
  • DynamicKubeletConfig: kubeletの動的構成を有効にします。kubeletの再設定を参照してください。
  • DynamicProvisioningScheduling: デフォルトのスケジューラーを拡張してボリュームトポロジーを認識しPVプロビジョニングを処理します。この機能は、v1.12のVolumeScheduling機能に完全に置き換えられました。
  • DynamicVolumeProvisioning(非推奨): Podへの永続ボリュームの動的プロビジョニングを有効にします。
  • EnableAggregatedDiscoveryTimeout (非推奨): 集約されたディスカバリーコールで5秒のタイムアウトを有効にします。
  • EnableEquivalenceClassCache: Podをスケジュールするときにスケジューラーがノードの同等をキャッシュできるようにします。
  • EphemeralContainers: 稼働するPodにephemeral containersを追加する機能を有効にします。
  • EvenPodsSpread: Podをトポロジードメイン全体で均等にスケジュールできるようにします。Even Pods Spreadをご覧ください。
  • ExpandInUsePersistentVolumes: 使用中のPVCのボリューム拡張を有効にします。使用中のPersistentVolumeClaimのサイズ変更を参照してください。
  • ExpandPersistentVolumes: 永続ボリュームの拡張を有効にします。永続ボリューム要求の拡張を参照してください。
  • ExperimentalCriticalPodAnnotation: スケジューリングが保証されるように特定のPodへの クリティカル の注釈を加える設定を有効にします。
  • ExperimentalHostUserNamespaceDefaultingGate: ホストするデフォルトのユーザー名前空間を有効にします。これは他のホストの名前空間やホストのマウントを使用しているコンテナ、特権を持つコンテナ、または名前空間のない特定の機能(たとえばMKNODESYS_MODULEなど)を使用しているコンテナ用です。これはDockerデーモンでユーザー名前空間の再マッピングが有効になっている場合にのみ有効にすべきです。
  • EndpointSlice: よりスケーラブルで拡張可能なネットワークエンドポイントのエンドポイントスライスを有効にします。Enabling Endpoint Slicesをご覧ください。
  • EndpointSliceProxying: このフィーチャーゲートを有効にすると、kube-proxyはエンドポイントの代わりにエンドポイントスライスをプライマリデータソースとして使用し、スケーラビリティとパフォーマンスの向上を実現します。Enabling Endpoint Slices.をご覧ください。
  • GCERegionalPersistentDisk: GCEでリージョナルPD機能を有効にします。
  • HugePages: 事前に割り当てられたhuge pagesの割り当てと消費を有効にします。
  • HugePageStorageMediumSize: 事前に割り当てられた複数のサイズのhuge pagesのサポートを有効にします。
  • HyperVContainer: WindowsコンテナのHyper-Vによる分離を有効にします。
  • HPAScaleToZero: カスタムメトリクスまたは外部メトリクスを使用するときに、HorizontalPodAutoscalerリソースのminReplicasを0に設定できるようにします。
  • ImmutableEphemeralVolumes: 安全性とパフォーマンスを向上させるために、個々のSecretとConfigMapが不変となるように指定できるようにします。
  • KubeletConfigFile: 設定ファイルを使用して指定されたファイルからのkubelet設定の読み込みを有効にします。詳細は設定ファイルによるkubeletパラメーターの設定で確認できます。
  • KubeletPluginsWatcher: 調査ベースのプラグイン監視ユーティリティを有効にしてkubeletがCSIボリュームドライバーなどのプラグインを検出できるようにします。
  • KubeletPodResources: kubeletのPodのリソースgrpcエンドポイントを有効にします。詳細はデバイスモニタリングのサポートで確認できます。
  • LegacyNodeRoleBehavior: 無効にすると、サービスロードバランサーの従来の動作とノードの中断により機能固有のラベルが優先され、node-role.kubernetes.io/masterラベルが無視されます。
  • LocalStorageCapacityIsolation: ローカルの一時ストレージの消費を有効にして、emptyDirボリュームsizeLimitプロパティも有効にします。
  • LocalStorageCapacityIsolationFSQuotaMonitoring: LocalStorageCapacityIsolationローカルの一時ストレージで有効になっていて、emptyDirボリュームのbacking filesystemがプロジェクトクォータをサポートし有効になっている場合、プロジェクトクォータを使用して、パフォーマンスと精度を向上させるために、ファイルシステムへのアクセスではなくemptyDirボリュームストレージ消費を監視します。
  • MountContainers: ホスト上のユーティリティコンテナをボリュームマウンターとして使用できるようにします。
  • MountPropagation: あるコンテナによってマウントされたボリュームを他のコンテナまたはPodに共有できるようにします。詳細はマウントの伝播で確認できます。
  • NodeDisruptionExclusion: ノードラベルnode.kubernetes.io/exclude-disruptionの使用を有効にします。これにより、ゾーン障害時にノードが退避するのを防ぎます。
  • NodeLease: 新しいLease APIを有効にしてノードヘルスシグナルとして使用できるノードのハートビートをレポートします。
  • NonPreemptingPriority: PriorityClassとPodのNonPreemptingオプションを有効にします。
  • PersistentLocalVolumes: Podでlocalボリュームタイプの使用を有効にします。localボリュームを要求する場合、Podアフィニティを指定する必要があります。
  • PodOverhead: PodOverhead機能を有効にして、Podのオーバーヘッドを考慮するようにします。
  • PodDisruptionBudget: PodDisruptionBudget機能を有効にします。
  • PodPriority: 優先度に基づいてPodの再スケジューリングとプリエンプションを有効にします。
  • PodReadinessGates: Podのreadinessの評価を拡張するためにPodReadinessGateフィールドの設定を有効にします。詳細はPod readiness gateで確認できます。
  • PodShareProcessNamespace: Podで実行されているコンテナ間で単一のプロセス名前空間を共有するには、PodでshareProcessNamespaceの設定を有効にします。詳細については、Pod内のコンテナ間でプロセス名前空間を共有するをご覧ください。
  • ProcMountType: コンテナのProcMountTypeの制御を有効にします。
  • PVCProtection: 永続ボリューム要求(PVC)がPodでまだ使用されているときに削除されないようにします。詳細はここで確認できます。
  • QOSReserved: QoSレベルでのリソース予約を許可して、低いQoSレベルのポッドが高いQoSレベルで要求されたリソースにバーストするのを防ぎます(現時点ではメモリのみ)。
  • ResourceLimitsPriorityFunction: 入力したPodのCPU制限とメモリ制限の少なくとも1つを満たすノードに対して最低スコアを1に割り当てるスケジューラー優先機能を有効にします。その目的は同じスコアを持つノード間の関係を断つことです。
  • ResourceQuotaScopeSelectors: リソース割当のスコープセレクターを有効にします。
  • RotateKubeletClientCertificate: kubeletでクライアントTLS証明書のローテーションを有効にします。詳細はkubeletの設定で確認できます。
  • RotateKubeletServerCertificate: kubeletでサーバーTLS証明書のローテーションを有効にします。詳細はkubeletの設定で確認できます。
  • RunAsGroup: コンテナの初期化プロセスで設定されたプライマリグループIDの制御を有効にします。
  • RuntimeClass: コンテナのランタイム構成を選択するにはRuntimeClass機能を有効にします。
  • ScheduleDaemonSetPods: DaemonSetのPodをDaemonSetコントローラーではなく、デフォルトのスケジューラーによってスケジュールされるようにします。
  • SCTPSupport: ServiceEndpointsNetworkPolicyPodの定義でprotocolの値としてSCTPを使用できるようにします
  • ServerSideApply: APIサーバーでサーバーサイドApply(SSA)のパスを有効にします。
  • ServiceAccountIssuerDiscovery: APIサーバーにてサービスアカウント発行者のOIDC検出エンドポイント(発行者とJWKS URL)を有効にします。詳細については、Podのサービスアカウント設定をご覧ください。
  • ServiceAppProtocol: サービスとエンドポイントでAppProtocolフィールドを有効にします。
  • ServiceLoadBalancerFinalizer: サービスロードバランサーのファイナライザー保護を有効にします。
  • ServiceNodeExclusion: クラウドプロバイダーによって作成されたロードバランサーからのノードの除外を有効にします。"alpha.service-controller.kubernetes.io/exclude-balancer"キーまたはnode.kubernetes.io/exclude-from-external-load-balancersでラベル付けされている場合ノードは除外の対象となります。
  • ServiceTopology: クラスターのノードトポロジーに基づいてトラフィックをルーティングするサービスを有効にします。詳細については、Serviceトポロジーを参照してください。
  • StartupProbe: kubeletでstartupプローブを有効にします。
  • StorageObjectInUseProtection: PersistentVolumeまたはPersistentVolumeClaimオブジェクトがまだ使用されている場合、それらの削除を延期します。
  • StorageVersionHash: apiserversがディスカバリーでストレージのバージョンハッシュを公開できるようにします。
  • StreamingProxyRedirects: ストリーミングリクエストのバックエンド(kubelet)からのリダイレクトをインターセプト(およびフォロー)するようAPIサーバーに指示します。ストリーミングリクエストの例にはexecattachport-forwardリクエストが含まれます。
  • SupportIPVSProxyMode: IPVSを使用したクラスター内サービスの負荷分散の提供を有効にします。詳細はサービスプロキシで確認できます。
  • SupportPodPidsLimit: PodのPID制限のサポートを有効にします。
  • Sysctls: 各Podに設定できる名前空間付きのカーネルパラメーター(sysctl)のサポートを有効にします。詳細はsysctlsで確認できます。
  • TaintBasedEvictions: ノードのTaintとPodのTolerationに基づいてノードからPodを排除できるようにします。。詳細はTaintとTolerationで確認できます。
  • TaintNodesByCondition: ノードの条件に基づいてノードの自動Taintを有効にします。
  • TokenRequest: サービスアカウントリソースでTokenRequestエンドポイントを有効にします。
  • TokenRequestProjection: Projectedボリュームを使用したPodへのサービスアカウントのトークンの注入を有効にします。
  • TTLAfterFinished: TTLコントローラーが実行終了後にリソースをクリーンアップできるようにします。
  • VolumePVCDataSource: 既存のPVCをデータソースとして指定するサポートを有効にします。
  • VolumeScheduling: ボリュームトポロジー対応のスケジューリングを有効にし、PersistentVolumeClaim(PVC)バインディングにスケジューリングの決定を認識させます。またPersistentLocalVolumesフィーチャーゲートと一緒に使用するとlocalボリュームタイプの使用が可能になります。
  • VolumeSnapshotDataSource: ボリュームスナップショットのデータソースサポートを有効にします。
  • VolumeSubpathEnvExpansion: 環境変数をsubPathに展開するためのsubPathExprフィールドを有効にします。
  • WatchBookmark: ブックマークイベントの監視サポートを有効にします。
  • WindowsGMSA: GMSA資格仕様をPodからコンテナランタイムに渡せるようにします。
  • WindowsRunAsUserName: デフォルト以外のユーザーでWindowsコンテナアプリケーションを実行するためのサポートを有効にします。詳細については、RunAsUserNameの設定を参照してください。
  • WinDSR: kube-proxyがWindows用のDSRロードバランサーを作成できるようにします。
  • WinOverlay: kube-proxyをWindowsのオーバーレイモードで実行できるようにします。

次の項目

  • Kubernetesの非推奨ポリシーでは、機能とコンポーネントを削除するためのプロジェクトのアプローチを説明しています。

2 - kube-scheduler

概要

Kubernetesスケジューラーは、Podをノードに割り当てるコントロールプレーンのプロセスです。 スケジューラーは、制約条件と利用可能なリソースに基づいて、スケジューリングキュー内の各Podに対して適切なノードを決定します。 その後、スケジューラーは有効な各ノードを優先順位付けし、適切なノードにPodを割り当てます。 クラスター内では複数の異なるスケジューラーを使用することが可能であり、kube-schedulerが標準実装として提供されています。 スケジューリングの詳細およびkube-schedulerコンポーネントについては、スケジューリングのセクションをご覧ください。

kube-scheduler [flags]

オプション

--allow-metric-labels stringToString     デフォルト値: []

メトリックラベルに対し、許可される値のリストを指定するマップです。キーは <MetricName>,<LabelName> の形式で、値は <allowed_value>,<allowed_value>... の形式となります。例えば、metric1,label1='v1,v2,v3', metric1,label2='v1,v2,v3' metric2,label1='v1,v2,v3'のように指定します。

--allow-metric-labels-manifest string

許可リストのマッピング情報を含むマニフェストファイルのパスです。ファイルの形式は--allow-metric-labelsフラグと同じであり、--allow-metric-labelsフラグが指定されている場合はファイルの設定が上書きされる点に注意してください。

--authentication-kubeconfig string

tokenreviews.authentication.k8s.ioを作成するための十分な権限を持つコアKubernetesサーバーを指すkubeconfigファイルです。省略可能であり、空の場合はすべてのトークン要求が匿名として扱われ、クラスター内でクライアント証明書の検索は行われません。

--authentication-skip-lookup

falseに設定した場合、authentication-kubeconfigを使用してクラスターから不足している認証設定を参照します。

--authentication-token-webhook-cache-ttl duration     デフォルト値: 10s

webhook token authenticatorからのレスポンスをキャッシュする期間を指定します。

--authentication-tolerate-lookup-failure     デフォルト値: true

trueの場合、クラスターから認証設定を参照できなくても致命的な失敗とはみなされません。ただし、すべてのリクエストを匿名として扱う認証モードになる可能性があります。

--authorization-always-allow-paths strings     デフォルト値: "/healthz,/readyz,/livez"

認可処理をスキップするHTTPパスのリストです。これらのパスはコアKubernetesサーバーに問い合わせることなく許可されます。

--authorization-kubeconfig string

subjectaccessreviews.authorization.k8s.io を作成するための十分な権限を持つコアKubernetesサーバーを指すkubeconfigファイルです。この設定はオプショナルです。省略した場合、認可でスキップされないすべてのリクエストは拒否されます。

--authorization-webhook-cache-authorized-ttl duration     デフォルト値: 10s

webhook authorizerからの許可レスポンスをキャッシュする期間です。

--authorization-webhook-cache-unauthorized-ttl duration     デフォルト値: 10s

webhook authorizerからの拒否レスポンスをキャッシュする期間です。

--bind-address string     デフォルト値: 0.0.0.0

--secure-portでリッスンする際に使用するIPアドレスです。関連するインターフェースはクラスター内および CLI/Webクライアントから到達可能である必要があります。空または未指定アドレス(0.0.0.0 や ::)の場合は、すべてのインターフェースとIPアドレスファミリーを使用します。

--cert-dir string

TLS証明書を配置するディレクトリです。--tls-cert-fileと--tls-private-key-fileが指定されている場合、このフラグは無視されます。

--client-ca-file string

設定されている場合、client-ca-fileに含まれるいずれかの認証局が署名したクライアント証明書を提示したリクエストは、CommonNameに対応するIDで認証されます。

--config string

設定ファイルへのパスです。

--contention-profiling     デフォルト値: true

非推奨: プロファイリングが有効な場合にブロックプロファイリングを有効にします。--configで設定ファイルが指定されている場合、このパラメーターは無視されます。

--disable-http2-serving

trueの場合、HTTP2によるサービスが無効化されます。[デフォルト値=false]

--disabled-metrics strings

このフラグは、異常な動作をするメトリクスに対する回避策として機能します。無効化するには完全修飾されたメトリクス名を指定する必要があります。注意: メトリクスの無効化は非表示メトリクスを表示する設定よりも優先されます。

--emulated-version strings

各コンポーネントがエミュレートする機能(API、機能など)のバージョンを示します。
この設定が有効になっている場合、コンポーネントは基盤となるバイナリのバージョンではなく、指定されたバージョンの動作をエミュレートします。
バージョン形式はmajor.minorの組み合わせのみ指定可能です(例: '--emulated-version=wardle=1.2,kube=1.31')。
オプション: kube=1.31..1.34(デフォルト値: 1.34)
コンポーネントが指定されていない場合、デフォルトで"kube"が使用されます。

--feature-gates colonSeparatedMultimapStringString

アルファ版/実験的機能に関するコンポーネントごとの機能ゲート設定を、カンマ区切りの「コンポーネント:キー=値」形式で指定します。
コンポーネントが指定されていない場合、デフォルトで"kube"が使用されます。このフラグは複数回指定可能です。使用例: --feature-gates 'wardle:featureA=true,wardle:featureB=false' --feature-gates 'kube:featureC=true' オプションは以下の通りです:
kube:APIResponseCompression=true|false (BETA - デフォルト値=true)
kube:APIServerIdentity=true|false (BETA - デフォルト値=true)
kube:APIServingWithRoutine=true|false (ALPHA - デフォルト値=false)
kube:AllAlpha=true|false (ALPHA - デフォルト値=false)
kube:AllBeta=true|false (BETA - デフォルト値=false)
kube:AllowParsingUserUIDFromCertAuth=true|false (BETA - デフォルト値=true)
kube:AllowUnsafeMalformedObjectDeletion=true|false (ALPHA - デフォルト値=false)
kube:CBORServingAndStorage=true|false (ALPHA - デフォルト値=false)
kube:CPUManagerPolicyAlphaOptions=true|false (ALPHA - デフォルト値=false)
kube:CPUManagerPolicyBetaOptions=true|false (BETA - デフォルト値=true)
kube:CSIVolumeHealth=true|false (ALPHA - デフォルト値=false)
kube:ClearingNominatedNodeNameAfterBinding=true|false (ALPHA - デフォルト値=false)
kube:ClientsAllowCBOR=true|false (ALPHA - デフォルト値=false)
kube:ClientsPreferCBOR=true|false (ALPHA - デフォルト値=false)
kube:CloudControllerManagerWebhook=true|false (ALPHA - デフォルト値=false)
kube:ClusterTrustBundle=true|false (BETA - デフォルト値=false)
kube:ClusterTrustBundleProjection=true|false (BETA - デフォルト値=false)
kube:ComponentFlagz=true|false (ALPHA - デフォルト値=false)
kube:ComponentStatusz=true|false (ALPHA - デフォルト値=false)
kube:ConcurrentWatchObjectDecode=true|false (BETA - デフォルト値=false)
kube:ContainerCheckpoint=true|false (BETA - デフォルト値=true)
kube:ContainerRestartRules=true|false (ALPHA - デフォルト値=false)
kube:ContainerStopSignals=true|false (ALPHA - デフォルト値=false)
kube:ContextualLogging=true|false (BETA - デフォルト値=true)
kube:CoordinatedLeaderElection=true|false (BETA - デフォルト値=false)
kube:CrossNamespaceVolumeDataSource=true|false (ALPHA - デフォルト値=false)
kube:CustomCPUCFSQuotaPeriod=true|false (ALPHA - デフォルト値=false)
kube:DRAAdminAccess=true|false (BETA - デフォルト値=true)
kube:DRAConsumableCapacity=true|false (ALPHA - デフォルト値=false)
kube:DRADeviceBindingConditions=true|false (ALPHA - デフォルト値=false)
kube:DRADeviceTaints=true|false (ALPHA - デフォルト値=false)
kube:DRAExtendedResource=true|false (ALPHA - デフォルト値=false)
kube:DRAPartitionableDevices=true|false (ALPHA - デフォルト値=false)
kube:DRAPrioritizedList=true|false (BETA - デフォルト値=true)
kube:DRAResourceClaimDeviceStatus=true|false (BETA - デフォルト値=true)
kube:DRASchedulerFilterTimeout=true|false (BETA - デフォルト値=true)
kube:DeclarativeValidation=true|false (BETA - デフォルト値=true)
kube:DeclarativeValidationTakeover=true|false (BETA - デフォルト値=false)
kube:DeploymentReplicaSetTerminatingReplicas=true|false (ALPHA - デフォルト値=false)
kube:DetectCacheInconsistency=true|false (BETA - デフォルト値=true)
kube:DisableCPUQuotaWithExclusiveCPUs=true|false (BETA - デフォルト値=true)
kube:EnvFiles=true|false (ALPHA - デフォルト値=false)
kube:EventedPLEG=true|false (ALPHA - デフォルト値=false)
kube:ExternalServiceAccountTokenSigner=true|false (BETA - デフォルト値=true)
kube:GracefulNodeShutdown=true|false (BETA - デフォルト値=true)
kube:GracefulNodeShutdownBasedOnPodPriority=true|false (BETA - デフォルト値=true)
kube:HPAConfigurableTolerance=true|false (ALPHA - デフォルト値=false)
kube:HPAScaleToZero=true|false (ALPHA - デフォルト値=false)
kube:HostnameOverride=true|false (ALPHA - デフォルト値=false)
kube:ImageMaximumGCAge=true|false (BETA - デフォルト値=true)
kube:ImageVolume=true|false (BETA - デフォルト値=false)
kube:InOrderInformers=true|false (BETA - デフォルト値=true)
kube:InPlacePodVerticalScaling=true|false (BETA - デフォルト値=true)
kube:InPlacePodVerticalScalingExclusiveCPUs=true|false (ALPHA - デフォルト値=false)
kube:InPlacePodVerticalScalingExclusiveMemory=true|false (ALPHA - デフォルト値=false)
kube:InTreePluginPortworxUnregister=true|false (ALPHA - デフォルト値=false)
kube:InformerResourceVersion=true|false (ALPHA - デフォルト値=false)
kube:JobManagedBy=true|false (BETA - デフォルト値=true)
kube:KubeletCrashLoopBackOffMax=true|false (ALPHA - デフォルト値=false)
kube:KubeletEnsureSecretPulledImages=true|false (ALPHA - デフォルト値=false)
kube:KubeletFineGrainedAuthz=true|false (BETA - デフォルト値=true)
kube:KubeletInUserNamespace=true|false (ALPHA - デフォルト値=false)
kube:KubeletPSI=true|false (BETA - デフォルト値=true)
kube:KubeletPodResourcesDynamicResources=true|false (BETA - デフォルト値=true)
kube:KubeletPodResourcesGet=true|false (BETA - デフォルト値=true)
kube:KubeletSeparateDiskGC=true|false (BETA - デフォルト値=true)
kube:KubeletServiceAccountTokenForCredentialProviders=true|false (BETA - デフォルト値=true)
kube:ListFromCacheSnapshot=true|false (BETA - デフォルト値=true)
kube:LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (BETA - デフォルト値=false)
kube:LoggingAlphaOptions=true|false (ALPHA - デフォルト値=false)
kube:LoggingBetaOptions=true|false (BETA - デフォルト値=true)
kube:MatchLabelKeysInPodTopologySpread=true|false (BETA - デフォルト値=true)
kube:MatchLabelKeysInPodTopologySpreadSelectorMerge=true|false (BETA - デフォルト値=true)
kube:MaxUnavailableStatefulSet=true|false (ALPHA - デフォルト値=false)
kube:MemoryQoS=true|false (ALPHA - デフォルト値=false)
kube:MutableCSINodeAllocatableCount=true|false (BETA - デフォルト値=false)
kube:MutatingAdmissionPolicy=true|false (BETA - デフォルト値=false)
kube:NodeLogQuery=true|false (BETA - デフォルト値=false)
kube:NominatedNodeNameForExpectation=true|false (ALPHA - デフォルト値=false)
kube:OpenAPIEnums=true|false (BETA - デフォルト値=true)
kube:PodAndContainerStatsFromCRI=true|false (ALPHA - デフォルト値=false)
kube:PodCertificateRequest=true|false (ALPHA - デフォルト値=false)
kube:PodDeletionCost=true|false (BETA - デフォルト値=true)
kube:PodLevelResources=true|false (BETA - デフォルト値=true)
kube:PodLogsQuerySplitStreams=true|false (ALPHA - デフォルト値=false)
kube:PodObservedGenerationTracking=true|false (BETA - デフォルト値=true)
kube:PodReadyToStartContainersCondition=true|false (BETA - デフォルト値=true)
kube:PodTopologyLabelsAdmission=true|false (ALPHA - デフォルト値=false)
kube:PortForwardWebsockets=true|false (BETA - デフォルト値=true)
kube:PreferSameTrafficDistribution=true|false (BETA - デフォルト値=true)
kube:PreventStaticPodAPIReferences=true|false (BETA - デフォルト値=true)
kube:ProcMountType=true|false (BETA - デフォルト値=true)
kube:QOSReserved=true|false (ALPHA - デフォルト値=false)
kube:ReduceDefaultCrashLoopBackOffDecay=true|false (ALPHA - デフォルト値=false)
kube:RelaxedServiceNameValidation=true|false (ALPHA - デフォルト値=false)
kube:ReloadKubeletServerCertificateFile=true|false (BETA - デフォルト値=true)
kube:RemoteRequestHeaderUID=true|false (BETA - デフォルト値=true)
kube:ResourceHealthStatus=true|false (ALPHA - デフォルト値=false)
kube:RotateKubeletServerCertificate=true|false (BETA - デフォルト値=true)
kube:RuntimeClassInImageCriApi=true|false (ALPHA - デフォルト値=false)
kube:SELinuxChangePolicy=true|false (BETA - デフォルト値=true)
kube:SELinuxMount=true|false (BETA - デフォルト値=false)
kube:SELinuxMountReadWriteOncePod=true|false (BETA - デフォルト値=true)
kube:SchedulerAsyncAPICalls=true|false (BETA - デフォルト値=true)
kube:SchedulerAsyncPreemption=true|false (BETA - デフォルト値=true)
kube:SchedulerPopFromBackoffQ=true|false (BETA - デフォルト値=true)
kube:ServiceAccountNodeAudienceRestriction=true|false (BETA - デフォルト値=true)
kube:SizeBasedListCostEstimate=true|false (BETA - デフォルト値=true)
kube:StorageCapacityScoring=true|false (ALPHA - デフォルト値=false)
kube:StorageVersionAPI=true|false (ALPHA - デフォルト値=false)
kube:StorageVersionHash=true|false (BETA - デフォルト値=true)
kube:StorageVersionMigrator=true|false (ALPHA - デフォルト値=false)
kube:StrictIPCIDRValidation=true|false (ALPHA - デフォルト値=false)
kube:StructuredAuthenticationConfigurationEgressSelector=true|false (BETA - デフォルト値=true)
kube:SupplementalGroupsPolicy=true|false (BETA - デフォルト値=true)
kube:SystemdWatchdog=true|false (BETA - デフォルト値=true)
kube:TokenRequestServiceAccountUIDValidation=true|false (BETA - デフォルト値=true)
kube:TopologyManagerPolicyAlphaOptions=true|false (ALPHA - デフォルト値=false)
kube:TopologyManagerPolicyBetaOptions=true|false (BETA - デフォルト値=true)
kube:TranslateStreamCloseWebsocketRequests=true|false (BETA - デフォルト値=true)
kube:UnauthenticatedHTTP2DOSMitigation=true|false (BETA - デフォルト値=true)
kube:UnknownVersionInteroperabilityProxy=true|false (ALPHA - デフォルト値=false)
kube:UserNamespacesPodSecurityStandards=true|false (ALPHA - デフォルト値=false)
kube:UserNamespacesSupport=true|false (BETA - デフォルト値=true)
kube:WatchCacheInitializationPostStartHook=true|false (BETA - デフォルト値=false)
kube:WatchList=true|false (BETA - デフォルト値=true)
kube:WatchListClient=true|false (BETA - デフォルト値=false)
kube:WindowsCPUAndMemoryAffinity=true|false (ALPHA - デフォルト値=false)
kube:WindowsGracefulNodeShutdown=true|false (BETA - デフォルト値=true)

-h, --help

kube-schedulerのヘルプ情報です。

--http2-max-streams-per-connection int

HTTP/2接続においてサーバーがクライアントに許可する最大ストリーム数の上限です。値が0の場合、Go言語のデフォルト値が使用されます。

--kube-api-burst int32     デフォルト値: 100

非推奨: Kubernetes APIサーバーと通信する際のバースト値です。--configで設定ファイルが指定されている場合、このパラメーターは無視されます。

--kube-api-content-type string     デフォルト値: "application/vnd.kubernetes.protobuf"

非推奨: APIサーバーへ送信されるリクエストのコンテンツタイプです。--configで設定ファイルが指定されている場合、このパラメーターは無視されます。

--kube-api-qps float     デフォルト値: 50

非推奨: Kubernetes APIサーバーと通信するときに使用するQPSです。--configで設定ファイルが指定されている場合このパラメーターは無視されます。

--kubeconfig string

非推奨: 認証情報とマスターノードの位置情報を含むkubeconfigファイルのパスです。--configで設定ファイルが指定されている場合、このパラメーターは無視されます。

--leader-elect     デフォルト値: true

リーダー選出クライアントを起動し、メインループを実行する前にリーダーシップを取得します。高可用性のために、コンポーネントを複数実行する場合に有効にします。

--leader-elect-lease-duration duration     デフォルト値: 15s

リーダー候補がリーダーシップの更新を確認した後、未更新のリーダースロットのリーダーシップ取得を試みるまで待機する時間です。実質的には、他の候補に交代されるまで既存リーダーが停止できる時間の上限です。リーダー選出を有効にしている場合のみ適用されます。

--leader-elect-renew-deadline duration     デフォルト値: 10s

現在のリーダーがリーダーシップを停止する前に更新を試みる間隔です。この時間はリース期間よりも短くなければなりません。リーダー選出が有効な場合のみ適用されます。

--leader-elect-resource-lock string     デフォルト値: "leases"

リーダー選出時のロックに使用されるリソースオブジェクトの種類です。サポートされているオプションには、 'leases'があります。

--leader-elect-resource-name string     デフォルト値: "kube-scheduler"

リーダー選出時のロックに使用されるリソースオブジェクト名です。

--leader-elect-resource-namespace string     デフォルト値: "kube-system"

リーダー選出時のロックに使用されるリソースオブジェクトの名前空間です。

--leader-elect-retry-period duration     デフォルト値: 2s

リーダーシップの取得や更新を試みる際にクライアントが待機すべき時間です。リーダー選出が有効な場合のみ適用されます。

--log-flush-frequency duration     デフォルト値: 5s

ログをフラッシュする間隔の最大秒数です。

--log-text-info-buffer-size quantity

[Alpha] 分割ストリームを伴うテキスト形式で、パフォーマンス向上のためinfoレベルのメッセージを一時的にバッファリングすることができます。デフォルト値の0バイトはバッファリングを無効にします。サイズはバイト数(512)、1000の倍数(1K)、1024の倍数(2Ki)、またはそのべき乗(3M、4G、5Mi、6Gi)で指定できます。使用するにはLoggingAlphaOptionsフィーチャーゲートを有効にしてください。

--log-text-split-stream

[Alpha] テキスト形式でエラーをstderr、infoをstdoutにそれぞれ出力します。デフォルトでは単一ストリームをstdoutに書き込みます。使用するにはLoggingAlphaOptionsフィーチャーゲートを有効にしてください。

--logging-format string     デフォルト値: "text"

ログのフォーマットを設定します。現在使用できるフォーマットは "text" です。

--master string

Kubernetes APIサーバーのアドレスです。kubeconfigに設定された値を上書きします。

--permit-address-sharing

trueの場合、ポートをバインドする際にSO_REUSEADDRを使用します。0.0.0.0などのワイルドカードIPと特定IPを並行してバインドでき、カーネルがTIME_WAIT状態のソケットが解放することを待つ必要がなくなります。[デフォルト値=false]

--permit-port-sharing

trueの場合、ポートをバインドする際にSO_REUSEPORTを使用し、同じアドレスとポートに複数のインスタンスをバインドできるようにします。[デフォルト値=false]

--pod-max-in-unschedulable-pods-duration duration     デフォルト値: 5m0s

非推奨: PodがunschedulablePodsに留まれる最大時間です。この値を超えて滞留したPodは unschedulablePodsからbackoffQまたはactiveQに移動します。このフラグは非推奨であり、将来のバージョンで削除されます。

--profiling     デフォルト値: true

非推奨: host:port/debug/pprof/経由のWebインターフェースでプロファイリングを有効にします。--configで設定ファイルが指定されている場合、このパラメーターは無視されます。

--requestheader-allowed-names strings

--requestheader-username-headersで指定されたヘッダーにユーザー名を設定することを許可するクライアント証明書のCommon Nameリストです。空の場合、--requestheader-client-ca-fileで指定された認証局によって検証された任意のクライアント証明書が許可されます。

--requestheader-client-ca-file string

--requestheader-username-headersで指定されたヘッダー内のユーザー名を信用する前に、受信リクエストのクライアント証明書を検証するためのルート証明書バンドルです。注意: 通常、受信リクエストに対する認証処理が既に完了していることを前提としないでください。

--requestheader-extra-headers-prefix strings     デフォルト値: "x-remote-extra-"

検査対象とするリクエストヘッダーのプレフィックスリストです。X-Remote-Extra-が推奨されます。

--requestheader-group-headers strings     デフォルト値: "x-remote-group"

グループを判別するために検査するリクエストヘッダーのリストです。X-Remote-Groupが推奨されます。

--requestheader-uid-headers strings

UIDを確認するために検査するリクエストヘッダーのリストです。X-Remote-Uidが推奨されます。RemoteRequestHeaderUIDフィーチャーの有効化が必要です。

--requestheader-username-headers strings     デフォルト値: "x-remote-user"

ユーザー名を検証するために使用されるリクエストヘッダーのリストです。一般的にはX-Remote-Userが使用されます。

--secure-port int     デフォルト値: 10259

認証および認可を伴うHTTPSを提供するポートです。0の場合、HTTPSを提供しません。

--show-hidden-metrics-for-version string

非表示メトリクスを表示したい直前のバージョンを指定します。直前のマイナーバージョンのみが有効で、それ以外の値は許可されていません。形式は <major>.<minor> (例: 1.16)です。このフォーマットの目的は、次のリリースで追加のメトリクスが隠されている可能性を事前に把握できるようにすることです。これにより、その次のリリースで恒久的に削除された場合に驚くことを防ぎます。

--tls-cert-file string

HTTPS用のデフォルトx509証明書を含むファイルです(存在する場合はサーバー証明書の後にCA証明書を連結)。HTTPS提供が有効で、--tls-cert-fileと--tls-private-key-fileが指定されていない場合は、公開アドレス用の自己署名証明書と秘密鍵が生成され、--cert-dirで指定したディレクトリに保存されます。

--tls-cipher-suites strings

サーバーで使用する暗号スイートのカンマ区切りリストです。省略した場合、デフォルトのGo暗号スイートが適用されます。
推奨値: TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
非推奨値: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_3DES_EDE_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_RC4_128_SHA

--tls-min-version string

サポートされている最小TLS バージョン。有効な値: VersionTLS10、VersionTLS11、VersionTLS12、VersionTLS13

--tls-private-key-file string

--tls-cert-fileと対になるx509秘密鍵を含むファイルです。

--tls-sni-cert-key string

x509証明書ファイルと秘密鍵ファイルのパスを指定します。オプションで、完全修飾ドメイン名で構成されるドメイン名パターンのリストをサフィックスとして指定でき、さらにプレフィックス付きのワイルドカードセグメントを含めることも可能です。ドメインパターンにはIPアドレスも指定可能ですが、APIサーバーがクライアントから要求されたIPアドレスを認識できる場合にのみ使用してください。ドメインパターンが指定されていない場合、証明書の名称が抽出されます。ワイルドカードマッチよりも非ワイルドカードマッチが優先され、明示的に指定されたドメインパターンは抽出された名称よりも優先されます。複数のキー/証明書ペアを使用する場合は、--tls-sni-cert-keyオプションを複数回指定してください。使用例: "example.crt,example.key"、"foo.crt,foo.key:*.foo.com,foo.com"。

-v, --v int

ログレベルの詳細度を示す数値です。

--version version[=true]

--versionや--version=rawを指定するとバージョン情報を表示して終了します。--version=vX.Y.Z... の形式で指定すると報告されるバージョンを設定します。

--vmodule pattern=N,...

ファイルベースのログフィルタリングに使用する"pattern=N"設定のカンマ区切りリストです(テキストログ形式のみで使用可能)。

--write-config-to string

このパラメーターが設定されている場合、設定値をこのファイルに書き出して終了します。

3 - Kubelet 認証/認可

概要

kubeletのHTTPSエンドポイントは、さまざまな感度のデータへのアクセスを提供するAPIを公開し、 ノードとコンテナ内のさまざまなレベルの権限でタスクを実行できるようにします。

このドキュメントでは、kubeletのHTTPSエンドポイントへのアクセスを認証および承認する方法について説明します。

Kubelet 認証

デフォルトでは、他の構成済み認証方法によって拒否されないkubeletのHTTPSエンドポイントへのリクエストは 匿名リクエストとして扱われ、ユーザー名はsystem:anonymous、 グループはsystem:unauthenticatedになります。

匿名アクセスを無効にし、認証されていないリクエストに対して401 Unauthorized応答を送信するには:

  • --anonymous-auth=falseフラグでkubeletを開始します。

kubeletのHTTPSエンドポイントに対するX509クライアント証明書認証を有効にするには:

  • --client-ca-fileフラグでkubeletを起動し、クライアント証明書を確認するためのCAバンドルを提供します。
  • --kubelet-client-certificateおよび--kubelet-client-keyフラグを使用してapiserverを起動します。
  • 詳細については、apiserver認証ドキュメントを参照してください。

APIベアラートークン(サービスアカウントトークンを含む)を使用して、kubeletのHTTPSエンドポイントへの認証を行うには:

  • APIサーバーでauthentication.k8s.io/v1beta1グループが有効になっていることを確認します。
  • --authentication-token-webhookおよび--kubeconfigフラグを使用してkubeletを開始します。
  • kubeletは、構成済みのAPIサーバーで TokenReview APIを呼び出して、ベアラートークンからユーザー情報を判別します。

Kubelet 承認

認証に成功した要求(匿名要求を含む)はすべて許可されます。デフォルトの認可モードは、すべての要求を許可するAlwaysAllowです。

kubelet APIへのアクセスを細分化するのは、次のような多くの理由が考えられます:

  • 匿名認証は有効になっていますが、匿名ユーザーがkubeletのAPIを呼び出す機能は制限する必要があります。
  • ベアラートークン認証は有効になっていますが、kubeletのAPIを呼び出す任意のAPIユーザー(サービスアカウントなど)の機能を制限する必要があります。
  • クライアント証明書の認証は有効になっていますが、構成されたCAによって署名されたクライアント証明書の一部のみがkubeletのAPIの使用を許可されている必要があります。

kubeletのAPIへのアクセスを細分化するには、APIサーバーに承認を委任します:

  • APIサーバーでauthorization.k8s.io/v1beta1 APIグループが有効になっていることを確認します。
  • --authorization-mode=Webhook--kubeconfigフラグでkubeletを開始します。
  • kubeletは、構成されたAPIサーバーでSubjectAccessReview APIを呼び出して、各リクエストが承認されているかどうかを判断します。

kubeletは、apiserverと同じリクエスト属性アプローチを使用してAPIリクエストを承認します。

動詞は、受けとったリクエストのHTTP動詞から決定されます:

HTTP動詞 要求 動詞
POST create
GET, HEAD get
PUT update
PATCH patch
DELETE delete

リソースとサブリソースは、受けとったリクエストのパスから決定されます:

Kubelet API リソース サブリソース
/stats/* nodes stats
/metrics/* nodes metrics
/logs/* nodes log
/spec/* nodes spec
all others nodes proxy

名前空間とAPIグループの属性は常に空の文字列であり、 リソース名は常にkubeletのNode APIオブジェクトの名前です。

このモードで実行する場合は、apiserverに渡される--kubelet-client-certificateフラグと--kubelet-client-key フラグで識別されるユーザーが次の属性に対して許可されていることを確認します:

  • verb=*, resource=nodes, subresource=proxy
  • verb=*, resource=nodes, subresource=stats
  • verb=*, resource=nodes, subresource=log
  • verb=*, resource=nodes, subresource=spec
  • verb=*, resource=nodes, subresource=metrics