検索

10.5. ワーカープールカナリアのマシン設定継承の管理

download PDF

既存のマシン設定プール (MCP) に割り当てられている MachineConfig を継承するように、MCP カナリアを設定できます。この設定は、既存の MCP のノードを 1 つずつ更新しながら、MCP カナリアを使用してテストする場合に便利です。

前提条件

  • 1 つ以上の MCP を作成した。

手順

  1. 次の 2 つのステップに従ってセカンダリー MCP を作成します。

    1. 次の設定ファイルを machineConfigPool.yaml として保存します。

      machineConfigPool YAML の例

      apiVersion: machineconfiguration.openshift.io/v1
      kind: MachineConfigPool
      metadata:
        name: worker-perf
      spec:
        machineConfigSelector:
          matchExpressions:
            - {
               key: machineconfiguration.openshift.io/role,
               operator: In,
               values: [worker,worker-perf]
              }
        nodeSelector:
          matchLabels:
            node-role.kubernetes.io/worker-perf: ""
      # ...

    2. 次のコマンドを実行して、新しいマシン設定プールを作成します。

      $ oc create -f machineConfigPool.yaml

      出力例

      machineconfigpool.machineconfiguration.openshift.io/worker-perf created

  2. セカンダリー MCP にいくつかのマシンを追加します。次の例では、ワーカーノード worker-aworker-bworker-c にラベルを付けて、MCP worker-perf に追加します。

    $ oc label node worker-a node-role.kubernetes.io/worker-perf=''
    $ oc label node worker-b node-role.kubernetes.io/worker-perf=''
    $ oc label node worker-c node-role.kubernetes.io/worker-perf=''
  3. 次の 2 つのステップに従って、MCP worker-perf 用の新しい MachineConfig を作成します。

    1. 次の MachineConfig の例を new-machineconfig.yaml というファイルとして保存します。

      MachineConfig YAML の例

      apiVersion: machineconfiguration.openshift.io/v1
      kind: MachineConfig
      metadata:
        labels:
          machineconfiguration.openshift.io/role: worker-perf
        name: 06-kdump-enable-worker-perf
      spec:
        config:
          ignition:
            version: 3.2.0
          systemd:
            units:
            - enabled: true
              name: kdump.service
        kernelArguments:
          - crashkernel=512M
      # ...

    2. 次のコマンドを実行して MachineConfig を適用します。

      $ oc create -f new-machineconfig.yaml
  4. 新しいカナリア MCP を作成し、前の手順で作成した MCP からマシンを追加します。次の例では、worker-perf-canary という MCP を作成し、以前に作成した worker-perf MCP からマシンを追加します。

    1. 次のコマンドを実行して、カナリアワーカーノードに worker-a というラベルを付けます。

      $ oc label node worker-a node-role.kubernetes.io/worker-perf-canary=''
    2. 次のコマンドを実行して、元の MCP からカナリアワーカーノード worker-a を削除します。

      $ oc label node worker-a node-role.kubernetes.io/worker-perf-
    3. 次のファイルを machineConfigPool-Canary.yaml として保存します。

      machineConfigPool-Canary.yaml ファイルの例

      apiVersion: machineconfiguration.openshift.io/v1
      kind: MachineConfigPool
      metadata:
        name: worker-perf-canary
      spec:
        machineConfigSelector:
          matchExpressions:
            - {
               key: machineconfiguration.openshift.io/role,
               operator: In,
               values: [worker,worker-perf,worker-perf-canary] 1
              }
        nodeSelector:
          matchLabels:
            node-role.kubernetes.io/worker-perf-canary: ""

      1
      オプションの値。この例には、追加の値として worker-perf-canary が含まれています。このような形で値を使用すると、追加の MachineConfig のメンバーを設定できます。
    4. 次のコマンドを実行して、新しい worker-perf-canary を作成します。

      $ oc create -f machineConfigPool-Canary.yaml

      出力例

      machineconfigpool.machineconfiguration.openshift.io/worker-perf-canary created

  5. MachineConfigworker-perf-canary に継承されているかどうかを確認します。

    1. 次のコマンドを実行して、MCP がデグレード状態になっていないことを確認します。

      $ oc get mcp

      出力例

      NAME                  CONFIG                                                          UPDATED   UPDATING   DEGRADED   MACHINECOUNT   READYMACHINECOUNT   UPDATEDMACHINECOUNT   DEGRADEDMACHINECOUNT   AGE
      master                rendered-master-2bf1379b39e22bae858ea1a3ff54b2ac                True      False      False      3              3                   3                     0                      5d16h
      worker                rendered-worker-b9576d51e030413cfab12eb5b9841f34                True      False      False      0              0                   0                     0                      5d16h
      worker-perf          rendered-worker-perf-b98a1f62485fa702c4329d17d9364f6a          True      False      False      2              2                   2                     0                      56m
      worker-perf-canary   rendered-worker-perf-canary-b98a1f62485fa702c4329d17d9364f6a   True      False      False      1              1                   1                     0                      44m

    2. マシンが worker-perf から worker-perf-canary に継承されていることを確認します。

      $ oc get nodes

      出力例

      NAME       STATUS   ROLES                        AGE     VERSION
      ...
      worker-a   Ready    worker,worker-perf-canary   5d15h   v1.27.13+e709aa5
      worker-b   Ready    worker,worker-perf          5d15h   v1.27.13+e709aa5
      worker-c   Ready    worker,worker-perf          5d15h   v1.27.13+e709aa5

    3. 次のコマンドを実行して、worker-akdump サービスが有効になっていることを確認します。

      $ systemctl status kdump.service

      出力例

      NAME       STATUS   ROLES                        AGE     VERSION
      ...
      kdump.service - Crash recovery kernel arming
           Loaded: loaded (/usr/lib/systemd/system/kdump.service; enabled; preset: disabled)
           Active: active (exited) since Tue 2024-09-03 12:44:43 UTC; 10s ago
          Process: 4151139 ExecStart=/usr/bin/kdumpctl start (code=exited, status=0/SUCCESS)
         Main PID: 4151139 (code=exited, status=0/SUCCESS)

    4. 次のコマンドを実行して、MCP が crashkernel を更新したことを確認します。

      $ cat /proc/cmdline

      出力には更新された crashekernel 値が含まれるはずです。次に例を示します。

      出力例

      crashkernel=512M

  6. オプション: アップグレードに問題がなければ、worker-aworker-perf に戻すことができます。

    1. 次のコマンドを実行して、worker-aworker-perf に戻します。

      $ oc label node worker-a node-role.kubernetes.io/worker-perf=''
    2. 次のコマンドを実行して、カナリア MCP から worker-a を削除します。

      $ oc label node worker-a node-role.kubernetes.io/worker-perf-canary-
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.