This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.12.4. 使用 API 添加主机
您可以使用 Assisted Installer REST API 将主机添加到集群。
先决条件
- 
						安装 OpenShift Cluster Manager CLI (ocm)。
- 以具有集群创建权限的用户身份登录 OpenShift Cluster Manager。
- 
						安装 jq。
- 确保您要扩展的集群存在所有必需的 DNS 记录。
流程
- 针对 Assisted Installer REST API 进行身份验证,并为会话生成 API 令牌。生成的令牌有效期仅为 15 分钟。
- 运行以下命令设置 - $API_URL变量:- export API_URL=<api_url> - $ export API_URL=<api_url>- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 将<api_url>替换为 Assisted Installer API URL,例如https://api.openshift.com
 
- 运行以下命令导入集群: - 设置 - $CLUSTER_ID变量。登录到集群并运行以下命令:- export CLUSTER_ID=$(oc get clusterversion -o jsonpath='{.items[].spec.clusterID}')- $ export CLUSTER_ID=$(oc get clusterversion -o jsonpath='{.items[].spec.clusterID}')- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 设置用于导入集群的 - $CLUSTER_REQUEST变量:- export CLUSTER_REQUEST=$(jq --null-input --arg openshift_cluster_id "$CLUSTER_ID" '{- $ export CLUSTER_REQUEST=$(jq --null-input --arg openshift_cluster_id "$CLUSTER_ID" '{ "api_vip_dnsname": "<api_vip>",- 1 - "openshift_cluster_id": $CLUSTER_ID, "name": "<openshift_cluster_name>"- 2 - }')- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 导入集群并设置 - $CLUSTER_ID变量。运行以下命令:- CLUSTER_ID=$(curl "$API_URL/api/assisted-install/v2/clusters/import" -H "Authorization: Bearer ${API_TOKEN}" -H 'accept: application/json' -H 'Content-Type: application/json' \ -d "$CLUSTER_REQUEST" | tee /dev/stderr | jq -r '.id')- $ CLUSTER_ID=$(curl "$API_URL/api/assisted-install/v2/clusters/import" -H "Authorization: Bearer ${API_TOKEN}" -H 'accept: application/json' -H 'Content-Type: application/json' \ -d "$CLUSTER_REQUEST" | tee /dev/stderr | jq -r '.id')- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 运行以下命令,为集群生成 - InfraEnv资源并设置- $INFRA_ENV_ID变量:- 从位于 console.redhat.com 的 Red Hat OpenShift Cluster Manager 下载 pull secret 文件。
- 设置 - $INFRA_ENV_REQUEST变量:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 将<path_to_pull_secret_file>替换为在 console.redhat.com 上从 Red Hat OpenShift Cluster Manager 下载的 pull secret 的本地文件的路径。
- 2
- 将<path_to_ssh_pub_key>替换为访问主机所需的公共 SSH 密钥路径。如果没有设置这个值,则无法在发现模式下访问主机。
- 3
- 将<infraenv_name>替换为InfraEnv资源的纯文本名称。
- 4
- 将<iso_image_type>替换为 ISO 镜像类型,可以是full-iso或minimal-iso。
 
- 将 - $INFRA_ENV_REQUEST发布到 /v2/infra-envs API,并设置- $INFRA_ENV_ID变量:- INFRA_ENV_ID=$(curl "$API_URL/api/assisted-install/v2/infra-envs" -H "Authorization: Bearer ${API_TOKEN}" -H 'accept: application/json' -H 'Content-Type: application/json' -d "$INFRA_ENV_REQUEST" | tee /dev/stderr | jq -r '.id')- $ INFRA_ENV_ID=$(curl "$API_URL/api/assisted-install/v2/infra-envs" -H "Authorization: Bearer ${API_TOKEN}" -H 'accept: application/json' -H 'Content-Type: application/json' -d "$INFRA_ENV_REQUEST" | tee /dev/stderr | jq -r '.id')- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 运行以下命令,获取集群主机的发现 ISO 的 URL: - curl -s "$API_URL/api/assisted-install/v2/infra-envs/$INFRA_ENV_ID" -H "Authorization: Bearer ${API_TOKEN}" | jq -r '.download_url'- $ curl -s "$API_URL/api/assisted-install/v2/infra-envs/$INFRA_ENV_ID" -H "Authorization: Bearer ${API_TOKEN}" | jq -r '.download_url'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - https://api.openshift.com/api/assisted-images/images/41b91e72-c33e-42ee-b80f-b5c5bbf6431a?arch=x86_64&image_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NTYwMjYzNzEsInN1YiI6IjQxYjkxZTcyLWMzM2UtNDJlZS1iODBmLWI1YzViYmY2NDMxYSJ9.1EX_VGaMNejMhrAvVRBS7PDPIQtbOOc8LtG8OukE1a4&type=minimal-iso&version=4.12 - https://api.openshift.com/api/assisted-images/images/41b91e72-c33e-42ee-b80f-b5c5bbf6431a?arch=x86_64&image_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NTYwMjYzNzEsInN1YiI6IjQxYjkxZTcyLWMzM2UtNDJlZS1iODBmLWI1YzViYmY2NDMxYSJ9.1EX_VGaMNejMhrAvVRBS7PDPIQtbOOc8LtG8OukE1a4&type=minimal-iso&version=4.12- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 下载 ISO: - curl -L -s '<iso_url>' --output rhcos-live-minimal.iso - $ curl -L -s '<iso_url>' --output rhcos-live-minimal.iso- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 将<iso_url>替换为上一步中的 ISO URL。
 
- 
						从下载的 rhcos-live-minimal.iso中引导新的 worker 主机。
- 获取没有安装的集群中的主机列表。继续运行以下命令,直到新主机显示: - curl -s "$API_URL/api/assisted-install/v2/clusters/$CLUSTER_ID" -H "Authorization: Bearer ${API_TOKEN}" | jq -r '.hosts[] | select(.status != "installed").id'- $ curl -s "$API_URL/api/assisted-install/v2/clusters/$CLUSTER_ID" -H "Authorization: Bearer ${API_TOKEN}" | jq -r '.hosts[] | select(.status != "installed").id'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - 2294ba03-c264-4f11-ac08-2f1bb2f8c296 - 2294ba03-c264-4f11-ac08-2f1bb2f8c296- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 为新主机设置 - $HOST_ID变量,例如:- HOST_ID=<host_id> - $ HOST_ID=<host_id>- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 将<host_id>替换为上一步中的主机 ID。
 
- 运行以下命令检查主机是否已就绪: 注意- 确保复制整个命令,包括完整的 - jq表达式。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 当上一个命令显示主机就绪时,通过运行以下命令来使用 /v2/infra-envs/{infra_env_id}/hosts/{host_id}/actions/install API 开始安装: - curl -X POST -s "$API_URL/api/assisted-install/v2/infra-envs/$INFRA_ENV_ID/hosts/$HOST_ID/actions/install" -H "Authorization: Bearer ${API_TOKEN}"- $ curl -X POST -s "$API_URL/api/assisted-install/v2/infra-envs/$INFRA_ENV_ID/hosts/$HOST_ID/actions/install" -H "Authorization: Bearer ${API_TOKEN}"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 当安装继续进行时,安装会为主机生成待处理的证书签名请求 (CSR)。 重要- 您必须批准 CSR 才能完成安装。 - 运行以下 API 调用以监控集群安装: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 可选: 运行以下命令以查看集群的所有事件: - curl -s "$API_URL/api/assisted-install/v2/events?cluster_id=$CLUSTER_ID" -H "Authorization: Bearer ${API_TOKEN}" | jq -c '.[] | {severity, message, event_time, host_id}'- $ curl -s "$API_URL/api/assisted-install/v2/events?cluster_id=$CLUSTER_ID" -H "Authorization: Bearer ${API_TOKEN}" | jq -c '.[] | {severity, message, event_time, host_id}'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 登录到集群并批准待处理的 CSR 以完成安装。
验证
- 检查新主机是否已成功添加到集群中,状态为 - Ready:- oc get nodes - $ oc get nodes- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - NAME STATUS ROLES AGE VERSION control-plane-1.example.com Ready master,worker 56m v1.25.0 compute-1.example.com Ready worker 11m v1.25.0 - NAME STATUS ROLES AGE VERSION control-plane-1.example.com Ready master,worker 56m v1.25.0 compute-1.example.com Ready worker 11m v1.25.0- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow