13.15. 在 GCP 中创建 bootstrap 机器
您必须在 Google Cloud Platform(GCP)中创建 bootstrap 机器,以便在 OpenShift Container Platform 集群初始化过程中使用。创建此机器的一种方法是修改提供的 Deployment Manager 模板。
如果不使用提供的 Deployment Manager 模板来创建 bootstrap 机器,您必须检查提供的信息并手动创建基础架构。如果您的集群没有正确初始化,您可能需要联系红帽支持并提供您的安装日志。
先决条件
- 配置 GCP 帐户。
- 为集群生成 Ignition 配置文件。
- 在 GCP 中创建和配置 VPC 及相关子网。
- 在 GCP 中创建和配置联网与负载均衡器。
- 创建 control plane 和计算角色。
- 确保已安装 pyOpenSSL。
流程
-
复制 bootstrap 机器的 Deployment Manager 模板一节中的模板,并将它以
04_bootstrap.py形式保存到计算机上。此模板描述了集群所需的 bootstrap 机器。 导出安装程序所需的 Red Hat Enterprise Linux CoreOS(RHCOS)镜像的位置:
export CLUSTER_IMAGE=(`gcloud compute images describe ${INFRA_ID}-rhcos-image --format json | jq -r .selfLink`)$ export CLUSTER_IMAGE=(`gcloud compute images describe ${INFRA_ID}-rhcos-image --format json | jq -r .selfLink`)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建存储桶并上传
bootstrap.ign文件:gsutil mb gs://${INFRA_ID}-bootstrap-ignition$ gsutil mb gs://${INFRA_ID}-bootstrap-ignitionCopy to Clipboard Copied! Toggle word wrap Toggle overflow gsutil cp <installation_directory>/bootstrap.ign gs://${INFRA_ID}-bootstrap-ignition/$ gsutil cp <installation_directory>/bootstrap.ign gs://${INFRA_ID}-bootstrap-ignition/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 bootstrap 实例创建一个签名的 URL,用于访问 Ignition 配置。将输出中的 URL 导出为变量:
export BOOTSTRAP_IGN=`gsutil signurl -d 1h service-account-key.json gs://${INFRA_ID}-bootstrap-ignition/bootstrap.ign | grep "^gs:" | awk '{print $5}'`$ export BOOTSTRAP_IGN=`gsutil signurl -d 1h service-account-key.json gs://${INFRA_ID}-bootstrap-ignition/bootstrap.ign | grep "^gs:" | awk '{print $5}'`Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
04_bootstrap.yaml资源定义文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- INFRA
_ID 是提取步骤中的 INFRA_ID基础架构名称。 - 2
region是集群要部署到的区域,如us-central1。- 3
zone是 bootstrap 实例要部署到的区域,如us-central1-b。- 4
cluster_network是集群网络的selfLinkURL。- 5
control_subnet是控制子网的selfLinkURL。- 6
image是 RHCOS 镜像的selfLinkURL。- 7
machine_type是实例的机器类型,如n1-standard-4。- 8
root_volume_size是 bootstrap 计算机的引导磁盘大小。- 9
bootstrap_ign是创建签名 URL 时的 URL 输出。
使用
gcloudCLI 创建部署:gcloud deployment-manager deployments create ${INFRA_ID}-bootstrap --config 04_bootstrap.yaml$ gcloud deployment-manager deployments create ${INFRA_ID}-bootstrap --config 04_bootstrap.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 由于 Deployment Manager 的限制,模板无法管理负载均衡器成员资格,因此您必须手动添加 bootstrap 机器。
将 bootstrap 实例添加到内部负载均衡器实例组中:
gcloud compute instance-groups unmanaged add-instances \ ${INFRA_ID}-bootstrap-ig --zone=${ZONE_0} --instances=${INFRA_ID}-bootstrap$ gcloud compute instance-groups unmanaged add-instances \ ${INFRA_ID}-bootstrap-ig --zone=${ZONE_0} --instances=${INFRA_ID}-bootstrapCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 bootstrap 实例组添加到内部负载均衡器后端服务中:
gcloud compute backend-services add-backend \ ${INFRA_ID}-api-internal-backend-service --region=${REGION} --instance-group=${INFRA_ID}-bootstrap-ig --instance-group-zone=${ZONE_0}$ gcloud compute backend-services add-backend \ ${INFRA_ID}-api-internal-backend-service --region=${REGION} --instance-group=${INFRA_ID}-bootstrap-ig --instance-group-zone=${ZONE_0}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
13.15.1. bootstrap 机器的 Deployment Manager 模板 复制链接链接已复制到粘贴板!
您可以使用以下 Deployment Manager 模板来部署 OpenShift Container Platform 集群所需的 bootstrap 机器:
例 13.30. 04_bootstrap.py Deployment Manager 模板