8.8. 機能ゲートの使用による各種機能の有効化
管理者は、機能ゲートを使用してデフォルトの機能セットの一部ではない機能を有効にできます。
8.8.1. 機能ゲートについて
FeatureGate カスタムリソース (CR) を使用して、クラスター内の特定の機能セットを有効にすることができます。機能セットは、デフォルトで有効にされない OpenShift Container Platform 機能のコレクションです。
FeatureGate CR を使用して、以下の機能セットをアクティブにすることができます。
TechPreviewNoUpgrade.この機能セットは、現在のテクノロジープレビュー機能のサブセットです。この機能セットを使用すると、テストクラスターでこれらのテクノロジープレビュー機能を有効にすることができます。そこでは、これらの機能を完全にテストできますが、運用クラスターでは機能を無効にしたままにできます。警告クラスターで
TechPreviewNoUpgrade機能セットを有効にすると、元に戻すことができず、マイナーバージョンの更新が妨げられます。本番クラスターでは、この機能セットを有効にしないでください。この機能セットにより、以下のテクノロジープレビュー機能が有効になります。
-
外部クラウドプロバイダー。vSphere、AWS、Azure、GCP 上にあるクラスターの外部クラウドプロバイダーのサポートを有効にします。OpenStack のサポートは GA です。これは内部機能であり、ほとんどのユーザーは操作する必要はありません。(
ExternalCloudProvider) -
OpenShift ビルドでの共有リソース CSI ドライバーおよびビルド CSI ボリューム。Container Storage Interface (CSI) を有効にします。(
CSIDriverSharedResource) -
CSI ボリューム。OpenShift Container Platform ビルドシステムの CSI ボリュームサポートを有効にします。(
BuildCSIVolumes) -
ノード上のスワップメモリー。ノードごとに OpenShift Container Platform ワークロードのスワップメモリーの使用を有効にします。(
NodeSwap) -
OpenStack Machine API プロバイダー。このゲートは効果がなく、今後のリリースでこの機能セットから削除される予定です。(
MachineAPIProviderOpenStack) -
Insights OperatorOpenShift Container Platform 設定データを収集して Red Hat に送信する Insights Operator を有効にします。(
InsightsConfigAPI) -
Pod トポロジー分散制約。Pod トポロジー制約の
matchLabelKeysパラメーターを有効にします。パラメーターは、拡散が計算される Pod を選択するための Pod ラベルキーのリストです。(MatchLabelKeysInPodTopologySpread) -
Retroactive デフォルトストレージクラス。PVC 作成時にデフォルトのストレージクラスがない場合に、OpenShift Container Platform は PVC に対してデフォルトのストレージクラスを遡及的に割り当てることができます。(
RetroactiveDefaultStorageClass) -
Pod の Disruption Budget (PDB) の正常でない Pod のエビクションポリシー。PDB 使用時に正常でない Pod がエビクションの対象とみなされるかどうかを指定する際のサポートが有効になります。(
PDBUnhealthyPodEvictionPolicy) -
動的リソース割り当て API。Pod とコンテナー間でリソースを要求および共有するための新しい API が有効になります。これは内部機能であり、ほとんどのユーザーは操作する必要はありません。(
DynamicResourceAllocation) -
Pod セキュリティーアドミッションの適用。Pod セキュリティーアドミッションの制限付き強制モードを有効にします。警告をログに記録するだけでなく、Pod のセキュリティー基準に違反している場合、Pod は拒否されます。(
OpenShiftPodSecurityAdmission)
-
外部クラウドプロバイダー。vSphere、AWS、Azure、GCP 上にあるクラスターの外部クラウドプロバイダーのサポートを有効にします。OpenStack のサポートは GA です。これは内部機能であり、ほとんどのユーザーは操作する必要はありません。(
TechPreviewNoUpgrade 機能ゲートによってアクティベートされる機能の詳細は、以下のトピックを参照してください。
8.8.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 ファイルを確認して機能ゲートが有効になっていることを確認できます。
- 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.8.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
変更を保存すると、新規マシン設定が作成され、マシン設定プールが更新され、変更が適用されている間に各ノードのスケジューリングが無効になります。
検証
ノードが Ready 状態に戻ると、ノードの 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.8.4. CLI を使用した機能セットの有効化
FeatureGate カスタムリソース (CR) を編集し、OpenShift CLI (oc) を使用してクラスター内のすべてのノードの機能セットを有効にすることができます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。
手順
機能セットを有効にするには、以下を実行します。
clusterという名前のFeatureGateCR を編集します。$ oc edit featuregate cluster
警告クラスターで
TechPreviewNoUpgrade機能セットを有効にすると、元に戻すことができず、マイナーバージョンの更新が妨げられます。本番クラスターでは、この機能セットを有効にしないでください。FeatureGate カスタムリソースのサンプル
apiVersion: config.openshift.io/v1 kind: FeatureGate metadata: name: cluster 1 # ... spec: featureSet: TechPreviewNoUpgrade 2
変更を保存すると、新規マシン設定が作成され、マシン設定プールが更新され、変更が適用されている間に各ノードのスケジューリングが無効になります。
検証
ノードが Ready 状態に戻ると、ノードの 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 のバージョンによって異なります。