1.8.3.9.3. コマンドラインを使用したクラスターの作成
Central Infrastructure Management 管理コンポーネント内のアシステッドインストーラー機能を使用して、コンソールを使用せずにクラスターを作成することもできます。この手順を完了したら、生成された検出イメージからホストを起動できます。通常、手順の順序は重要ではありませんが、順序が必要な場合は注意してください。
1.8.3.9.3.1. namespace を作成します。 リンクのコピーリンクがクリップボードにコピーされました!
リソースの namespace が必要です。すべてのリソースを共有 namespace に保持すると便利です。この例では、namespace の名前に sample-namespace を使用していますが、assisted-installer 以外の任意の名前を使用できます。次のファイルを作成して適用して namespace を作成します。
apiVersion: v1
kind: Namespace
metadata:
name: sample-namespace
1.8.3.9.3.2. プルシークレットを namespace に追加する リンクのコピーリンクがクリップボードにコピーされました!
以下のカスタムリソースを作成し、適用して プルシークレット を namespace に追加します。
apiVersion: v1
kind: Secret
type: kubernetes.io/dockerconfigjson
metadata:
name: <pull-secret>
namespace: sample-namespace
stringData:
.dockerconfigjson: 'your-pull-secret-json'
- 1
- プルシークレットの内容を追加します。たとえば、これには
cloud.openshift.com、quay.io、またはregistry.redhat.io認証を含めることができます。
1.8.3.9.3.3. ClusterImageSet の生成 リンクのコピーリンクがクリップボードにコピーされました!
以下のカスタムリソースを作成して適用することで、CustomImageSet を生成してクラスターの OpenShift Container Platform のバージョンを指定します。name と releaseImage の両方について、<4.x.0> を ClusterImageSet に使用しているサポートされているバージョンに置き換えます。
apiVersion: hive.openshift.io/v1
kind: ClusterImageSet
metadata:
name: openshift-v<4.x.0>
spec:
releaseImage: quay.io/openshift-release-dev/ocp-release:<4.x.0>-rc.0-x86_64
注記: ハブクラスターとは異なるアーキテクチャーを持つマネージドクラスターをインストールする場合は、マルチアーキテクチャーの ClusterImageSet を作成する必要があります。詳細は、別のアーキテクチャーにクラスターをデプロイするためのリリースイメージの作成 を参照してください。
1.8.3.9.3.4. ClusterDeployment カスタムリソースを作成します。 リンクのコピーリンクがクリップボードにコピーされました!
ClusterDeployment カスタムリソース定義は、クラスターのライフサイクルを制御する API です。これは、クラスターリソースを定義する spec.ClusterInstallRef 設定で AgentClusterInstall カスタムリソースを参照します。
以下の例に基づいて ClusterDeployment カスタムリソースを作成して適用します。
apiVersion: hive.openshift.io/v1
kind: ClusterDeployment
metadata:
name: single-node
namespace: demo-worker4
spec:
baseDomain: hive.example.com
clusterInstallRef:
group: extensions.hive.openshift.io
kind: AgentClusterInstall
name: test-agent-cluster-install
version: v1beta1
clusterName: test-cluster
controlPlaneConfig:
servingCertificates: {}
platform:
agentBareMetal:
agentSelector:
matchLabels:
location: internal
pullSecretRef:
name: <pull-secret>
- 1
AgentClusterInstallリソースの名前を使用します。- 2
- Add the pull secret to the namespace でダウンロードしたプルシークレットを使用します。
1.8.3.9.3.5. AgentClusterInstall カスタムリソースを作成します。 リンクのコピーリンクがクリップボードにコピーされました!
AgentClusterInstall カスタムリソースでは、クラスターの要件の多くを指定できます。たとえば、クラスターネットワーク設定、プラットフォーム、コントロールプレーンの数、およびワーカーノードを指定できます。
次の例のようなカスタムリソースを作成して追加します。<4.x.0> は、使用している OpenShift Container Platform のバージョンに置き換えます。
apiVersion: extensions.hive.openshift.io/v1beta1
kind: AgentClusterInstall
metadata:
name: test-agent-cluster-install
namespace: demo-worker4
spec:
platformType: BareMetal
clusterDeploymentRef:
name: single-node
imageSetRef:
name: openshift-v4.x.0
networking:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
machineNetwork:
- cidr: 192.168.111.0/24
serviceNetwork:
- 172.30.0.0/16
provisionRequirements:
controlPlaneAgents: 1
sshPublicKey: |
ssh-rsa <public-key-1>
ssh-rsa <public-key-2>
ssh-rsa <public-key-3>
- 1
- クラスターが作成される環境のプラットフォームタイプを指定します。可能な値は、
BareMetal、None、VSphere、Nutanix、またはExternalです。 - 2
ClusterDeploymentリソースに使用したものと同じ名前を使用します。- 3
- Generate a ClusterImageSet で生成した
ClusterImageSetを使用します。 - 4
- 使用できる値は
1および3です。OpenShift Container Platform バージョン 4.18 以降を使用しており、platformTypeフィールドがBareMetalまたはNoneに設定されており、CPU アーキテクチャーがx86_64である場合は、4と5も使用できます。コントロールプレーンノードはワークロードを管理し、クラスターの状態を維持し、安定性を確保します。3 つ以上のノードを使用すると、フォールトトレランスと可用性が向上し、障害時のダウンタイムが短縮されます。 - 5
- インストール後にホストにアクセスできるようにする 1 つまたは複数の SSH 公開鍵を指定できます。
platformType: を External に設定する場合は、external spec を追加する必要があります。以下の例を参照してください。
apiVersion: extensions.hive.openshift.io/v1beta1
kind: AgentClusterInstall
metadata:
name: test-agent-cluster-install
namespace: demo-worker4
spec:
platformType: External
external:
platformName: "myplatform"
cloudControllerManager: External
1.8.3.9.3.6. オプション: NMStateConfig カスタムリソースを作成する リンクのコピーリンクがクリップボードにコピーされました!
NMStateConfig カスタムリソースは、静的 IP アドレスなどのホストレベルのネットワーク設定がある場合にのみ必要です。NMStateConfig カスタムリソースを作成する場合は、InfraEnv カスタムリソースを作成する前にこの手順を完了する必要があります。InfraEnv カスタムリソースの spec.nmStateConfigLabelSelector の値は、NMStateConfig カスタムリソースを参照します。
次の例のような NMStateConfig カスタムリソースを作成して適用します。必要に応じて値を置き換えます。
apiVersion: agent-install.openshift.io/v1beta1
kind: NMStateConfig
metadata:
name: <mynmstateconfig>
namespace: <demo-worker4>
labels:
demo-nmstate-label: <value>
spec:
config:
interfaces:
- name: eth0
type: ethernet
state: up
mac-address: 02:00:00:80:12:14
ipv4:
enabled: true
address:
- ip: 192.168.111.30
prefix-length: 24
dhcp: false
- name: eth1
type: ethernet
state: up
mac-address: 02:00:00:80:12:15
ipv4:
enabled: true
address:
- ip: 192.168.140.30
prefix-length: 24
dhcp: false
dns-resolver:
config:
server:
- 192.168.126.1
routes:
config:
- destination: 0.0.0.0/0
next-hop-address: 192.168.111.1
next-hop-interface: eth1
table-id: 254
- destination: 0.0.0.0/0
next-hop-address: 192.168.140.1
next-hop-interface: eth1
table-id: 254
interfaces:
- name: "eth0"
macAddress: "02:00:00:80:12:14"
- name: "eth1"
macAddress: "02:00:00:80:12:15"
重要:
-
InfraEnvカスタムリソースのspec.nmStateConfigLabelSelector.matchLabelsフィールドに、demo-nmstate-labelのラベル名と値を含める必要があります。 - DHCP または静的ネットワークプロトコルを使用する場合は、MAC アドレスを追加する必要があります。
spec.config フィールドに追加できる NMState の追加の例は、OpenShift Container Platform Assisted Installer ドキュメントの 追加の NMState 設定例 を参照してください。
1.8.3.9.3.7. InfraEnv カスタムリソースを作成します。 リンクのコピーリンクがクリップボードにコピーされました!
InfraEnv カスタムリソースは、検出 ISO を作成する設定を提供します。このカスタムリソース内で、プロキシー設定、Ignition オーバーライドの値を特定し、NMState ラベルを指定します。このカスタムリソースの spec.nmStateConfigLabelSelector の値は、NMStateConfig カスタムリソースを参照します。
注: オプションの NMStateConfig カスタムリソースを含める場合は、InfraEnv カスタムリソースでそちらを参照する必要があります。NMStateConfig カスタムリソースを作成する前に InfraEnv カスタムリソースを作成した場合は、InfraEnv カスタムリソースを編集して NMStateConfig カスタムリソースを参照し、参照の追加後に ISO をダウンロードします。
以下のカスタムリソースを作成して適用します。
apiVersion: agent-install.openshift.io/v1beta1
kind: InfraEnv
metadata:
name: myinfraenv
namespace: demo-worker4
spec:
clusterRef:
name: single-node
namespace: demo-worker4
pullSecretRef:
name: pull-secret
sshAuthorizedKey: <your_public_key_here>
nmStateConfigLabelSelector:
matchLabels:
demo-nmstate-label: value
proxy:
httpProxy: http://USERNAME:PASSWORD@proxy.example.com:PORT
httpsProxy: https://USERNAME:PASSWORD@proxy.example.com:PORT
noProxy: .example.com,172.22.0.0/24,10.10.0.0/24
- 1
- Create the ClusterDeployment の
clusterDeploymentリソース名を置き換えます。 - 2
- ClusterDeployment の作成 の
clusterDeploymentリソース namespace を置き換えます。
| フィールド | 任意または必須 | 説明 |
|
| 任意 | SSH 公開鍵を指定できます。指定すると、検出 ISO イメージからホストを起動するときにホストにアクセスできるようになります。 |
|
| 任意 |
ホストの静的 IP、ブリッジ、ボンディングなどの高度なネットワーク設定を統合します。ホストネットワーク設定は、選択したラベルを持つ 1 つ以上の |
|
| 任意 | proxy セクションでは、検出中にホストに必要なプロキシー設定を指定できます。 |
注記: IPv6 を使用してプロビジョニングする場合、noProxy 設定で CIDR アドレスブロックを定義することはできません。各アドレスを個別に定義する必要があります。
1.8.3.9.3.8. 検出イメージからホストを起動します。 リンクのコピーリンクがクリップボードにコピーされました!
残りの手順では、前の手順で取得した検出 ISO イメージからホストを起動する方法を説明します。
次のコマンドを実行して、namespace から検出イメージをダウンロードします。
curl --insecure -o image.iso $(kubectl -n sample-namespace get infraenvs.agent-install.openshift.io myinfraenv -o=jsonpath="{.status.isoDownloadURL}")- 検出イメージを仮想メディア、USB ドライブ、または別の保管場所に移動し、ダウンロードしたディスカバリーイメージからホストを起動します。
Agentリソースは自動的に作成されます。これはクラスターに登録されており、検出イメージから起動したホストを表します。次のコマンドを実行して、Agentのカスタムリソースを承認し、インストールを開始します。oc -n sample-namespace patch agents.agent-install.openshift.io 07e80ea9-200c-4f82-aff4-4932acb773d4 -p '{"spec":{"approved":true}}' --type mergeエージェント名と UUID は、実際の値に置き換えます。
前のコマンドの出力に、
APPROVEDパラメーターの値がtrueであるターゲットクラスターのエントリーが含まれている場合、承認されたことを確認できます。