16.2. シングルノード OpenShift クラスターのイメージベースアップグレードの準備
16.2.1. イメージベースアップグレード用の共有コンテナーパーティションの設定 リンクのコピーリンクがクリップボードにコピーされました!
イメージベースアップグレードを行うには、シングルノード OpenShift クラスターに共有の /var/lib/containers パーティションを設定する必要があります。これはインストール時に行うことができます。
16.2.1.1. ostree stateroot 間の共有コンテナーパーティションの設定 リンクのコピーリンクがクリップボードにコピーされました!
インストール時にシードクラスターとターゲットクラスターの両方に MachineConfig を適用して、個別のパーティションを作成し、アップグレードプロセス中に使用される 2 つの ostree stateroot 間で /var/lib/containers パーティションを共有します。
この手順はインストール時に完了する必要があります。
手順
MachineConfigを適用して個別のパーティションを作成します。apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: master name: 98-var-lib-containers-partitioned spec: config: ignition: version: 3.2.0 storage: disks: - device: /dev/disk/by-path/pci-<root_disk> partitions: - label: var-lib-containers startMiB: <start_of_partition> sizeMiB: <partition_size> filesystems: - device: /dev/disk/by-partlabel/var-lib-containers format: xfs mountOptions: - defaults - prjquota path: /var/lib/containers wipeFilesystem: true systemd: units: - contents: |- # Generated by Butane [Unit] Before=local-fs.target Requires=systemd-fsck@dev-disk-by\x2dpartlabel-var\x2dlib\x2dcontainers.service After=systemd-fsck@dev-disk-by\x2dpartlabel-var\x2dlib\x2dcontainers.service [Mount] Where=/var/lib/containers What=/dev/disk/by-partlabel/var-lib-containers Type=xfs Options=defaults,prjquota [Install] RequiredBy=local-fs.target enabled: true name: var-lib-containers.mountここでは、以下のようになります。
< ルートディスク >- ルートディスクを指定します。
<start_of_partition>- パーティションの開始位置を MiB 単位で指定します。値が小さすぎるとインストールは失敗します。
< パーティションサイズ >- プリキャッシュされたイメージに十分なディスク容量を確保するため、パーティションの最小サイズを 500GB に指定します。値が小さすぎると、インストール後のデプロイメントが失敗します。
16.2.1.2. GitOps ZTP を使用する場合の ostree stateroot 間の共有コンテナーディレクトリーの設定 リンクのコピーリンクがクリップボードにコピーされました!
GitOps Zero Touch Provisioning (ZTP) ワークフローを使用している場合は、次の手順を実行して、シードクラスターとターゲットクラスターの両方に個別のディスクパーティションを作成し、/var/lib/containers パーティションを共有します。
この手順はインストール時に完了する必要があります。
前提条件
- Butane をインストールした。詳細は、「Butane のインストール」を参照してください。
手順
storage.buファイルを作成します。variant: fcos version: 1.3.0 storage: disks: - device: /dev/disk/by-path/pci-<root_disk> wipe_table: false partitions: - label: var-lib-containers start_mib: <start_of_partition> size_mib: <partition_size> filesystems: - path: /var/lib/containers device: /dev/disk/by-partlabel/var-lib-containers format: xfs wipe_filesystem: true with_mount_unit: true mount_options: - defaults - prjquotaここでは、以下のようになります。
< ルートディスク >- ルートディスクを指定します。
<start_of_partition>- パーティションの開始位置を MiB 単位で指定します。値が小さすぎるとインストールは失敗します。
< パーティションサイズ >- プリキャッシュされたイメージに十分なディスク容量を確保するため、パーティションの最小サイズを 500GB に指定します。値が小さすぎると、インストール後のデプロイメントが失敗します。
次のコマンドを実行して、
storage.buを Ignition ファイルに変換します。$ butane storage.bu出力例:
{"ignition":{"version":"3.2.0"},"storage":{"disks":[{"device":"/dev/disk/by-path/pci-0000:00:17.0-ata-1.0","partitions":[{"label":"var-lib-containers","sizeMiB":0,"startMiB":250000}],"wipeTable":false}],"filesystems":[{"device":"/dev/disk/by-partlabel/var-lib-containers","format":"xfs","mountOptions":["defaults","prjquota"],"path":"/var/lib/containers","wipeFilesystem":true}]},"systemd":{"units":[{"contents":"# Generated by Butane\n[Unit]\nRequires=systemd-fsck@dev-disk-by\\x2dpartlabel-var\\x2dlib\\x2dcontainers.service\nAfter=systemd-fsck@dev-disk-by\\x2dpartlabel-var\\x2dlib\\x2dcontainers.service\n\n[Mount]\nWhere=/var/lib/containers\nWhat=/dev/disk/by-partlabel/var-lib-containers\nType=xfs\nOptions=defaults,prjquota\n\n[Install]\nRequiredBy=local-fs.target","enabled":true,"name":"var-lib-containers.mount"}]}}出力を
SiteConfigCR の.spec.clusters.nodes.ignitionConfigOverrideフィールドにコピーします。[...] spec: clusters: - nodes: - hostName: <name> ignitionConfigOverride: '{"ignition":{"version":"3.2.0"},"storage":{"disks":[{"device":"/dev/disk/by-path/pci-0000:00:17.0-ata-1.0","partitions":[{"label":"var-lib-containers","sizeMiB":0,"startMiB":250000}],"wipeTable":false}],"filesystems":[{"device":"/dev/disk/by-partlabel/var-lib-containers","format":"xfs","mountOptions":["defaults","prjquota"],"path":"/var/lib/containers","wipeFilesystem":true}]},"systemd":{"units":[{"contents":"# Generated by Butane\n[Unit]\nRequires=systemd-fsck@dev-disk-by\\x2dpartlabel-var\\x2dlib\\x2dcontainers.service\nAfter=systemd-fsck@dev-disk-by\\x2dpartlabel-var\\x2dlib\\x2dcontainers.service\n\n[Mount]\nWhere=/var/lib/containers\nWhat=/dev/disk/by-partlabel/var-lib-containers\nType=xfs\nOptions=defaults,prjquota\n\n[Install]\nRequiredBy=local-fs.target","enabled":true,"name":"var-lib-containers.mount"}]}}' [...]
検証
インストール中またはインストール後に、次のコマンドを実行して、ハブクラスターで
BareMetalHostオブジェクトにアノテーションが表示されていることを確認します。$ oc get bmh -n my-sno-ns my-sno -ojson | jq '.metadata.annotations["bmac.agent-install.openshift.io/ignition-config-overrides"]'出力例:
"{\"ignition\":{\"version\":\"3.2.0\"},\"storage\":{\"disks\":[{\"device\":\"/dev/disk/by-path/pci-0000:00:17.0-ata-1.0\",\"partitions\":[{\"label\":\"var-lib-containers\",\"sizeMiB\":0,\"startMiB\":250000}],\"wipeTable\":false}],\"filesystems\":[{\"device\":\"/dev/disk/by-partlabel/var-lib-containers\",\"format\":\"xfs\",\"mountOptions\":[\"defaults\",\"prjquota\"],\"path\":\"/var/lib/containers\",\"wipeFilesystem\":true}]},\"systemd\":{\"units\":[{\"contents\":\"# Generated by Butane\\n[Unit]\\nRequires=systemd-fsck@dev-disk-by\\\\x2dpartlabel-var\\\\x2dlib\\\\x2dcontainers.service\\nAfter=systemd-fsck@dev-disk-by\\\\x2dpartlabel-var\\\\x2dlib\\\\x2dcontainers.service\\n\\n[Mount]\\nWhere=/var/lib/containers\\nWhat=/dev/disk/by-partlabel/var-lib-containers\\nType=xfs\\nOptions=defaults,prjquota\\n\\n[Install]\\nRequiredBy=local-fs.target\",\"enabled\":true,\"name\":\"var-lib-containers.mount\"}]}}"インストール後、次のコマンドを実行して、シングルノード OpenShift ディスクのステータスを確認します。
# lsblk出力例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 446.6G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 127M 0 part ├─sda3 8:3 0 384M 0 part /boot ├─sda4 8:4 0 243.6G 0 part /var │ /sysroot/ostree/deploy/rhcos/var │ /usr │ /etc │ / │ /sysroot └─sda5 8:5 0 202.5G 0 part /var/lib/containers# df -h出力例:
Filesystem Size Used Avail Use% Mounted on devtmpfs 4.0M 0 4.0M 0% /dev tmpfs 126G 84K 126G 1% /dev/shm tmpfs 51G 93M 51G 1% /run /dev/sda4 244G 5.2G 239G 3% /sysroot tmpfs 126G 4.0K 126G 1% /tmp /dev/sda5 203G 119G 85G 59% /var/lib/containers /dev/sda3 350M 110M 218M 34% /boot tmpfs 26G 0 26G 0% /run/user/1000