12.3.14. 创建 Kubernetes 清单和 Ignition 配置文件
由于您必须修改一些集群定义文件并要手动启动集群机器,因此您必须生成 Kubernetes 清单和 Ignition 配置文件,集群需要这两项来创建其机器。
安装配置文件转换为 Kubernetes 清单。清单嵌套到 Ignition 配置文件中,稍后用于创建集群。
安装程序生成的 Ignition 配置文件包含在 24 小时后过期的证书,然后在过期时进行续订。如果在更新证书前关闭集群,且集群在 24 小时后重启,集群会自动恢复过期的证书。一个例外情况是,您需要手动批准待处理的 node-bootstrapper
证书签名请求(CSR)来恢复 kubelet 证书。如需更多信息,请参阅从过期的 control plane 证书中恢复的文档。
生成清单和 Ignition 文件的安装程序是特定于架构的,可以从 客户端镜像镜像获取。安装程序的 Linux 版本仅在 s390x 上运行。此安装程序也可用作 Mac OS 版本。
先决条件
- 已获得 OpenShift Container Platform 安装程序。
-
已创建
install-config.yaml
安装配置文件。
流程
切换到包含安装程序的目录,并为集群生成 Kubernetes 清单:
$ ./openshift-install create manifests --dir <installation_directory> 1
- 1
- 对于
<installation_directory>
,请指定含有您创建的install-config.yaml
文件的安装目录。
删除定义 control plane 机器的 Kubernetes 清单文件以及计算机器集:
$ rm -f openshift/99_openshift-cluster-api_master-machines-*.yaml openshift/99_openshift-cluster-api_worker-machineset-*.yaml
由于您要自行创建和管理这些资源,因此不必初始化这些资源。
- 您可以使用机器 API 来保留机器集文件来创建计算机器,但您必须更新对其的引用,以匹配您的环境。
警告如果要安装一个三节点集群,请跳过以下步骤,以便 control plane 节点可以调度。
+
重要当您将 control plane 节点从默认的不可调度配置为可以调度时,需要额外的订阅。这是因为 control plane 节点随后变为 worker 节点。
检查
<installation_directory>/manifests/cluster-scheduler-02-config.yml
Kubernetes 清单文件中的mastersSchedulable
参数是否已设置为false
。此设置可防止在 control plane 机器上调度 pod:-
打开
<installation_directory>/manifests/cluster-scheduler-02-config.yml
文件。 -
找到
mastersSchedulable
参数并确保它被设置为false
。 - 保存并退出文件。
-
打开
要创建 Ignition 配置文件,从包含安装程序的目录运行以下命令:
$ ./openshift-install create ignition-configs --dir <installation_directory> 1
- 1
- 对于
<installation_directory>
,请指定相同的安装目录。
该目录中将生成以下文件:
. ├── auth │ ├── kubeadmin-password │ └── kubeconfig ├── bootstrap.ign ├── master.ign ├── metadata.json └── worker.ign
将元数据文件的
infraID
键导出为环境变量:$ export INFRA_ID=$(jq -r .infraID metadata.json)
从 metadata.json
中提取 infraID
键,并将其用作您创建的所有 RHOSP 资源的前缀。通过这样做,您可以避免在同一项目中进行多个部署时的名称冲突。