8.7. フィーチャーゲートを使用した機能の有効化
管理者は、フィーチャーゲートを使用して、デフォルトの機能セットに含まれていない機能を有効にすることができます。
8.7.1. フィーチャーゲートについて
FeatureGate
カスタムリソース (CR) を使用して、クラスター内の特定の機能セットを有効にすることができます。機能セットは、デフォルトで有効にされない OpenShift Container Platform 機能のコレクションです。
FeatureGate
CR を使用して、以下の機能セットをアクティブにすることができます。
TechPreviewNoUpgrade
.この機能セットは、現在のテクノロジープレビュー機能のサブセットです。この機能セットを使用すると、テストクラスターでこれらのテクノロジープレビュー機能を有効にすることができます。そこでは、これらの機能を完全にテストできますが、運用クラスターでは機能を無効にしたままにできます。警告クラスターで
TechPreviewNoUpgrade
機能セットを有効にすると、元に戻すことができず、マイナーバージョンの更新が妨げられます。本番クラスターでは、この機能セットを有効にしないでください。この機能セットにより、以下のテクノロジープレビュー機能が有効になります。
CSI の自動移行:サポートされているインツリーのボリュームプラグインを等価な Container Storage Interface (CSI) ドライバーに自動的に移行できます。サポート対象:
-
Azure File (
CSIMigrationAzureFile
) -
VMware vSphere (
CSIMigrationvSphere
)
-
Azure File (
-
OpenShift ビルドでの共有リソース CSI ドライバーおよびビルド CSI ボリューム。Container Storage Interface (CSI) を有効にします。(
CSIDriverSharedResource
) -
CSI ボリューム。OpenShift Container Platform ビルドシステムの CSI ボリュームサポートを有効にします。(
BuildCSIVolumes
) -
ノード上のスワップメモリー。ノードごとに OpenShift Container Platform ワークロードのスワップメモリーの使用を有効にします。(
NodeSwap
) -
cgroup 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
フィーチャーゲートによってアクティブ化される機能の詳細は、次のトピックを参照してください。
- CSI インラインの一時ボリューム
- CSI の自動移行
- Container Storage Interface (CSI) の使用
- Source-to-image (S2I) build volumes および Docker build volumes
- ノード上のスワップメモリー
- Cluster API によるマシンの管理
- Linux コントロールグループバージョン 2(cgroup v2)の有効化
- コンテナーエンジンとコンテナーランタイムについて
- Insights Operator の使用
- Pod トポロジー分散制約を使用した Pod 配置の制御
- Kubernetes ドキュメントの Pod セキュリティーアドミッション および Pod セキュリティーアドミッションの理解と管理
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
- ファイルを保存し、インストールプログラムを使用してクラスターをデプロイメントするときに参照します。
検証
ノードが準備完了状態に戻った後、ノード上の kubelet.conf
ファイルを確認することで、フィーチャーゲートが有効になっていることを確認できます。
-
Web コンソールの Administrator パースペクティブで、Compute
Nodes に移動します。 - ノードを選択します。
- Node details ページで Terminal をクリックします。
ターミナルウィンドウで、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. Web コンソールで機能セットの有効化
FeatureGate
カスタムリソース (CR) を編集して、OpenShift Container Platform Web コンソールを使用してクラスター内のすべてのノードの機能セットを有効にすることができます。
手順
機能セットを有効にするには、以下を実行します。
-
OpenShift Container Platform Web コンソールで、Administration
Custom Resource Definitions ページに切り替えます。 - Custom Resource Definitions ページで、FeatureGate をクリックします。
- Custom Resource Definition Details ページで、Instances タブをクリックします。
- cluster フィーチャーゲートをクリックし、YAML タブをクリックします。
cluster インスタンスを編集して特定の機能セットを追加します。
警告クラスターで
TechPreviewNoUpgrade
機能セットを有効にすると、元に戻すことができず、マイナーバージョンの更新が妨げられます。本番クラスターでは、この機能セットを有効にしないでください。フィーチャーゲートカスタムリソースのサンプル
apiVersion: config.openshift.io/v1 kind: FeatureGate metadata: name: cluster 1 # ... spec: featureSet: TechPreviewNoUpgrade 2
変更を保存すると、新規マシン設定が作成され、マシン設定プールが更新され、変更が適用されている間に各ノードのスケジューリングが無効になります。
検証
ノードが準備完了状態に戻った後、ノード上の kubelet.conf
ファイルを確認することで、フィーチャーゲートが有効になっていることを確認できます。
-
Web コンソールの Administrator パースペクティブで、Compute
Nodes に移動します。 - ノードを選択します。
- Node details ページで Terminal をクリックします。
ターミナルウィンドウで、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 を使用した機能セットの有効化
FeatureGate
カスタムリソース (CR) を編集し、OpenShift CLI (oc
) を使用してクラスター内のすべてのノードの機能セットを有効にすることができます。
前提条件
-
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
変更を保存すると、新規マシン設定が作成され、マシン設定プールが更新され、変更が適用されている間に各ノードのスケジューリングが無効になります。
検証
ノードが準備完了状態に戻った後、ノード上の kubelet.conf
ファイルを確認することで、フィーチャーゲートが有効になっていることを確認できます。
-
Web コンソールの Administrator パースペクティブで、Compute
Nodes に移動します。 - ノードを選択します。
- Node details ページで Terminal をクリックします。
ターミナルウィンドウで、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 のバージョンによって異なります。