19.5. ネットワークが制限された環境での OpenStack へのクラスターのインストール
OpenShift Container Platform 4.15 では、インストールリリースコンテンツの内部ミラーを作成して、制限されたネットワーク内で Red Hat OpenStack Platform (RHOSP) にクラスターをインストールできます。
19.5.1. 前提条件
- OpenShift Container Platform のインストールおよび更新 プロセスの詳細を確認した。
- クラスターインストール方法の選択およびそのユーザー向けの準備 を確認している。
- OpenShift クラスターでサポートされるプラットフォーム セクションを使用して、OpenShift Container Platform 4.16 が RHOSP バージョンと互換性があることを確認した。RHOSP サポートマトリックスの OpenShift Container Platform を参照して、プラットフォームのサポートを異なるバージョン間で比較することもできます。
ミラーホストでレジストリーを作成 しており、使用しているバージョンの OpenShift Container Platform の
imageContentSources
データを取得している。重要インストールメディアはミラーホストにあるため、そのコンピューターを使用してすべてのインストール手順を完了することができます。
- クラスターのスケーリング、コントロールプレーンのサイジング、および etcd のパフォーマンスおよびスケーラビリティーに関する理解がある。詳細は、クラスターのスケーリングに関する推奨プラクティス を参照してください。
- RHOSP でメタデータサービスが有効化されている。
19.5.2. ネットワークが制限された環境でのインストールについて
OpenShift Container Platform 4.15 では、ソフトウェアコンポーネントを取得するためにインターネットへのアクティブな接続を必要としないインストールを実行できます。ネットワークが制限された環境のインストールは、クラスターのインストール先となるクラウドプラットフォームに応じて、インストーラーでプロビジョニングされるインフラストラクチャーまたはユーザーによってプロビジョニングされるインフラストラクチャーを使用して実行できます。
クラウドプラットフォーム上でネットワークが制限されたインストールの実行を選択した場合でも、そのクラウド API へのアクセスが必要になります。Amazon Web Service の Route 53 DNS や IAM サービスなどの一部のクラウド機能には、インターネットアクセスが必要です。ネットワークによっては、ベアメタルハードウェア、Nutanix、または VMware vSphere へのインストールに必要なインターネットアクセスが少なくて済む場合があります。
ネットワークが制限されたインストールを完了するには、OpenShift イメージレジストリーのコンテンツをミラーリングし、インストールメディアを含むレジストリーを作成する必要があります。このミラーは、インターネットと制限されたネットワークの両方にアクセスできるミラーホストで、または制限に対応する他の方法を使用して作成できます。
19.5.2.1. その他の制限
ネットワークが制限された環境のクラスターには、以下の追加の制限および制約があります。
-
ClusterVersion
ステータスにはUnable to retrieve available updates
エラーが含まれます。 - デフォルトで、開発者カタログのコンテンツは、必要とされるイメージストリームタグにアクセスできないために使用できません。
19.5.3. OpenShift Container Platform を RHOSP にインストールするリソースのガイドライン
OpenShift Container Platform のインストールをサポートするために、Red Hat OpenStack Platform (RHOSP) クォータは以下の要件を満たす必要があります。
リソース | 値 |
---|---|
Floating IP アドレス | 3 |
ポート | 15 |
ルーター | 1 |
サブネット | 1 |
RAM | 88 GB |
vCPU | 22 |
ボリュームストレージ | 275 GB |
インスタンス | 7 |
セキュリティーグループ | 3 |
セキュリティーグループルール | 60 |
サーバーグループ | 2 - 各マシンプールの追加のアベイラビリティーゾーンごとに 1 つ追加 |
クラスターは推奨されるリソースよりもリソースが少ない場合にも機能する場合がありますが、その場合のパフォーマンスは保証されません。
RHOSP オブジェクトストレージ (Swift) が利用可能で、swiftoperator
ロールを持つユーザーアカウントによって操作されている場合、これは OpenShift Container Platform イメージレジストリーのデフォルトバックエンドとして使用されます。この場合、ボリュームストレージ要件は 175 GB です。Swift 領域要件は、イメージレジストリーのサイズによって異なります。
デフォルトで、セキュリティーグループおよびセキュリティーグループルールのクォータは低く設定される可能性があります。問題が生じた場合には、管理者として openstack quota set --secgroups 3 --secgroup-rules 60 <project>
を実行して値を増やします。
OpenShift Container Platform デプロイメントは、コントロールプレーンマシン、コンピュートマシン、およびブートストラップマシンで構成されます。
19.5.3.1. コントロールプレーンマシン
デフォルトでは、OpenShift Container Platform インストールプロセスは 3 つのコントロールプレーンマシンを作成します。
それぞれのマシンには以下が必要です。
- RHOSP クォータからのインスタンス
- RHOSP クォータからのポート
- 少なくとも 16 GB のメモリーと 4 つの vCPU を備えたフレーバー
- RHOSP クォータから少なくとも 100 GB のストレージ容量
19.5.3.2. コンピュートマシン
デフォルトでは、OpenShift Container Platform インストールプロセスは 3 つのコンピューティングマシンを作成します。
それぞれのマシンには以下が必要です。
- RHOSP クォータからのインスタンス
- RHOSP クォータからのポート
- 少なくとも 8 GB のメモリーと 2 つの vCPU を備えたフレーバー
- RHOSP クォータから少なくとも 100 GB のストレージ容量
コンピュートマシンは、OpenShift Container Platform で実行されるアプリケーションをホストします。できるだけ多くのアプリケーションを実行することが意図されています。
19.5.3.3. ブートストラップマシン
インストール時に、ブートストラップマシンは一時的にプロビジョニングされ、コントロールプレーンを初期化します。実稼働環境用のコントロールプレーンの準備ができた後に、ブートストラップマシンのプロビジョニングは解除されます。
ブートストラップマシンには以下が必要です。
- RHOSP クォータからのインスタンス
- RHOSP クォータからのポート
- 少なくとも 16 GB のメモリーと 4 つの vCPU を備えたフレーバー
- RHOSP クォータから少なくとも 100 GB のストレージ容量
19.5.4. OpenShift Container Platform のインターネットアクセス
OpenShift Container Platform 4.15 では、クラスターのインストールに必要なイメージを取得するために、インターネットにアクセスする必要があります。
インターネットへのアクセスは以下を実行するために必要です。
- OpenShift Cluster Manager にアクセスし、インストールプログラムをダウンロードし、サブスクリプション管理を実行します。クラスターにインターネットアクセスがあり、Telemetry を無効にしない場合、そのサービスは有効なサブスクリプションでクラスターを自動的に使用します。
- クラスターのインストールに必要なパッケージを取得するために Quay.io にアクセスします。
- クラスターの更新を実行するために必要なパッケージを取得します。
19.5.5. RHOSP での Swift の有効化
Swift は、swiftoperator
ロールのあるユーザーアカウントによって操作されます。インストールプログラムを実行する前に、ロールをアカウントに追加します。
Swift として知られる Red Hat OpenStack Platform (RHOSP) オブジェクトストレージサービス が利用可能な場合、OpenShift Container Platform はこれをイメージレジストリーストレージとして使用します。利用できない場合、インストールプログラムは Cinder として知られる RHOSP ブロックストレージサービスに依存します。
Swift が存在し、これを使用する必要がある場合は、Swift へのアクセスを有効にする必要があります。これが存在しない場合や使用する必要がない場合は、このセクションを省略してください。
RHOSP 17 では、Ceph RGW の rgw_max_attr_size
パラメーターが 256 文字に設定されます。この設定は、コンテナーイメージを OpenShift Container Platform レジストリーにアップロードする際に問題を引き起こします。rgw_max_attr_size
の値は、1024 文字以上に設定する必要があります。
インストールする前に、RHOSP のデプロイメントがこの問題の影響を受けるかどうか確認してください。影響を受ける場合は、Ceph RGW を再設定します。
前提条件
- ターゲット環境に RHOSP 管理者アカウントがあります。
- Swift サービスがインストールされています。
-
Ceph RGW で、
account in url
オプションが有効化されています。
手順
RHOSP 上で Swift を有効にするには、以下を実行します。
RHOSP CLI の管理者として、
swiftoperator
ロールを Swift にアクセスするアカウントに追加します。$ openstack role add --user <user> --project <project> swiftoperator
RHOSP デプロイメントでは、イメージレジストリーに Swift を使用することができます。
19.5.6. インストールプログラムのパラメーターの定義
OpenShift Container Platform インストールプログラムは、clouds.yaml
というファイルを使用します。このファイルは、プロジェクト名、ログイン情報、認可サービスの URL を含む Red Hat OpenStack Platform (RHOSP) 設定パラメーターを説明します。
手順
clouds.yaml
ファイルを作成します。RHOSP ディストリビューションに Horizon Web UI が含まれる場合には、そこに
clouds.yaml
ファイルを生成します。重要パスワードを必ず
auth
フィールドに追加してください。シークレットは、clouds.yaml
の 別のファイル に保持できます。RHOSP ディストリビューションに Horizon Web UI が含まれない場合や Horizon を使用する必要がない場合には、このファイルを独自に作成します。
clouds.yaml
の詳細は、RHOSP ドキュメントの Config files を参照してください。clouds: shiftstack: auth: auth_url: http://10.10.14.42:5000/v3 project_name: shiftstack username: <username> password: <password> user_domain_name: Default project_domain_name: Default dev-env: region_name: RegionOne auth: username: <username> password: <password> project_name: 'devonly' auth_url: 'https://10.10.14.22:5001/v2.0'
RHOSP インストールでエンドポイント認証用に自己署名認証局 (CA) を使用する場合、以下を実行します。
- 認証局ファイルをマシンにコピーします。
cacerts
キーをclouds.yaml
ファイルに追加します。この値は、CA 証明書への絶対的な root 以外によるアクセスが可能なパスである必要があります。clouds: shiftstack: ... cacert: "/etc/pki/ca-trust/source/anchors/ca.crt.pem"
ヒントカスタム CA 証明書を使用してインストーラーを実行した後に、
cloud-provider-config
キーマップのca-cert.pem
キーの値を編集して証明書を更新できます。コマンドラインで、以下を実行します。$ oc edit configmap -n openshift-config cloud-provider-config
clouds.yaml
ファイルを以下の場所のいずれかに置きます。-
OS_CLIENT_CONFIG_FILE
環境変数の値 - 現行ディレクトリー
-
Unix 固有のユーザー設定ディレクトリー (例:
~/.config/openstack/clouds.yaml
) Unix 固有のサイト設定ディレクトリー (例:
/etc/openstack/clouds.yaml
)インストールプログラムはこの順序で
clouds.yaml
を検索します。
-
19.5.7. OpenStack Cloud Controller Manager のオプション設定
オプションで、クラスターの OpenStack Cloud Controller Manager (CCM) 設定を編集できます。この設定は、OpenShift Container Platform が Red Hat OpenStack Platform (RHOSP) と対話する方法を制御します。
設定パラメーターの完全なリストは、「OpenStack のインストール」ドキュメントの「OpenStack Cloud Controller Manager リファレンスガイド」を参照してください。
手順
クラスター用に生成されたマニフェストファイルがない場合は、以下のコマンドを実行して生成します。
$ openshift-install --dir <destination_directory> create manifests
テキストエディターで、cloud-provider 設定マニフェストファイルを開きます。以下に例を示します。
$ vi openshift/manifests/cloud-provider-config.yaml
CCM リファレンスガイドに従ってオプションを変更します。
負荷分散のために Octavia を設定することが一般的です。以下に例を示します。
#... [LoadBalancer] lb-provider = "amphora" 1 floating-network-id="d3deb660-4190-40a3-91f1-37326fe6ec4a" 2 create-monitor = True 3 monitor-delay = 10s 4 monitor-timeout = 10s 5 monitor-max-retries = 1 6 #...
- 1
- このプロパティーは、ロードバランサーが使用する Octavia プロバイダーを設定します。
"ovn"
または"amphora"
を値として受け入れます。OVN の使用を選択する場合は、lb-method
をSOURCE_IP_PORT
。 - 2
- このプロパティーは、複数の外部ネットワークをクラスターで使用する場合に必要です。クラウドプロバイダーは、ここで指定するネットワーク上に Floating IP アドレスを作成します。
- 3
- このプロパティーは、クラウドプロバイダーが Octavia ロードバランサーのヘルスモニターを作成するかどうかを制御します。ヘルスモニターを作成するには、値を
True
に設定します。RHOSP 16.2 の時点で、この機能は Amphora プロバイダーでのみ利用できます。 - 4
- このプロパティーは、監視されるエンドポイントの頻度を設定します。値は
time.ParseDuration()
形式である必要があります。このプロパティーは、create-monitor
プロパティーの値がTrue
の場合に必要です。 - 5
- このプロパティーは、タイムアウトする前に監視要求が開く時間を設定します。値は
time.ParseDuration()
形式である必要があります。このプロパティーは、create-monitor
プロパティーの値がTrue
の場合に必要です。 - 6
- このプロパティーは、ロードバランサーがオンラインとしてマークされる前に必要なモニタリング要求の数を定義します。値は整数でなければなりません。このプロパティーは、
create-monitor
プロパティーの値がTrue
の場合に必要です。
重要変更を保存する前に、ファイルが正しく構造化されていることを確認します。プロパティーが適切なセクションに置かれていないと、クラスターが失敗することがあります。
重要.spec.externalTrafficPolicy
プロパティーの値がLocal
に設定されたサービスを使用する場合は、create-monitor
プロパティーの値をTrue
に設定する必要があります。RHOSP 16.2 の OVN Octavia プロバイダーは、ヘルスモニターをサポートしません。そのため、lb-provider
の値が"ovn"
に設定されている場合、ETP
パラメーターの値がLocal
に設定されたサービスは応答しない可能性があります。変更をファイルに保存し、インストールを続行します。
ヒントインストーラーの実行後に、クラウドプロバイダー設定を更新できます。コマンドラインで、以下を実行します。
$ oc edit configmap -n openshift-config cloud-provider-config
変更を保存した後、クラスターの再設定には多少時間がかかります。ノードが
SchedulingDisabled
のままの場合は、プロセスが完了します。
19.5.8. ネットワークが制限されたインストール用の RHCOS イメージの作成
Red Hat Enterprise Linux CoreOS (RHCOS) イメージをダウンロードし、OpenShift Container Platform をネットワークが制限された Red Hat OpenStack Platform (RHOSP) 環境にインストールします。
前提条件
- OpenShift Container Platform インストールプログラムを取得します。ネットワークが制限されたインストールでは、プログラムはミラーレジストリースト上に置かれます。
手順
- Red Hat カスタマーポータルの 製品ダウンロードページ にログインします。
Version で、RHEL 8 用の OpenShift Container Platform 4.15 の最新リリースを選択します。
重要RHCOS イメージは OpenShift Container Platform の各リリースごとに変更されない可能性があります。インストールする OpenShift Container Platform バージョンと等しいか、それ以下のバージョンの内で最も新しいバージョンのイメージをダウンロードする必要があります。利用可能な場合は、OpenShift Container Platform バージョンに一致するイメージのバージョンを使用します。
- Red Hat Enterprise Linux CoreOS (RHCOS) - OpenStack Image (QCOW) イメージをダウンロードします。
イメージを展開します。
注記クラスターが使用する前にイメージを圧縮解除する必要があります。ダウンロードしたファイルの名前に、
.gz
または.tgz
などの圧縮拡張子が含まれていない場合があります。ファイルを圧縮するか、どのように圧縮するかを確認するには、コマンドラインで以下を入力します。$ file <name_of_downloaded_file>
圧縮解除したイメージを、Glance などの bastion サーバーからアクセス可能な場所にアップロードします。以下に例を示します。
$ openstack image create --file rhcos-44.81.202003110027-0-openstack.x86_64.qcow2 --disk-format qcow2 rhcos-${RHCOS_VERSION}
重要RHOSP 環境によっては、
.raw
または.qcow2
形式 のいずれかでイメージをアップロードできる場合があります。Ceph を使用する場合は、.raw
形式を使用する必要があります。警告インストールプログラムが同じ名前を持つ複数のイメージを見つける場合、それらのイメージのいずれかがランダムに選択されます。この動作を回避するには、RHOSP でリソースの一意の名前を作成します。
これで、イメージが制限されたインストールで利用可能になります。OpenShift Container Platform デプロイメントで使用するイメージの名前または場所をメモします。
19.5.9. インストール設定ファイルの作成
Red Hat OpenStack Platform (RHOSP) にインストールする OpenShift Container Platform クラスターをカスタマイズできます。
前提条件
- OpenShift Container Platform インストールプログラムおよびクラスターのプルシークレットがある。ネットワークが制限されたインストールでは、これらのファイルがミラーホスト上に置かれます。
-
ミラーレジストリーの作成時に生成された
imageContentSources
値がある。 - ミラーレジストリーの証明書の内容を取得している。
- Red Hat Enterprise Linux CoreOS (RHCOS) イメージを取得し、アクセス可能な場所にアップロードしました。
手順
install-config.yaml
ファイルを作成します。インストールプログラムが含まれるディレクトリーに切り替え、以下のコマンドを実行します。
$ ./openshift-install create install-config --dir <installation_directory> 1
- 1
<installation_directory>
の場合、インストールプログラムが作成するファイルを保存するためにディレクトリー名を指定します。
ディレクトリーを指定する場合:
-
ディレクトリーに
execute
権限があることを確認します。この権限は、インストールディレクトリーで Terraform バイナリーを実行するために必要です。 - 空のディレクトリーを使用します。ブートストラップ X.509 証明書などの一部のインストールアセットは有効期限が短いため、インストールディレクトリーを再利用しないでください。別のクラスターインストールの個別のファイルを再利用する必要がある場合は、それらをディレクトリーにコピーすることができます。ただし、インストールアセットのファイル名はリリース間で変更される可能性があります。インストールファイルを以前のバージョンの OpenShift Container Platform からコピーする場合は注意してコピーを行ってください。
プロンプト時に、クラウドの設定の詳細情報を指定します。
オプション: クラスターマシンにアクセスするために使用する SSH キーを選択します。
注記インストールのデバッグまたは障害復旧を実行する必要のある実稼働用の OpenShift Container Platform クラスターでは、
ssh-agent
プロセスが使用する SSH キーを指定します。- ターゲットに設定するプラットフォームとして openstack を選択します。
- クラスターのインストールに使用する Red Hat OpenStack Platform (RHOSP) の外部ネットワーク名を指定します。
- OpenShift API への外部アクセスに使用する floating IP アドレスを指定します。
- コントロールプレーンノードに使用する少なくとも 16 GB の RAM とコンピュートノードに使用する 8 GB の RAM を持つ RHOSP フレーバーを指定します。
- クラスターをデプロイするベースドメインを選択します。すべての DNS レコードはこのベースのサブドメインとなり、クラスター名も含まれます。
- クラスターの名前を入力します。名前は 14 文字以下でなければなりません。
install-config.yaml
ファイルで、platform.openstack.clusterOSImage
の値をイメージの場所または名前に設定します。以下に例を示します。platform: openstack: clusterOSImage: http://mirror.example.com/images/rhcos-43.81.201912131630.0-openstack.x86_64.qcow2.gz?sha256=ffebbd68e8a1f2a245ca19522c16c86f67f9ac8e4e0c1f0a812b068b16f7265d
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-----
この値は、ミラーレジストリーに使用した証明書ファイルの内容である必要があります。証明書ファイルは、既存の信頼できる認証局、またはミラーレジストリー用に生成した自己署名証明書のいずれかです。
次の 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
これらの値には、ミラーレジストリーの作成時に記録された
imageContentSources
を使用します。オプション: パブリッシュストラテジーを
Internal
に設定します。publish: Internal
このオプションを設定すると、内部 Ingress コントローラーおよびプライベートロードバランサーを作成します。
必要な
install-config.yaml
ファイルに他の変更を加えます。パラメーターの詳細は、「インストール設定パラメーター」を参照してください。
install-config.yaml
ファイルをバックアップし、複数のクラスターをインストールするのに使用できるようにします。重要install-config.yaml
ファイルはインストールプロセス時に使用されます。このファイルを再利用する必要がある場合は、この段階でこれをバックアップしてください。
19.5.9.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
オブジェクトのみがサポートされ、追加のプロキシーを作成することはできません。
19.5.9.2. 制限された OpenStack インストールのカスタマイズされた install-config.yaml
ファイルのサンプル
このサンプル install-config.yaml
は、すべての可能な Red Hat OpenStack Platform (RHOSP) カスタマイズオプションを示しています。
このサンプルファイルは参照用にのみ提供されます。インストールプログラムを使用して install-config.yaml
ファイルを取得する必要があります。
apiVersion: v1 baseDomain: example.com controlPlane: name: master platform: {} replicas: 3 compute: - name: worker platform: openstack: type: ml.large replicas: 3 metadata: name: example networking: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 machineNetwork: - cidr: 10.0.0.0/16 serviceNetwork: - 172.30.0.0/16 networkType: OVNKubernetes platform: openstack: region: region1 cloud: mycloud externalNetwork: external computeFlavor: m1.xlarge apiFloatingIP: 128.0.0.1 fips: false pullSecret: '{"auths": ...}' sshKey: ssh-ed25519 AAAA... additionalTrustBundle: | -----BEGIN CERTIFICATE----- ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ -----END CERTIFICATE----- imageContentSources: - mirrors: - <mirror_registry>/<repo_name>/release source: quay.io/openshift-release-dev/ocp-release - mirrors: - <mirror_registry>/<repo_name>/release source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
19.5.10. クラスターノードの 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 パブリックキーをインストールプログラムに指定します。
19.5.11. 環境へのアクセスの有効化
デプロイ時に、OpenShift Container Platform マシンはすべて Red Hat OpenStack Platform (RHOSP) テナントネットワークに作成されます。したがって、ほとんどの RHOSP デプロイメントでは直接アクセスできません。
インストール時に Floating IP アドレス (FIP) を使用して OpenShift Container Platform API およびアプリケーションのアクセスを設定できます。FIP を設定せずにインストールを完了することもできますが、インストーラーは API またはアプリケーションを外部からアクセスする方法を設定しません。
19.5.11.1. floating IP アドレスを使用したアクセスの有効化
OpenShift Container Platform API およびクラスターアプリケーションへの外部アクセス用に Floating IP (FIP) アドレスを作成します。
手順
Red Hat OpenStack Platform (RHOSP) CLI を使用して、API FIP を作成します。
$ openstack floating ip create --description "API <cluster_name>.<base_domain>" <external_network>
Red Hat OpenStack Platform (RHOSP) CLI を使用して、apps (アプリ)、または Ingress、FIP を作成します。
$ openstack floating ip create --description "Ingress <cluster_name>.<base_domain>" <external_network>
API および Ingress FIP の DNS サーバーに、これらのパターンに準拠するレコードを追加します。
api.<cluster_name>.<base_domain>. IN A <API_FIP> *.apps.<cluster_name>.<base_domain>. IN A <apps_FIP>
注記DNS サーバーを制御していない場合は、次のようなクラスタードメイン名を
/etc/hosts
ファイルに追加することで、クラスターにアクセスできます。-
<api_floating_ip> api.<cluster_name>.<base_domain>
-
<application_floating_ip> grafana-openshift-monitoring.apps.<cluster_name>.<base_domain>
-
<application_floating_ip> prometheus-k8s-openshift-monitoring.apps.<cluster_name>.<base_domain>
-
<application_floating_ip> oauth-openshift.apps.<cluster_name>.<base_domain>
-
<application_floating_ip> console-openshift-console.apps.<cluster_name>.<base_domain>
-
application_floating_ip integrated-oauth-server-openshift-authentication.apps.<cluster_name>.<base_domain>
/etc/hosts
ファイル内のクラスタードメイン名により、クラスターの Web コンソールおよび監視インターフェイスへのローカルアクセスが許可されます。kubectl
またはoc
を使用することもできます。<application_floating_ip> を指す追加のエントリーを使用して、ユーザーアプリケーションにアクセスできます。このアクションにより、API およびアプリケーションは他のユーザーがアクセスできない状態になり、この状態は実稼働デプロイメントには適していませんが、開発およびテスト目的のインストールが可能になります。-
FIP を、以下のパラメーターの値として
install-config.yaml
ファイルに追加します。-
platform.openstack.ingressFloatingIP
-
platform.openstack.apiFloatingIP
-
これらの値を使用する場合には、install-config.yaml
ファイルの platform.openstack.externalNetwork
パラメーターの値として外部ネットワークを入力する必要もあります。
Floating IP アドレスを割り当て、ファイアウォール設定を更新することで、OpenShift Container Platform リソースがクラスター外で利用できる状態にすることができます。
19.5.11.2. Floating IP アドレスなしでのインストールの完了
Floating IP アドレスを指定せずに OpenShift Container Platform を Red Hat OpenStack Platform (RHOSP) にインストールすることができます。
install-config.yaml
ファイルで以下のパラメーターを定義しないでください。
-
platform.openstack.ingressFloatingIP
-
platform.openstack.apiFloatingIP
外部ネットワークを提供できない場合は、platform.openstack.externalNetwork
を空白のままにすることもできます。platform.openstack.externalNetwork
の値を指定しない場合はルーターが作成されず、追加のアクションがない場合は、インストーラーは Glance からのイメージの取得に失敗します。外部接続を独自に設定する必要があります。
Floating IP アドレスまたは名前解決がないために、クラスター API に到達できないシステムからインストーラーを実行すると、インストールに失敗します。このような場合にインストールが失敗するのを防ぐために、プロキシーネットワークを使用するか、マシンと同じネットワークにあるシステムからインストーラーを実行できます。
API および Ingress ポートの DNS レコードを作成して、名前解決を有効にできます。以下に例を示します。
api.<cluster_name>.<base_domain>. IN A <api_port_IP> *.apps.<cluster_name>.<base_domain>. IN A <ingress_port_IP>
DNS サーバーを制御しない場合は、/etc/hosts
ファイルにレコードを追加できます。このアクションにより、API は他者のアクセスできない状態になり、この状態は実稼働デプロイメントには適していませんが、開発およびテスト目的のインストールが可能になります。
19.5.12. クラスターのデプロイ
互換性のあるクラウドプラットフォームに OpenShift Container Platform をインストールできます。
インストールプログラムの create cluster
コマンドは、初期インストール時に 1 回だけ実行できます。
前提条件
- OpenShift Container Platform インストールプログラムおよびクラスターのプルシークレットがある。
- ホスト上のクラウドプロバイダーアカウントに、クラスターをデプロイするための適切な権限があることが確認されました。アカウントの権限が正しくないと、インストールプロセスが失敗し、不足している権限を示すエラーメッセージが表示されます。
手順
インストールプログラムが含まれるディレクトリーに切り替え、クラスターのデプロイメントを初期化します。
$ ./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 設定ファイルを使用することにより、インストール中に証明書の更新が実行された場合のインストールの失敗を回避できます。
19.5.13. クラスターステータスの確認
インストール時またはインストール後に OpenShift Container Platform クラスターのステータスを確認することができます。
手順
クラスター環境で、管理者の kubeconfig ファイルをエクスポートします。
$ export KUBECONFIG=<installation_directory>/auth/kubeconfig 1
- 1
<installation_directory>
には、インストールファイルを保存したディレクトリーへのパスを指定します。
kubeconfig
ファイルには、クライアントを正しいクラスターおよび API サーバーに接続するために CLI で使用されるクラスターに関する情報が含まれます。デプロイメント後に作成されたコントロールプレーンおよびコンピュートマシンを表示します。
$ oc get nodes
クラスターのバージョンを表示します。
$ oc get clusterversion
Operator のステータスを表示します。
$ oc get clusteroperator
クラスター内のすべての実行中の Pod を表示します。
$ oc get pods -A
19.5.14. 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
関連情報
- OpenShift Container Platform Web コンソールへのアクセスと理解に関する詳細は、Web コンソールへのアクセス を参照してください。
19.5.15. デフォルトの 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
19.5.16. 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 サブスクリプションを追跡します。
関連情報
- Telemetry サービスの詳細は、リモートヘルスモニタリング を参照してください。
19.5.17. 次のステップ
- クラスターをカスタマイズ します。
- クラスターのインストールに使用したミラーレジストリーに信頼された CA がある場合は、追加のトラストストアを設定 してクラスターに追加します。
- 必要に応じて、リモートヘルスレポートをオプトアウト できます。
- 必要に応じて、非接続クラスターの登録 を参照してください。
-
Cluster Samples Operator および
must-gather
ツールの イメージストリームを設定 します。 - ネットワークが制限された環境での Operator Lifecycle Manager (OLM) の使用 方法について参照します。
- Floating IP アドレス上でアプリケーショントラフィックを受け入れるように RHOSP を設定していない場合は、Floating IP アドレスを使用して RHOSP アクセスを設定 します。