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)
    • 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 フィーチャーゲートによってアクティブ化される機能の詳細については、次のトピックを参照してください。

8.7.2. インストール時の機能セットの有効化

クラスターをデプロイする前に install-config.yaml ファイルを編集することで、クラスター内のすべてのノードの機能セットを有効にすることができます。

前提条件

  • install-config.yaml ファイルがある。

手順

  1. 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

  2. ファイルを保存し、インストールプログラムを使用してクラスターをデプロイメントするときに参照します。

検証

ノードが準備完了状態に戻った後、ノード上の kubelet.conf ファイルを確認することで、フィーチャーゲートが有効になっていることを確認できます。

  1. Web コンソールの Administrator パースペクティブで、ComputeNodes に移動します。
  2. ノードを選択します。
  3. Node details ページで Terminal をクリックします。
  4. ターミナルウィンドウで、root ディレクトリーを /host に切り替えます。

    sh-4.2# chroot /host
  5. 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 コンソールを使用してクラスター内のすべてのノードの機能セットを有効にすることができます。

手順

機能セットを有効にするには、以下を実行します。

  1. OpenShift Container Platform Web コンソールで、AdministrationCustom Resource Definitions ページに切り替えます。
  2. Custom Resource Definitions ページで、FeatureGate をクリックします。
  3. Custom Resource Definition Details ページで、 Instances タブをクリックします。
  4. cluster フィーチャーゲートをクリックし、YAML タブをクリックします。
  5. cluster インスタンスを編集して特定の機能セットを追加します。

    警告

    クラスターで TechPreviewNoUpgrade 機能セットを有効にすると、元に戻すことができず、マイナーバージョンの更新が妨げられます。本番クラスターでは、この機能セットを有効にしないでください。

    フィーチャーゲートカスタムリソースのサンプル

    apiVersion: config.openshift.io/v1
    kind: FeatureGate
    metadata:
      name: cluster 1
    # ...
    spec:
      featureSet: TechPreviewNoUpgrade 2

    1
    FeatureGate CR の名前は cluster である必要があります。
    2
    有効にする機能セットを追加します。
    • TechPreviewNoUpgrade は、特定のテクノロジープレビュー機能を有効にします。

    変更を保存すると、新規マシン設定が作成され、マシン設定プールが更新され、変更が適用されている間に各ノードのスケジューリングが無効になります。

検証

ノードが準備完了状態に戻った後、ノード上の kubelet.conf ファイルを確認することで、フィーチャーゲートが有効になっていることを確認できます。

  1. Web コンソールの Administrator パースペクティブで、ComputeNodes に移動します。
  2. ノードを選択します。
  3. Node details ページで Terminal をクリックします。
  4. ターミナルウィンドウで、root ディレクトリーを /host に切り替えます。

    sh-4.2# chroot /host
  5. 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) がインストールされている。

手順

機能セットを有効にするには、以下を実行します。

  1. cluster という名前の FeatureGate CR を編集します。

    $ oc edit featuregate cluster
    警告

    クラスターで TechPreviewNoUpgrade 機能セットを有効にすると、元に戻すことができず、マイナーバージョンの更新が妨げられます。本番クラスターでは、この機能セットを有効にしないでください。

    FeatureGate カスタムリソースのサンプル

    apiVersion: config.openshift.io/v1
    kind: FeatureGate
    metadata:
      name: cluster 1
    # ...
    spec:
      featureSet: TechPreviewNoUpgrade 2

    1
    FeatureGate CR の名前は cluster である必要があります。
    2
    有効にする機能セットを追加します。
    • TechPreviewNoUpgrade は、特定のテクノロジープレビュー機能を有効にします。

    変更を保存すると、新規マシン設定が作成され、マシン設定プールが更新され、変更が適用されている間に各ノードのスケジューリングが無効になります。

検証

ノードが準備完了状態に戻った後、ノード上の kubelet.conf ファイルを確認することで、フィーチャーゲートが有効になっていることを確認できます。

  1. Web コンソールの Administrator パースペクティブで、ComputeNodes に移動します。
  2. ノードを選択します。
  3. Node details ページで Terminal をクリックします。
  4. ターミナルウィンドウで、root ディレクトリーを /host に切り替えます。

    sh-4.2# chroot /host
  5. kubelet.conf ファイルを表示します。

    sh-4.2# cat /etc/kubernetes/kubelet.conf

    出力例

    # ...
    featureGates:
      InsightsOperatorPullingSCA: true,
      LegacyNodeRoleBehavior: false
    # ...

    true として一覧表示されている機能は、クラスターで有効になっています。

    注記

    一覧表示される機能は、OpenShift Container Platform のバージョンによって異なります。