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編にわたって紹介します。
- oc-mirrorを利用したイメージのミラーリング編
- ミラーレジストリ構築編
- agent-based Install 方式によるOpenShift 4.14.13 インストール編
構成

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

oc-mirrorプラグイン
- コンテナイメージのミラーリングを効率的に行い、管理するためのツール
- ミラーリングのメタデータを保持し、差分ミラーを可能にする
- 実行タイミング
- ミラー用ホストでRedHat公式のレジストリから必要なイメージをダウンロードするとき
- 踏み台サーバでミラーレジストリにコンテナイメージをプッシュするとき
ミラー用ホストの推奨環境
- OpenShiftリリースイメージ およびOperator イメージ用に約358 GB以上
- ネットワークアクセスが無制限
※帯域の狭いネットワークではミラーに時間を要し、タイムアウトしてミラーリングに失敗することがあります。
大まかな流れ
- ミラー用ホストの準備
- ミラー用pull secret作成
- 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: {}
- ミラーファイルの最大サイズをGiB単位で指定します。
-
イメージセットのメタデータを保存するパスを指定します。
ImageSetConfigurationファイルからの相対パスで表します。 -
ミラーするコンテンツを指定します。
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
インストール用イメージのミラーリングは以上で完了です!
続いてミラーレジストリの構築です。
担当者紹介

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