4.3. Kernel Module Management Operator の設定


ほとんどの場合、Kernel Module Management (KMM) Operator のデフォルト設定を変更する必要はありません。ただし、環境に合わせて Operator 設定を変更できます。

手順

  • 設定を変更するには、関連するデータを含む Operator namespace に kmm-operator-manager-config という名前の ConfigMap を作成し、次のコマンドを使用してコントローラーを再起動します。

    $ oc rollout restart -n "$namespace" deployment/kmm-operator-controller
    Copy to Clipboard Toggle word wrap

    $namespace の値はインストール方法によって異なります。

    出力例

    apiVersion: v1
    data:
      controller_config.yaml: |
        worker:
          firmwareHostPath: /example/different/firmware/path
    kind: ConfigMap
    metadata:
      name: kmm-operator-manager-config
      namespace: openshift-kmm
    Copy to Clipboard Toggle word wrap

注記

KMM Hub を設定する場合は、KMM Hub コントローラーの namespace で kmm-operator-hub-manager-config という名前を使用して、ConfigMap を作成します。

Expand
表4.1 Operator 設定パラメーター
パラメーター説明

healthProbeBindAddress

Operator が kubelet ヘルスプローブを監視するアドレスを定義します。推奨値は :8081 です。

job.gcDelay

成功したビルド Pod を削除するまでの保持期間を定義します。この設定の有効な値は、ParseDuration を参照してください。デフォルト値は 0s です。

leaderElection.enabled

leader election を使用して KMM Operator のレプリカが常に 1 つだけ実行されるようにするか決定します。詳細は、リース を参照してください。デフォルト値は true です。

leaderElection.resourceID

leader election がリーダーロックを保持するために使用するリソースの名前を決定します。KMM のデフォルト値は kmm.sigs.x-k8s.io です。KMM-hub のデフォルト値は kmm-hub.sigs.x-k8s.io です。

metrics.bindAddress

メトリクスサーバーのバインドアドレスを決定します。メトリクスサーバーを無効にするには、これを "0" に設定します。デフォルト値は 0.0.0.0:8443 です。

metrics.disableHTTP2

true の場合、CVE-2023-44487 の緩和策として、メトリクススサーバーの HTTP/2 が無効になります。デフォルト値は true です。

metrics.enableAuthnAuthz

メトリクスの認証に TokenReviews を使用し、認可に kube-apiserver で SubjectAccessReviews を使用するか決定します。

認証と認可のために、コントローラーには次のルールを持つ ClusterRole が必要です。

  • apiGroups: authentication.k8s.io, resources: tokenreviews, verbs: create
  • apiGroups: authorization.k8s.io, resources: subjectaccessreviews, verbs: create

たとえば、Prometheus を使用してメトリクスをスクレイピングするには、クライアントに次のルールを持つ ClusterRole が必要です。

  • nonResourceURLs: "/metrics", verbs: get

デフォルト値は true です。

metrics.secureServing

メトリクスが HTTP ではなく HTTPS 経由で提供されるかどうかを決定します。デフォルト値は true です。

webhook.disableHTTP2

true の場合、CVE-2023-44487 の軽減策として、webhook サーバーの HTTP/2 が無効になります。デフォルト値は true です。

webhook.port

Operator が webhook リクエストを監視するポートを定義します。デフォルト値は 9443 です。

worker.runAsUser

ワーカーコンテナーのセキュリティーコンテキストの runAsUser フィールド値を決定します。詳細は、SecurityContext を参照してください。デフォルト値は 9443 です。

worker.seLinuxType

ワーカーコンテナーのセキュリティーコンテキストの seLinuxOptions.type フィールド値を決定します。詳細は、SecurityContext を参照してください。デフォルト値は spc_t です。

worker.firmwareHostPath

設定されている場合、このフィールドの値はワーカーコンテナーによってノード上の /sys/module/firmware_class/parameters/path ファイルに書き込まれます。詳細は、カーネルのファームウェア検索パスの設定 を参照してください。デフォルト値は /var/lib/firmware です。

4.3.1. カーネルモジュールのアンロード

新しいバージョンに移行する場合、またはカーネルモジュールがノードに望ましくない作用をもたらす場合は、カーネルモジュールをアンロードする必要があります。

手順

  • KMM でロードされたモジュールをノードからアンロードするには、対応する Module リソースを削除します。次に、KMM が必要に応じてワーカー Pod を作成し、modprobe -r を実行してノードからカーネルモジュールをアンロードします。

    警告

    ワーカー Pod をアンロードする場合、KMM はカーネルモジュールをロードするときに使用するすべてのリソースを必要とします。これには、Module で参照される ServiceAccount と、特権付き KMM ワーカー Pod の実行を許可するために定義された RBAC が含まれます。また、.spec.imageRepoSecret で参照されるプルシークレットも含まれます。

    KMM がノードからカーネルモジュールをアンロードできない状況を回避するには、Module リソースが Terminating などの任意の状態でクラスター内に存在している間は、それらのリソースが削除されないようにしてください。KMM には、少なくとも 1 つの Module リソースを含む namespaces の削除を拒否する検証アドミッション Webhook が含まれています。

4.3.2. カーネルファームウェア検索パスの設定

ファームウェアの検索パス で説明されているとおり、Linux カーネルは firmware_class.path パラメーターをファームウェアの検索パスとして受け入れます。

KMM ワーカー Pod は、kmods のロードを試みる前に sysfs に書き込むことで、ノードにこの値を設定できます。

手順

  • ファームウェア検索パスを定義するには、Operator 設定で worker.setFirmwareClassPath/var/lib/firmware に設定します。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat