14.3. エージェントベースのインストーラーを使用した OpenShift Container Platform クラスターのインストール
以下の手順に従って、エージェントベースのインストーラーを使用して、OpenShift Container Platform クラスターをインストールします。
14.3.1. 前提条件
- OpenShift Container Platform のインストールおよび更新 プロセスの詳細を確認している。
- クラスターインストール方法の選択およびそのユーザー向けの準備 を確認している。
14.3.2. エージェントベースのインストーラーを使用した OpenShift Container Platform のインストール
以下の手順では、切断された環境でシングルノードの OpenShift Container Platform をデプロイします。これらの手順を基本として使用し、必要に応じて変更できます。
14.3.2.1. エージェントベースのインストーラーのダウンロード
手順
この手順を使用して、インストールに必要なエージェントベースのインストーラーと CLI をダウンロードします。
- ログイン認証情報を使用して OpenShift Container Platform Web コンソールにログインします。
- データセンター に移動します。
- Run Agent-based Installer locally をクリックします。
- OpenShift インストーラー と コマンドラインインターフェイス のオペレーティングシステムとアーキテクチャーを選択します。
- Download Installer をクリックして、インストールプログラムをダウンロードして展開します。
- Download pull secret または Copy pull secret をクリックして、プルシークレットをダウンロードまたはコピーできます。
-
Download command-line tools をクリックし、
openshift-installバイナリーをPATH上のディレクトリーに配置します。
14.3.2.2. エージェントイメージの作成と起動
この手順を使用して、マシンでエージェントイメージを起動します。
手順
以下のコマンドを実行して
nmstateの依存関係をインストールします。$ sudo dnf install /usr/bin/nmstatectl -y
-
PATH にあるディレクトリーに
openshift-installバイナリーを配置します。 次のコマンドを実行して、インストール設定を保存するディレクトリーを作成します。
$ mkdir ~/<directory_name>
注記これは、エージェントベースのインストールで推奨される方法です。GitOps ZTP マニフェストの使用はオプションです。
install-config.yamlファイルを作成します。cat << EOF > ./my-cluster/install-config.yaml apiVersion: v1 baseDomain: test.example.com compute: - architecture: amd64 1 hyperthreading: Enabled name: worker replicas: 0 controlPlane: architecture: amd64 hyperthreading: Enabled name: master replicas: 1 metadata: name: sno-cluster 2 networking: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 machineNetwork: - cidr: 192.168.111.0/16 networkType: OVNKubernetes 3 serviceNetwork: - 172.30.0.0/16 platform: none: {} pullSecret: '<pull_secret>' 4 sshKey: | '<ssh_pub_key>' 5 EOF
注記プラットフォームを
vSphereまたはbaremetalに設定すると、クラスターノードの IP アドレスエンドポイントを次の 3 つの方法で設定できます。- IPv4
- IPv6
- IPv4 と IPv6 の並列 (デュアルスタック)
IPv6 は、ベアメタルプラットフォームでのみサポートされます。
デュアルスタックネットワーキングの例
networking: clusterNetwork: - cidr: 172.21.0.0/16 hostPrefix: 23 - cidr: fd02::/48 hostPrefix: 64 machineNetwork: - cidr: 192.168.11.0/16 - cidr: 2001:DB8::/32 serviceNetwork: - 172.22.0.0/16 - fd03::/112 networkType: OVNKubernetes platform: baremetal: apiVIPs: - 192.168.11.3 - 2001:DB8::4 ingressVIPs: - 192.168.11.4 - 2001:DB8::5agent-config.yamlファイルを作成します。cat > agent-config.yaml << EOF apiVersion: v1alpha1 kind: AgentConfig metadata: name: sno-cluster rendezvousIP: 192.168.111.80 1 hosts: 2 - hostname: master-0 3 interfaces: - name: eno1 macAddress: 00:ef:44:21:e6:a5 rootDeviceHints: 4 deviceName: /dev/sdb networkConfig: 5 interfaces: - name: eno1 type: ethernet state: up mac-address: 00:ef:44:21:e6:a5 ipv4: enabled: true address: - ip: 192.168.111.80 prefix-length: 23 dhcp: false dns-resolver: config: server: - 192.168.111.1 routes: config: - destination: 0.0.0.0/0 next-hop-address: 192.168.111.2 next-hop-interface: eno1 table-id: 254 EOF- 1
- この IP アドレスは、ブートストラッププロセスを実行するノードや、
assisted-serviceコンポーネントを実行するノードを判別するために使用されます。networkConfigパラメーターで少なくとも 1 つのホストの IP アドレスを指定しない場合は、ランデブー IP アドレスを指定する必要があります。このアドレスが指定されていない場合、指定されたホストのnetworkConfigから 1 つの IP アドレスが選択されます。 - 2
- ホスト設定はオプションです。定義されたホストの数は、
install-config.yamlファイルで定義されたホストの総数 (compute.replicasおよびcontrolPlane.replicasパラメーターの値の合計) を超えてはなりません。 - 3
- オプションの
hostnameパラメーターは、動的ホスト設定プロトコル (DHCP) または逆引き DNS ルックアップから取得したホスト名をオーバーライドします。各ホストには、これらの方法のいずれかによって提供される一意のホスト名が必要です。 - 4
rootDeviceHintsパラメーターは、Red Hat Enterprise Linux CoreOS (RHCOS) イメージを特定のデバイスにプロビジョニングできるようにします。これは、検出順にデバイスを検査し、検出された値をヒントの値と比較します。ヒントの値と一致する最初に検出されたデバイスが使用されます。- 5
- ホストのネットワークインターフェイスを NMState 形式で設定するには、このオプションパラメーターを設定します。
以下のコマンドを実行して agent イメージを作成します。
$ openshift-install --dir <install_directory> agent create image
注記Red Hat Enterprise Linux CoreOS (RHCOS) はプライマリーディスクでのマルチパスをサポートするようになり、ハードウェア障害に対する対障害性が強化され、ホストの可用性を強化できるようになりました。マルチパス化は、デフォルトの
/etc/multipath.conf設定を使用して、agent.iSO イメージでデフォルトで有効になっています。-
ベアメタルマシンで
agent.x86_64.isoまたはagent.aarch64.isoイメージを起動します。
14.3.2.3. 現在のインストールホストがリリースイメージをプルできることを確認する
エージェントイメージを起動し、ネットワークサービスがホストで利用可能になると、エージェントコンソールアプリケーションは、プルチェックを実行して、現在のホストがリリースイメージを取得できることを確認します。
一次プルチェックに合格した場合は、アプリケーションを終了して、インストールを続行できます。プルチェックが失敗した場合、アプリケーションは、TUI の Additional checks セクションに表示されるように、問題のトラブルシューティングに役立つ追加のチェックを実行します。追加のチェックの失敗は、プライマリープルチェックが成功するかぎり、必ずしも重大ではありません。
インストールが失敗する可能性があるホストネットワーク設定の問題がある場合は、コンソールアプリケーションを使用して、ネットワーク設定を調整できます。
エージェントコンソールアプリケーションがホストネットワーク設定の問題を検出した場合は、ユーザーが手動でコンソールアプリケーションを停止し、続行する意思を示すまで、インストールワークフローは停止されます。
手順
- エージェントコンソールアプリケーションが、設定されたリリースイメージをレジストリーからプルできるかどうかを確認するまで待ちます。
エージェントコンソールアプリケーションが、インストーラーの接続チェックに合格したことを示している場合は、プロンプトがタイムアウトになるまで待って、インストールを続行します。
注記接続チェックに合格した場合も、ネットワーク設定の表示または変更を選択できます。
ただし、タイムアウトせずに、エージェントコンソールアプリケーションとやりとりすることを選択した場合は、TUI を手動で終了して、インストールを続行する必要があります。
エージェントコンソールアプリケーションのチェックが失敗した場合は、
Release image URLプルチェックの横に赤いアイコンが表示されます。ホストのネットワーク設定を再設定するには、次の手順を使用します。TUI の
Check Errorsセクションを読みます。このセクションには、失敗したチェックに固有のエラーメッセージが表示されます。
- Configure network を選択して、NetworkManager TUI を起動します。
- Edit a connection を選択し、再設定する接続を選択します。
- 設定を編集し、OK を選択して、変更を保存します。
- Back を選択して、NetworkManager TUI のメイン画面に戻ります。
- Activate a Connection を選択します。
- 再設定されたネットワークを選択して、非アクティブ化します。
- 再設定されたネットワークを再度選択して、再アクティブ化します。
- Back を選択し、Quit を選択して、エージェントコンソールアプリケーションに戻ります。
- 新しいネットワーク設定を使用して、継続的なネットワークチェックが再開されるまで、5 秒間以上、待ちます。
-
Release image URLプルチェックが成功し、URL の横に緑色のアイコンが表示された場合は、Quit を選択して、エージェントコンソールアプリケーションを終了し、インストールを続行します。
14.3.2.4. インストールの進行状況の追跡と確認
次の手順を使用して、インストールの進行状況を追跡し、インストールが成功したことを確認します。
手順
オプション: ブートストラップホスト (ランデブーホスト) がいつ再起動するかを知るには、次のコマンドを実行します。
$ ./openshift-install --dir <install_directory> agent wait-for bootstrap-complete \ 1 --log-level=info 2
出力例
................................................................... ................................................................... INFO Bootstrap configMap status is complete INFO cluster bootstrap is complete
Kubernetes API サーバーでこれがコントロールプレーンマシンにブートストラップされていることを示すシグナルが出されるとコマンドは成功します。
進行状況を追跡し、インストールが成功したことを確認するには、次のコマンドを実行します。
$ openshift-install --dir <install_directory> agent wait-for install-complete 1- 1
<install_directory>directory には、エージェント ISO が生成されたディレクトリーへのパスを指定します。
出力例
................................................................... ................................................................... INFO Cluster is installed INFO Install complete! INFO To access the cluster as the system:admin user when using 'oc', run INFO export KUBECONFIG=/home/core/installer/auth/kubeconfig INFO Access the OpenShift web-console here: https://console-openshift-console.apps.sno-cluster.test.example.com
GitOps ZTP マニフェストのオプションの方法を使用している場合、次の 3 つの方法で AgentClusterInstall.yaml ファイルを介してクラスターノードの IP アドレスエンドポイントを設定できます。
- IPv4
- IPv6
- IPv4 と IPv6 の並列 (デュアルスタック)
IPv6 は、ベアメタルプラットフォームでのみサポートされます。
デュアルスタックネットワーキングの例
apiVIP: 192.168.11.3
ingressVIP: 192.168.11.4
clusterDeploymentRef:
name: mycluster
imageSetRef:
name: openshift-4.13
networking:
clusterNetwork:
- cidr: 172.21.0.0/16
hostPrefix: 23
- cidr: fd02::/48
hostPrefix: 64
machineNetwork:
- cidr: 192.168.11.0/16
- cidr: 2001:DB8::/32
serviceNetwork:
- 172.22.0.0/16
- fd03::/112
networkType: OVNKubernetes
関連情報
- デュアルスタックネットワークを使用したデプロイメント を参照してください。
- install-config yaml ファイルの設定 を参照してください。
- ベアメタル環境に 3 ノードクラスターをデプロイするための 3 ノードクラスターの設定 を参照してください。
- ルートデバイスヒントについて を参照してください。
- NMState 状態の例 を参照してください。
14.3.3. GitOps ZTP カスタムリソースのサンプル
オプション: GitOps ゼロタッチプロビジョニング (ZTP) カスタムリソース (CR) オブジェクトを使用して、エージェントベースのインストーラーで OpenShift Container Platform クラスターをインストールできます。
以下の GitOps ZTP カスタムリソースをカスタマイズして、OpenShift Container Platform クラスターの詳細を指定できます。次のサンプル GitOps ZTP カスタムリソースは、単一ノードクラスター用です。
agent-cluster-install.yaml
apiVersion: extensions.hive.openshift.io/v1beta1
kind: AgentClusterInstall
metadata:
name: test-agent-cluster-install
namespace: cluster0
spec:
clusterDeploymentRef:
name: ostest
imageSetRef:
name: openshift-4.13
networking:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
serviceNetwork:
- 172.30.0.0/16
provisionRequirements:
controlPlaneAgents: 1
workerAgents: 0
sshPublicKey: <YOUR_SSH_PUBLIC_KEY>cluster-deployment.yaml
apiVersion: hive.openshift.io/v1
kind: ClusterDeployment
metadata:
name: ostest
namespace: cluster0
spec:
baseDomain: test.metalkube.org
clusterInstallRef:
group: extensions.hive.openshift.io
kind: AgentClusterInstall
name: test-agent-cluster-install
version: v1beta1
clusterName: ostest
controlPlaneConfig:
servingCertificates: {}
platform:
agentBareMetal:
agentSelector:
matchLabels:
bla: aaa
pullSecretRef:
name: pull-secretcluster-image-set.yaml
apiVersion: hive.openshift.io/v1 kind: ClusterImageSet metadata: name: openshift-4.13 spec: releaseImage: registry.ci.openshift.org/ocp/release:4.13.0-0.nightly-2022-06-06-025509
infra-env.yaml
apiVersion: agent-install.openshift.io/v1beta1
kind: InfraEnv
metadata:
name: myinfraenv
namespace: cluster0
spec:
clusterRef:
name: ostest
namespace: cluster0
cpuArchitecture: aarch64
pullSecretRef:
name: pull-secret
sshAuthorizedKey: <YOUR_SSH_PUBLIC_KEY>
nmStateConfigLabelSelector:
matchLabels:
cluster0-nmstate-label-name: cluster0-nmstate-label-valuenmstateconfig.yaml
apiVersion: agent-install.openshift.io/v1beta1
kind: NMStateConfig
metadata:
name: master-0
namespace: openshift-machine-api
labels:
cluster0-nmstate-label-name: cluster0-nmstate-label-value
spec:
config:
interfaces:
- name: eth0
type: ethernet
state: up
mac-address: 52:54:01:aa:aa:a1
ipv4:
enabled: true
address:
- ip: 192.168.122.2
prefix-length: 23
dhcp: false
dns-resolver:
config:
server:
- 192.168.122.1
routes:
config:
- destination: 0.0.0.0/0
next-hop-address: 192.168.122.1
next-hop-interface: eth0
table-id: 254
interfaces:
- name: "eth0"
macAddress: 52:54:01:aa:aa:a1pull-secret.yaml
apiVersion: v1 kind: Secret type: kubernetes.io/dockerconfigjson metadata: name: pull-secret namespace: cluster0 stringData: .dockerconfigjson: 'YOUR_PULL_SECRET'
関連情報
- GitOps ゼロタッチプロビジョニング (ZTP) の詳細については 、ネットワークファーエッジの課題 を参照してください。