8.9. ネットワークが制限された環境での IBM Cloud へのクラスターのインストール
OpenShift Container Platform 4.15 では、IBM Cloud® 上の既存の Virtual Private Cloud (VPC) にアクセスできるインストールリリースコンテンツの内部ミラーを作成することで、ネットワークが制限された環境にクラスターをインストールできます。
8.9.1. 前提条件
- OpenShift Container Platform のインストールおよび更新 プロセスの詳細を確認した。
- クラスターをホストするように IBM Cloud アカウントを設定 している。
- ネットワークが制限された環境およびインターネットにアクセスできるコンテナーイメージレジストリーがある。コンテナーイメージレジストリーは、OpenShift イメージレジストリーの内容をミラーリングし、インストールメディアを含むものである必要があります。詳細は、oc-mirror プラグインを使用した非接続インストールのイメージのミラーリング を参照してください。
IBM Cloud® 上に以下の要件を満たす既存の VPC がある。
- VPC に、ミラーレジストリーが含まれているか、他の場所でホストされているミラーレジストリーにアクセスするためのファイアウォールルールまたはピアリング接続がある。
- VPC が、パブリックエンドポイントを使用して IBM Cloud® サービスエンドポイントにアクセスできる。ネットワーク制限によってパブリックサービスエンドポイントへのアクセスが制限されている場合は、エンドポイントのサービスを評価して、利用可能な代替エンドポイントを探してください。詳細は、IBM サービスエンドポイントへのアクセス を参照してください。
インストールプログラムによってデフォルトでプロビジョニングされる VPC は使用できません。
IBM Cloud® Virtual Private Endpoints を使用するようにエンドポイントゲートウェイを設定することを計画している場合は、以下の要件を考慮してください。
-
エンドポイントゲートウェイのサポートは、現在
us-east
およびus-south
リージョンに限定されています。 - VPC が、エンドポイントゲートウェイとの間のトラフィックを許可する必要があります。VPC のデフォルトのセキュリティーグループまたは新しいセキュリティーグループを使用して、ポート 443 でトラフィックを許可できます。詳細は、エンドポイントゲートウェイのトラフィックの許可 を参照してください。
-
エンドポイントゲートウェイのサポートは、現在
- ファイアウォールを使用する場合は、クラスターがアクセスを必要とするサイトを許可するようにファイアウォールを設定する必要がある。
-
クラスターをインストールする前に、
ccoctl
ユーティリティーを設定している。詳細は、IBM Cloud VPC 用の IAM の設定 を参照してください。
8.9.2. ネットワークが制限された環境でのインストールについて
OpenShift Container Platform 4.15 では、ソフトウェアコンポーネントを取得するためにインターネットへのアクティブな接続を必要としないインストールを実行できます。ネットワークが制限された環境のインストールは、クラスターのインストール先となるクラウドプラットフォームに応じて、インストーラーでプロビジョニングされるインフラストラクチャーまたはユーザーによってプロビジョニングされるインフラストラクチャーを使用して実行できます。
8.9.2.1. 必要なインターネットアクセスとインストールホスト
インストールは、インターネットと制限されたネットワークの両方にアクセスできる踏み台ホストまたはポータブルデバイスを使用して実行します。インターネットにアクセスできるホストを使用して、以下を行う必要があります。
-
インストールプログラム、OpenShift CLI (
oc
)、および CCO ユーティリティー (ccoctl
) をダウンロードします。 - インストールプログラムを使用して Red Hat Enterprise Linux CoreOS (RHCOS) イメージを見つけ、インストール設定ファイルを作成します。
-
oc
を使用して、CCO コンテナーイメージからccoctl
を抽出します。 -
oc
およびccoctl
を使用して、IBM Cloud® 用に IAM を設定します。
8.9.2.2. ミラーレジストリーへのアクセス
ネットワークが制限されたインストールを完了するには、OpenShift イメージレジストリーのコンテンツをミラーリングし、インストールメディアを含むレジストリーを作成する必要があります。
このレジストリーは、ネットワークが制限された環境とインターネットの両方にアクセスできるミラーホスト上に作成することも、組織のセキュリティー制限に対応する他の方法を使用して作成することもできます。
非接続インストールのイメージをミラーリングする方法の詳細は、「関連情報」を参照してください。
8.9.2.3. IBM サービスエンドポイントへのアクセス
インストールプログラムは、以下の IBM Cloud® サービスエンドポイントへのアクセスを必要とします。
- Cloud Object Storage
- DNS Services
- Global Search
- Global Tagging
- Identity Services
- Resource Controller
- Resource Manager
- VPC
インストールプロセス中に IBM® Key Protect for IBM Cloud® のルート鍵を指定する場合は、Key Protect のサービスエンドポイントも必要です。
デフォルトでは、サービスへのアクセスにパブリックエンドポイントが使用されます。ネットワーク制限によってパブリックサービスエンドポイントへのアクセスが制限されている場合は、デフォルトの動作をオーバーライドできます。
クラスターをデプロイする前に、インストール設定ファイル (install-config.yaml
) を更新して、代替サービスエンドポイントの URI を指定できます。使用方法の詳細は、「関連情報」を参照してください。
8.9.2.4. その他の制限
ネットワークが制限された環境のクラスターには、以下の追加の制限および制約があります。
-
ClusterVersion
ステータスにはUnable to retrieve available updates
エラーが含まれます。 - デフォルトで、開発者カタログのコンテンツは、必要とされるイメージストリームタグにアクセスできないために使用できません。
8.9.3. カスタム VPC の使用について
OpenShift Container Platform 4.15 では、クラスターを既存の IBM® Virtual Private Cloud (VPC) のサブネットにデプロイできます。OpenShift Container Platform を既存の VPC にデプロイすると、新規アカウントの制限を回避したり、会社のガイドラインによる運用上の制約をより容易に遵守することが可能になる場合があります。VPC を作成するために必要なインフラストラクチャーの作成パーミッションを取得できない場合は、このインストールオプションを使用します。
インストールプログラムは既存のサブネットにある他のコンポーネントを認識できないため、サブネットの CIDR などを選択できません。クラスターをインストールするサブネットのネットワークを設定する必要があります。
8.9.3.1. VPC を使用するための要件
クラスターをインストールする前に、既存の VPC およびそのサブネットを適切に設定する必要があります。インストールプログラムでは、次のコンポーネントは作成されません。
- NAT ゲートウェイ
- サブネット
- ルートテーブル
- VPC ネットワーク
インストールプログラムには、以下の機能はありません。
- 使用するクラスターのネットワーク範囲を細分化します。
- サブネットのルートテーブルを設定します。
- DHCP などの VPC オプションの設定
インストールプログラムでは、クラウド提供の DNS サーバーを使用する必要があります。カスタム DNS サーバーの使用はサポートされていないため、インストールが失敗します。
8.9.3.2. VPC 検証
VPC とすべてのサブネットは、既存のリソースグループ内にある必要があります。クラスターは既存の VPC にデプロイされます。
インストールの一環として、install-config.yaml
ファイルで以下を指定します。
-
VPC とサブネットを含む既存のリソースグループの名前 (
networkResourceGroupName
) -
既存の VPC の名前 (
vpcName
) -
コントロールプレーンマシンおよびコンピュートマシン用に作成したサブネット (
controlPlaneSubnets
およびcomputeSubnets
)
追加の installer-provisioned クラスターリソースは、別のリソースグループ (resourceGroupName
) にデプロイされます。クラスターをインストールする前に、このリソースグループを指定できます。定義されていない場合は、クラスターに新しいリソースグループが作成されます。
指定するサブネットが適切であることを確認するには、インストールプログラムが以下を確認します。
- 指定したサブネットがすべて存在します。
リージョン内の各アベイラビリティーゾーンに、以下を指定します。
- コントロールプレーンマシンの 1 つのサブネット。
- コンピュートマシン用に 1 つのサブネット。
- 指定したマシン CIDR にはコンピュートマシンおよびコントロールプレーンマシンのサブネットが含まれます。
サブネット ID はサポートされていません。
8.9.3.3. クラスター間の分離
OpenShift Container Platform を既存のネットワークにデプロイする場合、クラスターサービスの分離の規模は以下の方法で縮小されます。
- 複数の OpenShift Container Platform クラスターを同じ VPC にインストールできます。
- ICMP Ingress はネットワーク全体で許可されます。
- TCP ポート 22 Ingress (SSH) はネットワーク全体に対して許可されます。
- コントロールプレーンの TCP 6443 Ingress (Kubernetes API) はネットワーク全体に対して許可されます。
- コントロールプレーンの TCP 22623 Ingress (MCS) はネットワーク全体に対して許可されます。
8.9.3.4. エンドポイントゲートウェイのトラフィックの許可
IBM Cloud® Virtual Private エンドポイントを使用する場合は、エンドポイントゲートウェイとの間のトラフィックを許可するように Virtual Private Cloud (VPC) を設定する必要があります。
VPC のデフォルトのセキュリティーグループは、エンドポイントゲートウェイへのすべての送信トラフィックを許可するように設定されています。したがって、VPC とエンドポイントゲートウェイ間のトラフィックを許可する最も簡単な方法は、ポート 443 で受信トラフィックを許可するようにデフォルトのセキュリティーグループを変更することです。
新しいセキュリティーグループを設定する場合は、受信トラフィックと送信トラフィックの両方を許可するようにセキュリティーグループを設定する必要があります。
前提条件
-
IBM Cloud® コマンドラインインターフェイスユーティリティー (
ibmcloud
) がインストールされている。
手順
次のコマンドを実行して、デフォルトのセキュリティーグループの識別子を取得します。
$ DEFAULT_SG=$(ibmcloud is vpc <your_vpc_name> --output JSON | jq -r '.default_security_group.id')
次のコマンドを実行して、ポート 443 で受信トラフィックを許可するルールを追加します。
$ ibmcloud is security-group-rule-add $DEFAULT_SG inbound tcp --remote 0.0.0.0/0 --port-min 443 --port-max 443
エンドポイントゲートウェイがこのセキュリティーグループを使用するように設定されていることを確認してください。
8.9.4. クラスターノードの SSH アクセス用のキーペアの生成
OpenShift Container Platform をインストールする際に、SSH パブリックキーをインストールプログラムに指定できます。キーは、Ignition 設定ファイルを介して Red Hat Enterprise Linux CoreOS (RHCOS) ノードに渡され、ノードへの SSH アクセスを認証するために使用されます。このキーは各ノードの core
ユーザーの ~/.ssh/authorized_keys
リストに追加され、パスワードなしの認証が可能になります。
キーがノードに渡されると、キーペアを使用して RHCOS ノードにユーザー core
として SSH を実行できます。SSH 経由でノードにアクセスするには、秘密鍵のアイデンティティーをローカルユーザーの SSH で管理する必要があります。
インストールのデバッグまたは障害復旧を実行するためにクラスターノードに対して SSH を実行する場合は、インストールプロセスの間に SSH 公開鍵を指定する必要があります。./openshift-install gather
コマンドでは、SSH 公開鍵がクラスターノードに配置されている必要もあります。
障害復旧およびデバッグが必要な実稼働環境では、この手順を省略しないでください。
AWS キーペア などのプラットフォームに固有の方法で設定したキーではなく、ローカルキーを使用する必要があります。
手順
クラスターノードへの認証に使用するローカルマシンに既存の SSH キーペアがない場合は、これを作成します。たとえば、Linux オペレーティングシステムを使用するコンピューターで以下のコマンドを実行します。
$ ssh-keygen -t ed25519 -N '' -f <path>/<file_name> 1
- 1
- 新しい SSH キーのパスとファイル名 (
~/.ssh/id_ed25519
など) を指定します。既存のキーペアがある場合は、公開鍵が~/.ssh
ディレクトリーにあることを確認します。
注記x86_64
、ppc64le
、およびs390x
アーキテクチャーのみで FIPS 140-2/140-3 検証のために NIST に提出された RHEL 暗号化ライブラリーを使用する OpenShift Container Platform クラスターをインストールする予定がある場合は、ed25519
アルゴリズムを使用するキーを作成しないでください。代わりに、rsa
アルゴリズムまたはecdsa
アルゴリズムを使用するキーを作成します。公開 SSH キーを表示します。
$ cat <path>/<file_name>.pub
たとえば、次のコマンドを実行して
~/.ssh/id_ed25519.pub
公開鍵を表示します。$ cat ~/.ssh/id_ed25519.pub
ローカルユーザーの SSH エージェントに SSH 秘密鍵 ID が追加されていない場合は、それを追加します。キーの SSH エージェント管理は、クラスターノードへのパスワードなしの SSH 認証、または
./openshift-install gather
コマンドを使用する場合は必要になります。注記一部のディストリビューションでは、
~/.ssh/id_rsa
および~/.ssh/id_dsa
などのデフォルトの SSH 秘密鍵のアイデンティティーは自動的に管理されます。ssh-agent
プロセスがローカルユーザーに対して実行されていない場合は、バックグラウンドタスクとして開始します。$ eval "$(ssh-agent -s)"
出力例
Agent pid 31874
注記クラスターが FIPS モードにある場合は、FIPS 準拠のアルゴリズムのみを使用して SSH キーを生成します。鍵は RSA または ECDSA のいずれかである必要があります。
SSH プライベートキーを
ssh-agent
に追加します。$ ssh-add <path>/<file_name> 1
- 1
~/.ssh/id_ed25519
などの、SSH プライベートキーのパスおよびファイル名を指定します。
出力例
Identity added: /home/<you>/<path>/<file_name> (<computer_name>)
次のステップ
- OpenShift Container Platform をインストールする際に、SSH パブリックキーをインストールプログラムに指定します。
8.9.5. API キーのエクスポート
作成した API キーをグローバル変数として設定する必要があります。インストールプログラムは、起動時に変数を取り込み、API キーを設定します。
前提条件
- IBM Cloud® アカウント用にユーザー API キーまたはサービス ID API キーのいずれかを作成している。
手順
アカウントの API キーをグローバル変数としてエクスポートします。
$ export IC_API_KEY=<api_key>
変数名は指定どおりに正確に設定する必要があります。インストールプログラムは、起動時に変数名が存在することを想定しています。
8.9.6. RHCOS クラスターイメージのダウンロード
インストールプログラムは、クラスターをインストールするために Red Hat Enterprise Linux CoreOS (RHCOS) イメージを必要とします。必要に応じて、デプロイ前に Red Hat Enterprise Linux CoreOS (RHCOS) をダウンロードすると、クラスターの作成時にインターネットにアクセスする必要がなくなります。
インストールプログラムを使用して、Red Hat Enterprise Linux CoreOS (RHCOS) イメージを見つけてダウンロードします。
前提条件
- インストールプログラムを実行しているホストがインターネットにアクセスできる。
手順
インストールプログラムが含まれるディレクトリーに切り替え、以下のコマンドを実行します。
$ ./openshift-install coreos print-stream-json
コマンドの出力を使用して、IBM Cloud® イメージの場所を見つけます。
.Example output ---- "release": "415.92.202311241643-0", "formats": { "qcow2.gz": { "disk": { "location": "https://rhcos.mirror.openshift.com/art/storage/prod/streams/4.15-9.2/builds/415.92.202311241643-0/x86_64/rhcos-415.92.202311241643-0-ibmcloud.x86_64.qcow2.gz", "sha256": "6b562dee8431bec3b93adeac1cfefcd5e812d41e3b7d78d3e28319870ffc9eae", "uncompressed-sha256": "5a0f9479505e525a30367b6a6a6547c86a8f03136f453c1da035f3aa5daa8bc9" ----
- イメージアーカイブをダウンロードして展開します。インストールプログラムがクラスターの作成に使用するホスト上でイメージを使用できるようにします。
8.9.7. インストール設定ファイルの手動作成
クラスターをインストールするには、インストール設定ファイルを手動で作成する必要があります。
前提条件
- OpenShift Container Platform インストールプログラムおよびクラスターのプルシークレットを取得しています。
-
レジストリーをミラーリングしたときに作成された
imageContentSourcePolicy.yaml
ファイルを用意する。 - ミラーレジストリーの証明書の内容を取得している。
手順
必要なインストールアセットを保存するためのインストールディレクトリーを作成します。
$ mkdir <installation_directory>
重要ディレクトリーを作成する必要があります。ブートストラップ X.509 証明書などの一部のインストールアセットの有効期限は短く設定されているため、インストールディレクトリーを再利用することができません。別のクラスターインストールの個別のファイルを再利用する必要がある場合は、それらをディレクトリーにコピーすることができます。ただし、インストールアセットのファイル名はリリース間で変更される可能性があります。インストールファイルを以前のバージョンの OpenShift Container Platform からコピーする場合は注意してコピーを行ってください。
提供されるサンプルの
install-config.yaml
ファイルテンプレートをカスタマイズし、これを<installation_directory>
に保存します。注記この設定ファイルの名前を
install-config.yaml
と付ける必要があります。サンプルテンプレートをカスタマイズするときは、ネットワークが制限された環境でのインストールに必要な情報を必ず指定してください。
pullSecret
の値を更新して、レジストリーの認証情報を追加します。pullSecret: '{"auths":{"<mirror_host_name>:5000": {"auth": "<credentials>","email": "you@example.com"}}}'
<mirror_host_name>
の場合、ミラーレジストリーの証明書で指定したレジストリードメイン名を指定し、<credentials>
の場合は、ミラーレジストリーの base64 でエンコードされたユーザー名およびパスワードを指定します。additionalTrustBundle
パラメーターおよび値を追加します。additionalTrustBundle: | -----BEGIN CERTIFICATE----- ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ -----END CERTIFICATE-----
この値は、ミラーレジストリーに使用した証明書ファイルの内容である必要があります。証明書ファイルは、既存の信頼できる認証局、またはミラーレジストリー用に生成した自己署名証明書のいずれかです。
親の
platform.ibmcloud
フィールドで、クラスターをインストールする VPC のネットワークとサブネットを定義します。vpcName: <existing_vpc> controlPlaneSubnets: <control_plane_subnet> computeSubnets: <compute_subnet>
platform.ibmcloud.vpcName
には、既存の IBM Cloud VPC の名前を指定します。platform.ibmcloud.controlPlaneSubnets
およびplatform.ibmcloud.computeSubnets
には、それぞれコントロールプレーンマシンおよびコンピュートマシンをデプロイする既存のサブネットを指定します。次の YAML の抜粋のようなイメージコンテンツリソースを追加します。
imageContentSources: - mirrors: - <mirror_host_name>:5000/<repo_name>/release source: quay.io/openshift-release-dev/ocp-release - mirrors: - <mirror_host_name>:5000/<repo_name>/release source: registry.redhat.io/ocp/release
これらの値には、レジストリーをミラーリングしたときに作成された
imageContentSourcePolicy.yaml
ファイルを使用します。ネットワーク制限により、必要な IBM Cloud® サービスにアクセスするためのパブリックエンドポイントの使用が制限されている場合は、
serviceEndpoints
スタンザをplatform.ibmcloud
に追加して、代替サービスエンドポイントを指定します。注記指定できる代替サービスエンドポイントは、各サービスに 1 つだけです。
代替サービスエンドポイントの使用例
# ... serviceEndpoints: - name: IAM url: <iam_alternate_endpoint_url> - name: VPC url: <vpc_alternate_endpoint_url> - name: ResourceController url: <resource_controller_alternate_endpoint_url> - name: ResourceManager url: <resource_manager_alternate_endpoint_url> - name: DNSServices url: <dns_services_alternate_endpoint_url> - name: COS url: <cos_alternate_endpoint_url> - name: GlobalSearch url: <global_search_alternate_endpoint_url> - name: GlobalTagging url: <global_tagging_alternate_endpoint_url> # ...
オプション: パブリッシュストラテジーを
Internal
に設定します。publish: Internal
このオプションを設定すると、内部 Ingress コントローラーおよびプライベートロードバランサーを作成します。
注記デフォルト値の
External
を使用する場合、IBM Cloud® Internet Services (CIS) のパブリックエンドポイントにネットワークがアクセスできる必要があります。CIS は Virtual Private Endpoints に対して有効ではありません。
install-config.yaml
ファイルをバックアップし、複数のクラスターをインストールするのに使用できるようにします。重要install-config.yaml
ファイルは、インストールプロセスの次の手順で使用されます。この時点でこれをバックアップする必要があります。
8.9.7.1. インストール時のクラスター全体のプロキシーの設定
実稼働環境では、インターネットへの直接アクセスを拒否し、代わりに HTTP または HTTPS プロキシーを使用することができます。プロキシー設定を install-config.yaml
ファイルで行うことにより、新規の OpenShift Container Platform クラスターをプロキシーを使用するように設定できます。
前提条件
-
既存の
install-config.yaml
ファイルがある。 クラスターがアクセスする必要のあるサイトを確認済みで、それらのいずれかがプロキシーをバイパスする必要があるかどうかを判別している。デフォルトで、すべてのクラスター Egress トラフィック (クラスターをホストするクラウドに関するクラウドプロバイダー API に対する呼び出しを含む) はプロキシーされます。プロキシーを必要に応じてバイパスするために、サイトを
Proxy
オブジェクトのspec.noProxy
フィールドに追加している。注記Proxy
オブジェクトのstatus.noProxy
フィールドには、インストール設定のnetworking.machineNetwork[].cidr
、networking.clusterNetwork[].cidr
、およびnetworking.serviceNetwork[]
フィールドの値が設定されます。Amazon Web Services (AWS)、Google Cloud Platform (GCP)、Microsoft Azure、および Red Hat OpenStack Platform (RHOSP) へのインストールの場合、
Proxy
オブジェクトのstatus.noProxy
フィールドには、インスタンスメタデータのエンドポイント (169.254.169.254
) も設定されます。
手順
install-config.yaml
ファイルを編集し、プロキシー設定を追加します。以下に例を示します。apiVersion: v1 baseDomain: my.domain.com proxy: httpProxy: http://<username>:<pswd>@<ip>:<port> 1 httpsProxy: https://<username>:<pswd>@<ip>:<port> 2 noProxy: example.com 3 additionalTrustBundle: | 4 -----BEGIN CERTIFICATE----- <MY_TRUSTED_CA_CERT> -----END CERTIFICATE----- additionalTrustBundlePolicy: <policy_to_add_additionalTrustBundle> 5
- 1
- クラスター外の HTTP 接続を作成するために使用するプロキシー URL。URL スキームは
http
である必要があります。 - 2
- クラスター外で HTTPS 接続を作成するために使用するプロキシー URL。
- 3
- プロキシーから除外するための宛先ドメイン名、IP アドレス、または他のネットワーク CIDR のコンマ区切りのリスト。サブドメインのみと一致するように、ドメインの前に
.
を付けます。たとえば、.y.com
はx.y.com
に一致しますが、y.com
には一致しません。*
を使用し、すべての宛先のプロキシーをバイパスします。 - 4
- 指定されている場合、インストールプログラムは HTTPS 接続のプロキシーに必要な 1 つ以上の追加の CA 証明書が含まれる
user-ca-bundle
という名前の設定マップをopenshift-config
namespace に生成します。次に Cluster Network Operator は、これらのコンテンツを Red Hat Enterprise Linux CoreOS (RHCOS) 信頼バンドルにマージするtrusted-ca-bundle
設定マップを作成し、この設定マップはProxy
オブジェクトのtrustedCA
フィールドで参照されます。additionalTrustBundle
フィールドは、プロキシーのアイデンティティー証明書が RHCOS 信頼バンドルからの認証局によって署名されない限り必要になります。 - 5
- オプション:
trustedCA
フィールドのuser-ca-bundle
設定マップを参照するProxy
オブジェクトの設定を決定するポリシー。許可される値はProxyonly
およびAlways
です。Proxyonly
を使用して、http/https
プロキシーが設定されている場合にのみuser-ca-bundle
設定マップを参照します。Always
を使用して、常にuser-ca-bundle
設定マップを参照します。デフォルト値はProxyonly
です。
注記インストールプログラムは、プロキシーの
readinessEndpoints
フィールドをサポートしません。注記インストーラーがタイムアウトした場合は、インストーラーの
wait-for
コマンドを使用してデプロイメントを再起動してからデプロイメントを完了します。以下に例を示します。$ ./openshift-install wait-for install-complete --log-level debug
- ファイルを保存し、OpenShift Container Platform のインストール時にこれを参照します。
インストールプログラムは、指定の install-config.yaml
ファイルのプロキシー設定を使用する cluster
という名前のクラスター全体のプロキシーを作成します。プロキシー設定が指定されていない場合、cluster
Proxy
オブジェクトが依然として作成されますが、これには spec
がありません。
cluster
という名前の Proxy
オブジェクトのみがサポートされ、追加のプロキシーを作成することはできません。
8.9.7.2. クラスターインストールの最小リソース要件
それぞれのクラスターマシンは、以下の最小要件を満たしている必要があります。
マシン | オペレーティングシステム | vCPU | 仮想 RAM | ストレージ | 1 秒あたりの入出力 (IOPS) |
---|---|---|---|---|---|
ブートストラップ | RHCOS | 4 | 16 GB | 100 GB | 300 |
コントロールプレーン | RHCOS | 4 | 16 GB | 100 GB | 300 |
Compute | RHCOS | 2 | 8 GB | 100 GB | 300 |
OpenShift Container Platform バージョン 4.13 の時点で、RHCOS は RHEL バージョン 9.2 に基づいており、マイクロアーキテクチャーの要件を更新します。次のリストには、各アーキテクチャーに必要な最小限の命令セットアーキテクチャー (ISA) が含まれています。
- x86-64 アーキテクチャーには x86-64-v2 ISA が必要
- ARM64 アーキテクチャーには ARMv8.0-A ISA が必要
- IBM Power アーキテクチャーには Power 9 ISA が必要
- s390x アーキテクチャーには z14 ISA が必要
詳細は、RHEL アーキテクチャー を参照してください。
プラットフォームのインスタンスタイプがクラスターマシンの最小要件を満たす場合、これは OpenShift Container Platform で使用することがサポートされます。
8.9.7.3. IBM Cloud のテスト済みインスタンスタイプ
次の IBM Cloud® インスタンスタイプは、OpenShift Container Platform でテストされています。
例8.5 マシンのシリーズ
-
c4.*
-
c5.*
-
c5a.*
-
i3.*
-
m4.*
-
m5.*
-
m5a.*
-
m6a.*
-
m6i.*
-
r4.*
-
r5.*
-
r5a.*
-
r6i.*
-
t3.*
-
t3a.*
8.9.7.4. IBM Cloud 用にカスタマイズされた install-config.yaml ファイルのサンプル
install-config.yaml
ファイルをカスタマイズして、OpenShift Container Platform クラスターのプラットフォームに関する詳細を指定するか、必要なパラメーターの値を変更することができます。
このサンプルの YAML ファイルは参照用にのみ提供されます。インストールプログラムを使用して install-config.yaml
ファイルを取得し、変更する必要があります。
apiVersion: v1 baseDomain: example.com 1 controlPlane: 2 3 hyperthreading: Enabled 4 name: master platform: ibm-cloud: {} replicas: 3 compute: 5 6 - hyperthreading: Enabled 7 name: worker platform: ibmcloud: {} replicas: 3 metadata: name: test-cluster 8 networking: clusterNetwork: - cidr: 10.128.0.0/14 9 hostPrefix: 23 machineNetwork: - cidr: 10.0.0.0/16 10 networkType: OVNKubernetes 11 serviceNetwork: - 172.30.0.0/16 platform: ibmcloud: region: us-east 12 resourceGroupName: us-east-example-cluster-rg 13 serviceEndpoints: 14 - name: IAM url: https://private.us-east.iam.cloud.ibm.com - name: VPC url: https://us-east.private.iaas.cloud.ibm.com/v1 - name: ResourceController url: https://private.us-east.resource-controller.cloud.ibm.com - name: ResourceManager url: https://private.us-east.resource-controller.cloud.ibm.com - name: DNSServices url: https://api.private.dns-svcs.cloud.ibm.com/v1 - name: COS url: https://s3.direct.us-east.cloud-object-storage.appdomain.cloud - name: GlobalSearch url: https://api.private.global-search-tagging.cloud.ibm.com - name: GlobalTagging url: https://tags.private.global-search-tagging.cloud.ibm.com networkResourceGroupName: us-east-example-existing-network-rg 15 vpcName: us-east-example-network-1 16 controlPlaneSubnets: 17 - us-east-example-network-1-cp-us-east-1 - us-east-example-network-1-cp-us-east-2 - us-east-example-network-1-cp-us-east-3 computeSubnets: 18 - us-east-example-network-1-compute-us-east-1 - us-east-example-network-1-compute-us-east-2 - us-east-example-network-1-compute-us-east-3 credentialsMode: Manual pullSecret: '{"auths":{"<local_registry>": {"auth": "<credentials>","email": "you@example.com"}}}' 19 fips: false 20 sshKey: ssh-ed25519 AAAA... 21 additionalTrustBundle: | 22 -----BEGIN CERTIFICATE----- <MY_TRUSTED_CA_CERT> -----END CERTIFICATE----- imageContentSources: 23 - mirrors: - <local_registry>/<local_repository_name>/release source: quay.io/openshift-release-dev/ocp-release - mirrors: - <local_registry>/<local_repository_name>/release source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
- 1 8 12
- 必須。
- 2 5
- これらのパラメーターおよび値を指定しない場合、インストールプログラムはデフォルトの値を指定します。
- 3 6
controlPlane
セクションは単一マッピングですが、compute
セクションはマッピングのシーケンスになります。複数の異なるデータ構造の要件を満たすには、compute
セクションの最初の行はハイフン-
で始め、controlPlane
セクションの最初の行はハイフンで始めることができません。1 つのコントロールプレーンプールのみが使用されます。- 4 7
- ハイパースレッディングとも呼ばれる同時マルチスレッドを有効または無効にします。デフォルトでは、同時スレッドはマシンのコアのパフォーマンスを上げるために有効にされます。パラメーター値を
Disabled
に設定するとこれを無効にすることができます。一部のクラスターマシンで同時マルチスレッドを無効にする場合は、これをすべてのクラスターマシンで無効にする必要があります。重要同時スレッドを無効にする場合は、容量計画においてマシンパフォーマンスの大幅な低下が考慮に入れられていることを確認します。同時マルチスレッドを無効にする場合は、マシンに対して
n1-standard-8
などの大規模なマシンタイプを使用します。 - 9
- マシン CIDR にはコンピュートマシンおよびコントロールプレーンマシンのサブネットが含まれている必要があります。
- 10
- CIDR には、
platform.ibmcloud.controlPlaneSubnets
およびplatform.ibmcloud.computeSubnets
で定義されたサブネットが含まれている必要があります。 - 11
- インストールするクラスターネットワークプラグイン。サポートされる値はデフォルト値の
OVNKubernetes
のみです。 - 13
- 既存のリソースグループの名前。すべての installer-provisioned クラスターリソースは、このリソースグループにデプロイされます。定義されていない場合は、クラスターに新しいリソースグループが作成されます。
- 14
- VPC のネットワーク制限に基づいて、必要に応じて代替サービスエンドポイントを指定します。これにより、サービスのデフォルトのパブリックエンドポイントがオーバーライドされます。
- 15
- 既存の Virtual Private Cloud (VPC) を含むリソースグループの名前を指定します。既存の VPC およびサブネットはこのリソースグループにある必要があります。クラスターはこの VPC にインストールされます。
- 16
- 既存 VPC の名前を指定します。
- 17
- コントロールプレーンマシンをデプロイする既存のサブネット名を指定します。サブネットは、指定した VPC に属している必要があります。リージョン内の各アベイラビリティーゾーンのサブネットを指定します。
- 18
- コンピュートマシンをデプロイする既存のサブネット名を指定します。サブネットは、指定した VPC に属している必要があります。リージョン内の各アベイラビリティーゾーンのサブネットを指定します。
- 19
<local_registry>
については、レジストリードメイン名と、ミラーレジストリーがコンテンツを提供するために使用するポートをオプションで指定します。例: registry.example.com または registry.example.com:5000<credentials>
について、ミラーレジストリーの base64 でエンコードされたユーザー名およびパスワードを指定します。- 20
- FIPS モードを有効または無効にします。デフォルトでは、FIPS モードは有効にされません。FIPS モードが有効にされている場合、OpenShift Container Platform が実行される Red Hat Enterprise Linux CoreOS (RHCOS) マシンがデフォルトの Kubernetes 暗号スイートをバイパスし、代わりに RHCOS で提供される暗号モジュールを使用します。重要
プロセス暗号化ライブラリーでの FIPS 検証済みまたはモジュールの使用は、
x86_64
アーキテクチャーでの OpenShift Container Platform デプロイメントでのみサポートされます。 - 21
- オプション: クラスター内のマシンにアクセスするのに使用する
sshKey
値をオプションで指定できます。 - 22
- ミラーレジストリーに使用した証明書ファイルの内容を指定します。
- 23
- レジストリーをミラーリングしたときに作成された
imageContentSourcePolicy.yaml
ファイルのmetadata.name: release-0
セクションからこれらの値を指定します。注記インストールのデバッグまたは障害復旧を実行する必要のある実稼働用の OpenShift Container Platform クラスターでは、
ssh-agent
プロセスが使用する SSH キーを指定します。
8.9.8. バイナリーのダウンロードによる OpenShift CLI のインストール
コマンドラインインターフェイスを使用して OpenShift Container Platform と対話するために CLI (oc
) をインストールすることができます。oc
は Linux、Windows、または macOS にインストールできます。
以前のバージョンの oc
をインストールしている場合、これを使用して OpenShift Container Platform 4.15 のすべてのコマンドを実行することはできません。新規バージョンの oc
をダウンロードし、インストールします。
Linux への OpenShift CLI のインストール
以下の手順を使用して、OpenShift CLI (oc
) バイナリーを Linux にインストールできます。
手順
- Red Hat カスタマーポータルの OpenShift Container Platform ダウンロードページ に移動します。
- Product Variant ドロップダウンリストからアーキテクチャーを選択します。
- バージョン ドロップダウンリストから適切なバージョンを選択します。
- OpenShift v4.15 Linux Client エントリーの横にある Download Now をクリックして、ファイルを保存します。
アーカイブを展開します。
$ tar xvf <file>
oc
バイナリーを、PATH
にあるディレクトリーに配置します。PATH
を確認するには、以下のコマンドを実行します。$ echo $PATH
検証
OpenShift CLI のインストール後に、
oc
コマンドを使用して利用できます。$ oc <command>
Windows への OpenShift CLI のインストール
以下の手順を使用して、OpenShift CLI (oc
) バイナリーを Windows にインストールできます。
手順
- Red Hat カスタマーポータルの OpenShift Container Platform ダウンロードページ に移動します。
- バージョン ドロップダウンリストから適切なバージョンを選択します。
- OpenShift v4.15 Windows Client エントリーの横にある Download Now をクリックして、ファイルを保存します。
- ZIP プログラムでアーカイブを展開します。
oc
バイナリーを、PATH
にあるディレクトリーに移動します。PATH
を確認するには、コマンドプロンプトを開いて以下のコマンドを実行します。C:\> path
検証
OpenShift CLI のインストール後に、
oc
コマンドを使用して利用できます。C:\> oc <command>
macOS への OpenShift CLI のインストール
以下の手順を使用して、OpenShift CLI (oc
) バイナリーを macOS にインストールできます。
手順
- Red Hat カスタマーポータルの OpenShift Container Platform ダウンロードページ に移動します。
- バージョン ドロップダウンリストから適切なバージョンを選択します。
OpenShift v4.15 macOS Client エントリーの横にある Download Now をクリックして、ファイルを保存します。
注記macOS arm64 の場合は、OpenShift v4.15 macOS arm64 Client エントリーを選択します。
- アーカイブを展開し、解凍します。
oc
バイナリーをパスにあるディレクトリーに移動します。PATH
を確認するには、ターミナルを開き、以下のコマンドを実行します。$ echo $PATH
検証
oc
コマンドを使用してインストールを確認します。$ oc <command>
8.9.9. IAM を手動で作成する
クラスターをインストールするには、Cloud Credential Operator (CCO) が手動モードで動作する必要があります。インストールプログラムは CCO を手動モードに設定しますが、クラウドプロバイダーの ID とアクセス管理シークレットを指定する必要があります。
Cloud Credential Operator (CCO) ユーティリティー (ccoctl
) を使用して、必要な IBM Cloud® リソースを作成できます。
前提条件
-
ccoctl
バイナリーを設定している。 -
既存の
install-config.yaml
ファイルがある。
手順
install-config.yaml
設定ファイルを編集し、credentialsMode
パラメーターがManual
に設定されるようにします。サンプル
install-config.yaml
設定ファイルapiVersion: v1 baseDomain: cluster1.example.com credentialsMode: Manual 1 compute: - architecture: amd64 hyperthreading: Enabled
- 1
- この行は、
credentialsMode
パラメーターをManual
に設定するために追加されます。
マニフェストを生成するには、インストールプログラムが含まれるディレクトリーから以下のコマンドを実行します。
$ ./openshift-install create manifests --dir <installation_directory>
インストールプログラムが含まれているディレクトリーから、次のコマンドを実行して、インストールファイルのリリースイメージを
$RELEASE_IMAGE
変数に設定します。$ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')
以下のコマンドを実行して、OpenShift Container Platform リリースイメージから
CredentialsRequest
カスタムリソース (CR) のリストを抽出します。$ oc adm release extract \ --from=$RELEASE_IMAGE \ --credentials-requests \ --included \1 --install-config=<path_to_directory_with_installation_configuration>/install-config.yaml \2 --to=<path_to_directory_for_credentials_requests> 3
このコマンドにより、それぞれの
CredentialsRequest
オブジェクトに YAML ファイルが作成されます。サンプル
CredentialsRequest
オブジェクトapiVersion: cloudcredential.openshift.io/v1 kind: CredentialsRequest metadata: labels: controller-tools.k8s.io: "1.0" name: openshift-image-registry-ibmcos namespace: openshift-cloud-credential-operator spec: secretRef: name: installer-cloud-credentials namespace: openshift-image-registry providerSpec: apiVersion: cloudcredential.openshift.io/v1 kind: IBMCloudProviderSpec policies: - attributes: - name: serviceName value: cloud-object-storage roles: - crn:v1:bluemix:public:iam::::role:Viewer - crn:v1:bluemix:public:iam::::role:Operator - crn:v1:bluemix:public:iam::::role:Editor - crn:v1:bluemix:public:iam::::serviceRole:Reader - crn:v1:bluemix:public:iam::::serviceRole:Writer - attributes: - name: resourceType value: resource-group roles: - crn:v1:bluemix:public:iam::::role:Viewer
各認証情報リクエストのサービス ID を作成し、定義されたポリシーを割り当て、API キーを作成し、シークレットを生成します。
$ ccoctl ibmcloud create-service-id \ --credentials-requests-dir=<path_to_credential_requests_directory> \1 --name=<cluster_name> \2 --output-dir=<installation_directory> \3 --resource-group-name=<resource_group_name> 4
注記クラスターで
TechPreviewNoUpgrade
機能セットによって有効化されたテクノロジープレビュー機能を使用している場合は、--enable-tech-preview
パラメーターを含める必要があります。間違ったリソースグループ名が指定された場合、ブートストラップフェーズ中にインストールが失敗します。正しいリソースグループ名を見つけるには、次のコマンドを実行します。
$ grep resourceGroupName <installation_directory>/manifests/cluster-infrastructure-02-config.yml
検証
-
クラスターの
manifests
ディレクトリーに適切なシークレットが生成されていることを確認してください。
8.9.10. クラスターのデプロイ
互換性のあるクラウドプラットフォームに OpenShift Container Platform をインストールできます。
インストールプログラムの create cluster
コマンドは、初期インストール時に 1 回だけ実行できます。
前提条件
- クラスターをホストするクラウドプラットフォームでアカウントを設定しました。
OpenShift Container Platform インストールプログラムおよびクラスターのプルシークレットがある。
Red Hat Enterprise Linux CoreOS (RHCOS) イメージがローカルで利用可能な場合、インストールプログラムを実行するホストはインターネットアクセスを必要としません。
- ホスト上のクラウドプロバイダーアカウントに、クラスターをデプロイするための適切な権限があることが確認されました。アカウントの権限が正しくないと、インストールプロセスが失敗し、不足している権限を示すエラーメッセージが表示されます。
手順
次のコマンドを実行して、
OPENSHIFT_INSTALL_OS_IMAGE_OVERRIDE
変数をエクスポートし、Red Hat Enterprise Linux CoreOS (RHCOS) イメージの場所を指定します。$ export OPENSHIFT_INSTALL_OS_IMAGE_OVERRIDE="<path_to_image>/rhcos-<image_version>-ibmcloud.x86_64.qcow2.gz"
インストールプログラムが含まれるディレクトリーに切り替え、クラスターのデプロイメントを初期化します。
$ ./openshift-install create cluster --dir <installation_directory> \ 1 --log-level=info 2
検証
クラスターのデプロイが正常に完了すると、次のようになります。
-
ターミナルには、Web コンソールへのリンクや
kubeadmin
ユーザーの認証情報など、クラスターにアクセスするための指示が表示されます。 -
認証情報は
<installation_directory>/.openshift_install.log
にも出力されます。
インストールプログラム、またはインストールプログラムが作成するファイルを削除することはできません。これらはいずれもクラスターを削除するために必要になります。
出力例
... INFO Install complete! INFO To access the cluster as the system:admin user when using 'oc', run 'export KUBECONFIG=/home/myuser/install_dir/auth/kubeconfig' INFO Access the OpenShift web-console here: https://console-openshift-console.apps.mycluster.example.com INFO Login to the console with user: "kubeadmin", and password: "password" INFO Time elapsed: 36m22s
-
インストールプログラムが生成する Ignition 設定ファイルには、24 時間が経過すると期限切れになり、その後に更新される証明書が含まれます。証明書を更新する前にクラスターが停止し、24 時間経過した後にクラスターを再起動すると、クラスターは期限切れの証明書を自動的に復元します。例外として、kubelet 証明書を回復するために保留状態の
node-bootstrapper
証明書署名要求 (CSR) を手動で承認する必要があります。詳細は、コントロールプレーン証明書の期限切れの状態からのリカバリー に関するドキュメントを参照してください。 - 24 時間証明書はクラスターのインストール後 16 時間から 22 時間にローテーションするため、Ignition 設定ファイルは、生成後 12 時間以内に使用することを推奨します。12 時間以内に Ignition 設定ファイルを使用することにより、インストール中に証明書の更新が実行された場合のインストールの失敗を回避できます。
8.9.11. CLI の使用によるクラスターへのログイン
クラスター kubeconfig
ファイルをエクスポートし、デフォルトシステムユーザーとしてクラスターにログインできます。kubeconfig
ファイルには、クライアントを正しいクラスターおよび API サーバーに接続するために CLI で使用されるクラスターに関する情報が含まれます。このファイルはクラスターに固有のファイルであり、OpenShift Container Platform のインストール時に作成されます。
前提条件
- OpenShift Container Platform クラスターをデプロイしていること。
-
oc
CLI をインストールしていること。
手順
kubeadmin
認証情報をエクスポートします。$ export KUBECONFIG=<installation_directory>/auth/kubeconfig 1
- 1
<installation_directory>
には、インストールファイルを保存したディレクトリーへのパスを指定します。
エクスポートされた設定を使用して、
oc
コマンドを正常に実行できることを確認します。$ oc whoami
出力例
system:admin
関連情報
8.9.12. インストール後の設定
以下の手順を実行して、クラスターの設定を完了します。
8.9.12.1. デフォルトの OperatorHub カタログソースの無効化
Red Hat によって提供されるコンテンツを調達する Operator カタログおよびコミュニティープロジェクトは、OpenShift Container Platform のインストール時にデフォルトで OperatorHub に設定されます。ネットワークが制限された環境では、クラスター管理者としてデフォルトのカタログを無効にする必要があります。
手順
disableAllDefaultSources: true
をOperatorHub
オブジェクトに追加して、デフォルトカタログのソースを無効にします。$ oc patch OperatorHub cluster --type json \ -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'
または、Web コンソールを使用してカタログソースを管理できます。Administration
8.9.12.2. クラスターへのポリシーリソースのインストール
oc-mirror OpenShift CLI (oc) プラグインを使用して OpenShift Container Platform コンテンツをミラーリングすると、catalogSource-certified-operator-index.yaml
および imageContentSourcePolicy.yaml
を含むリソースが作成されます。
-
ImageContentSourcePolicy
リソースは、ミラーレジストリーをソースレジストリーに関連付け、イメージプル要求をオンラインレジストリーからミラーレジストリーにリダイレクトします。 -
CatalogSource
リソースは、Operator Lifecycle Manager (OLM) によって使用され、ミラーレジストリーで使用可能な Operator に関する情報を取得します。これにより、ユーザーは Operator を検出してインストールできます。
クラスターをインストールしたら、これらのリソースをクラスターにインストールする必要があります。
前提条件
- 非接続環境で、イメージセットをレジストリーミラーにミラーリングしました。
-
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。
手順
-
cluster-admin
ロールを持つユーザーとして OpenShift CLI にログインします。 results ディレクトリーからクラスターに YAML ファイルを適用します。
$ oc apply -f ./oc-mirror-workspace/results-<id>/
検証
ImageContentSourcePolicy
リソースが正常にインストールされたことを確認します。$ oc get imagecontentsourcepolicy
CatalogSource
リソースが正常にインストールされたことを確認します。$ oc get catalogsource --all-namespaces
8.9.13. OpenShift Container Platform の Telemetry アクセス
OpenShift Container Platform 4.15 では、クラスターの健全性および正常に実行された更新についてのメトリクスを提供するためにデフォルトで実行される Telemetry サービスにも、インターネットアクセスが必要です。クラスターがインターネットに接続されている場合、Telemetry は自動的に実行され、クラスターは OpenShift Cluster Manager に登録されます。
OpenShift Cluster Manager インベントリーが正常である (Telemetry によって自動的に維持、または OpenShift Cluster Manager を使用して手動で維持) ことを確認した後に、subscription watch を使用 して、アカウントまたはマルチクラスターレベルで OpenShift Container Platform サブスクリプションを追跡します。
関連情報
8.9.14. 次のステップ
- クラスターをカスタマイズ します。
- オプション: リモートヘルスレポートのオプトアウト