ブログ・コミュニティ

HOMEデベロッパー向け ブログ・コミュニティ SCSK技術者ブログ 完全AirGAP環境にRed Hat OpenShift 4.14をインストールする①

完全AirGAP環境にRed Hat OpenShift 4.14をインストールする①

はじめに

みなさん、こんにちは!
Red Hat OpenShift(以下OpenShift)の構築を担当しているSCSKの立古です。
今回は、特にセキュリティが重視される環境で活用できる、完全にAirGap環境でのOpenShift 4.14のインストール方法をご紹介します。ミラーレジストリの構築からOpenShiftのインストールの完了、そして実際に運用を開始するまでの手順を、3編にわたって紹介します。

  1. oc-mirrorを利用したイメージのミラーリング編
  2. ミラーレジストリ構築編
  3. agent-based Install 方式によるOpenShift 4.14.13 インストール編

構成

20250508-1.png

(1)oc-mirrorを使ったコンテナイメージのミラーリング

oc-mirrorの利用

oc-mirrorプラグインはAirGAP環境やインターネット接続が制限されている環境で、必要なコンテナイメージをミラーリングするために使用します。
まずは、インターネットに接続できるミラー用ホストで、oc-mirrorコマンドを用いてコンテナイメージをミラーリングします。
これにより、取得したコンテナイメージをtarファイル形式でミラー用ホストのローカルにダウンロードすることができます。
最終的にこのイメージを踏み台サーバに持ち込み、ミラーレジストリにプッシュすることで、AirGAP環境でもRed Hat OpenShift(以下OpenShift)をインストールできるようになります。

20250508-2.png

oc-mirrorプラグイン

  • コンテナイメージのミラーリングを効率的に行い、管理するためのツール
  • ミラーリングのメタデータを保持し、差分ミラーを可能にする
  • 実行タイミング
    • ミラー用ホストでRedHat公式のレジストリから必要なイメージをダウンロードするとき
    • 踏み台サーバでミラーレジストリにコンテナイメージをプッシュするとき
ミラー用ホストの推奨環境
  • OpenShiftリリースイメージ およびOperator イメージ用に約358 GB以上
  • ネットワークアクセスが無制限

※帯域の狭いネットワークではミラーに時間を要し、タイムアウトしてミラーリングに失敗することがあります。

大まかな流れ

  1. ミラー用ホストの準備
  2. ミラー用pull secret作成
  3. OpenShift、Operatorイメージのミラーリング

ミラーリング手順

ミラーリング準備
Pull Secret 設定

https://console.redhat.com/openshift/install/pull-secret から取得し、規定のパスに配置します。古いツールが~/.docker/config.json を参照するケースがあるためシンボリックリンクも作成します。

$ mkdir -p ~/.config/containers/ ~/.docker/
$ cat ./pull-secret.txt | jq . > ~/pull-secret.json
$ cat mirror-pull-secret.txt pull-secret.json > ~/.config/containers/auth.json
$ ln -s ~/.config/containers/auth.json ~/.docker/config.json
OpenShift CLI をインストールする
※インストールするOpenShiftのバージョンと合わせてください。
$ curl -LO https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp/4.14.3/openshift-clientlinux.tar.gz
$ sudo tar zxf openshift-client-linux.tar.gz -C /usr/local/bin/
oc-mirror CLI プラグインをインストールする
$ curl -LO https://mirror.openshift.com/pub/openshift-v4/x86_64/clients/ocp/latest/oc-mirror.rhel9.tar.gz
$ sudo tar zxf oc-mirror.rhel9.tar.gz -C /usr/local/bin/
$ sudo chmod +x /usr/local/bin/oc-mirror
ImageSetConfigurationファイル作成

ImageSetConfigurationファイル

  • oc-mirrorを使用してミラーリングするときに、ミラーリングするコンテンツを指定するファイル
  • クラスタに必要なイメージのみに絞ることでミラーデータ量を削減できる
  • 定義する項目
    • OpenShiftリリース
    • Operator
    • その他イメージ
