5.14. 在 Azure Stack Hub 中创建 bootstrap 机器
您必须在 Microsoft Azure Stack Hub 中创建 bootstrap 机器,以便在 OpenShift Container Platform 集群初始化过程中使用。创建此机器的一种方法是修改提供的 Azure Resource Manager(ARM)模板。
如果不使用提供的 ARM 模板来创建 bootstrap 机器,您必须检查提供的信息并手动创建基础架构。如果集群没有正确初始化,您可能需要联系红帽支持并提供您的安装日志。
先决条件
- 配置 Azure 帐户。
- 为集群生成 Ignition 配置文件。
- 在 Azure Stack Hub 中创建和配置 VNet 及相关子网。
- 在 Azure Stack Hub 中创建和配置联网与负载均衡器。
- 创建 control plane 和计算角色。
流程
-
复制 bootstrap 机器的 ARM 模板一节中的模板,并将它以
04_bootstrap.json
保存到集群的安装目录中。此模板描述了集群所需的 bootstrap 机器。 导出 bootstrap URL 变量:
bootstrap_url_expiry=`date -u -d "10 hours" '+%Y-%m-%dT%H:%MZ'`
$ bootstrap_url_expiry=`date -u -d "10 hours" '+%Y-%m-%dT%H:%MZ'`
Copy to Clipboard Copied! Toggle word wrap Toggle overflow export BOOTSTRAP_URL=`az storage blob generate-sas -c 'files' -n 'bootstrap.ign' --https-only --full-uri --permissions r --expiry $bootstrap_url_expiry --account-name ${CLUSTER_NAME}sa --account-key ${ACCOUNT_KEY} -o tsv`
$ export BOOTSTRAP_URL=`az storage blob generate-sas -c 'files' -n 'bootstrap.ign' --https-only --full-uri --permissions r --expiry $bootstrap_url_expiry --account-name ${CLUSTER_NAME}sa --account-key ${ACCOUNT_KEY} -o tsv`
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 导出 bootstrap ignition 变量:
如果您的环境使用公共证书颁发机构(CA),请运行以下命令:
export BOOTSTRAP_IGNITION=`jq -rcnM --arg v "3.2.0" --arg url ${BOOTSTRAP_URL} '{ignition:{version:$v,config:{replace:{source:$url}}}}' | base64 | tr -d '\n'`
$ export BOOTSTRAP_IGNITION=`jq -rcnM --arg v "3.2.0" --arg url ${BOOTSTRAP_URL} '{ignition:{version:$v,config:{replace:{source:$url}}}}' | base64 | tr -d '\n'`
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您的环境使用内部 CA,您必须将 PEM 编码捆绑包添加到 bootstrap ignition stub 中,以便 bootstrap 虚拟机可以从存储帐户中提取 bootstrap ignition。运行以下命令,这假设您的 CA 位于名为
CA.pem
的文件中:export CA="data:text/plain;charset=utf-8;base64,$(cat CA.pem |base64 |tr -d '\n')"
$ export CA="data:text/plain;charset=utf-8;base64,$(cat CA.pem |base64 |tr -d '\n')"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow export BOOTSTRAP_IGNITION=`jq -rcnM --arg v "3.2.0" --arg url "$BOOTSTRAP_URL" --arg cert "$CA" '{ignition:{version:$v,security:{tls:{certificateAuthorities:[{source:$cert}]}},config:{replace:{source:$url}}}}' | base64 | tr -d '\n'`
$ export BOOTSTRAP_IGNITION=`jq -rcnM --arg v "3.2.0" --arg url "$BOOTSTRAP_URL" --arg cert "$CA" '{ignition:{version:$v,security:{tls:{certificateAuthorities:[{source:$cert}]}},config:{replace:{source:$url}}}}' | base64 | tr -d '\n'`
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用
az
CLI 创建部署:az deployment group create --verbose -g ${RESOURCE_GROUP} \ --template-file "<installation_directory>/04_bootstrap.json" \ --parameters bootstrapIgnition="${BOOTSTRAP_IGNITION}" \ --parameters baseName="${INFRA_ID}" \ --parameters diagnosticsStorageAccountName="${CLUSTER_NAME}sa"
$ az deployment group create --verbose -g ${RESOURCE_GROUP} \ --template-file "<installation_directory>/04_bootstrap.json" \ --parameters bootstrapIgnition="${BOOTSTRAP_IGNITION}" \
1 --parameters baseName="${INFRA_ID}" \
2 --parameters diagnosticsStorageAccountName="${CLUSTER_NAME}sa"
3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.14.1. bootstrap 机器的 ARM 模板 复制链接链接已复制到粘贴板!
您可以使用以下 Azure Resource Manager(ARM)模板来部署 OpenShift Container Platform 集群所需的 bootstrap 机器:
例 5.4. 04_bootstrap.json
ARM template
link:https://raw.githubusercontent.com/openshift/installer/release-4.16/upi/azurestack/04_bootstrap.json[]
link:https://raw.githubusercontent.com/openshift/installer/release-4.16/upi/azurestack/04_bootstrap.json[]