kind: ImageSetConfiguration
apiVersion: mirror.openshift.io/v1alpha2
archiveSize: 4
storageConfig:
local:
path: ./metadata
mirror:
platform:
channels:
- name: stable-4.14
minVersion: 4.14.33
maxVersion: 4.14.33
type: ocp
graph: true
operators:
- catalog: registry.redhat.io/redhat/redhat-operator-index:v4.14
packages:
- name: cluster-logging
channels:
- name: stable-5.9
  minVersion: "5.9.4"
maxVersion: "5.9.4"
additionalImages:
- name: registry.redhat.io/ubi9/ubi:latest
helm: {}
  1. ミラーファイルの最大サイズをGiB単位で指定します。
  2. イメージセットのメタデータを保存するパスを指定します。
    ImageSetConfigurationファイルからの相対パスで表します。
  3. ミラーするコンテンツを指定します。
    minVersion、maxVersionでミラーするバージョンを固定化させることでミラーデータ容量を削減することができます。
ミラーリング
事前チェック
ミラー用ホストのローカルディレクトリ(./oc-mirror/v1)にミラーする例です。
--dry-run オプションをつけて実行することで、ミラーリングされるイメージのリストの確認と、ImageSetConfigurationファイルに不備があるかを確認できます。
$ oc mirror --config=./imagesetconfiguration_v1.yaml file:///oc-mirror/v1
  --dry-run
イメージをローカルディレクトリにミラーリングする
エラーが出ていないことを確認しミラーします。ミラー先のディレクトリにImageSetConfigrationで設定した最大ファイルサイズ4GiBのtarファイルが順々に作成されます。
$ oc mirror --config=./imagesetconfiguration_v1.yaml file:///oc-mirror/v1
・
・
・
sha256:697f21689cc6b94f20a8f884b8594fb8b243164651724b50f3fc10ba1866ab47 file://openshift/release:4.14.33-x86_64-kubevirt-csi-driver
sha256:358ca8dcab49b4b032091bcd1df462a2d11c16f5b3bd6e12e8dfbe18888fd317 file://openshift/release:4.14.33-x86_64-ibm-vpc-block-csi-driver
info: Mirroring completed in 30m20.87s (11.74MB/s)
Creating archive /path_to_mirror/oc-mirror/v1/mirror_seq1_000000.tar
Creating archive /path_to_mirror/oc-mirror/v1/mirror_seq1_000001.tar
Creating archive /path_to_mirror/oc-mirror/v1/mirror_seq1_000002.tar
Creating archive /path_to_mirror/oc-mirror/v1/mirror_seq1_000003.tar
Creating archive /path_to_mirror/oc-mirror/v1/mirror_seq1_000004.tar
Creating archive /path_to_mirror/oc-mirror/v1/mirror_seq1_000005.tar
Creating archive /path_to_mirror/oc-mirror/v1/mirror_seq1_000006.tar
参考容量として・・・
イメージ 容量
OpenShiftリリース4.14.33 20GB
Operator
  • cluster-logging
  • quay-operator
  • odf-operator
  • rhacs-operator
  • kubernetes-nmstate-operator
  • nfd
  • gpu-operator-certified
44GB
additionalImages
  • registry.redhat.io/ubi9/ubi:latest
  • registry.redhat.io/odf4/ocs-must-gather-rhel8:v4.12
  • registry.redhat.io/openshift4/network-tools-rhel8:v4.14
  • registry.redhat.io/rhel9/support-tools:latest
  • registry.redhat.io/rhel9/nginx-124:1-20
  • registry.redhat.io/openshift4/ose-cli:latest
  • registry.redhat.io/openshift4/ose-node-feature-discovery:latest
  • registry.redhat.io/openshift-logging/eventrouter-rhel9:v0.4.0-296
9.6GB

インストール用イメージのミラーリングは以上で完了です!
続いてミラーレジストリの構築です。

担当者紹介

20250508-3.png
担当者名
立古
コメント
サーバ構築の経験をベースに、昨年よりコンテナ技術を学習し、案件に参画しています。
保有資格
・Certified Kubernetes Administrator
・Certified Kubernetes Application Developer

選ぶなら業界をリードするコンテナプラットフォーム

OpenShiftならインフラ運用の効率化はもとよりアプリケーション開発者がソースコードの開発に専念できるように必要な機能までも提供してくれます