6.5. 获取安装程序
在安装 OpenShift Container Platform 前,将安装文件下载到您用于安装的主机上。
先决条件
- 您有一台运行 Linux 或 macOS 的计算机,本地磁盘空间为 500 MB。
流程
- 访问 OpenShift Cluster Manager 站点的 Infrastructure Provider 页面。如果您有红帽帐户,请使用您的凭证登录。如果没有,请创建一个帐户。
- 选择您的基础架构供应商。
进入到安装类型的页面,下载与您的主机操作系统和架构对应的安装程序,并将该文件放在您要存储安装配置文件的目录中。
重要安装程序会在用来安装集群的计算机上创建几个文件。在完成集群安装后,您必须保留安装程序和安装程序所创建的文件。这两个文件都需要删除集群。
重要删除安装程序创建的文件不会删除您的集群,即使集群在安装过程中失败也是如此。要删除集群,请为特定云供应商完成 OpenShift Container Platform 卸载流程。
提取安装程序。例如,在使用 Linux 操作系统的计算机上运行以下命令:
tar -xvf openshift-install-linux.tar.gz
$ tar -xvf openshift-install-linux.tar.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 从 Red Hat OpenShift Cluster Manager 下载安装 pull secret。此 pull secret 允许您与所含授权机构提供的服务进行身份验证,这些服务包括为 OpenShift Container Platform 组件提供容器镜像的 Quay.io。
6.5.1. 创建安装配置文件 复制链接链接已复制到粘贴板!
您可以自定义在 Alibaba Cloud 上安装的 OpenShift Container Platform 集群。
先决条件
- 获取 OpenShift Container Platform 安装程序和集群的 pull secret。
- 在订阅级别获取服务主体权限。
流程
创建
install-config.yaml文件。进入包含安装程序的目录并运行以下命令:
./openshift-install create install-config --dir <installation_directory>
$ ./openshift-install create install-config --dir <installation_directory>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 对于
<installation_directory>,请指定要存储安装程序创建的文件的目录名称。
在指定目录时:
-
验证该目录是否具有
执行权限。在安装目录中运行 Terraform 二进制文件需要这个权限。 使用空目录。有些安装资产,如 bootstrap X.509 证书的过期间隔较短,因此不得重复使用安装目录。如果要重复使用另一个集群安装中的单个文件,您可以将它们复制到您的目录中。但是,安装资产的文件名可能会在发行版本间有所变化。从以前的 OpenShift Container Platform 版本中复制安装文件时请小心。
注意始终删除
~/.powervs目录,以避免重复使用过时的配置。运行以下命令:rm -rf ~/.powervs
$ rm -rf ~/.powervsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
在提示符处,提供云的配置详情:
可选: 选择用于访问集群机器的 SSH 密钥。
注意对于您要在其上执行安装调试或灾难恢复的生产环境 OpenShift Container Platform 集群,请指定
ssh-agent进程使用的 SSH 密钥。- 选择 alibabacloud 作为目标平台。
- 选择要将集群部署到的区域。
- 选择集群要部署到的基域。基域与您为集群创建的公共 DNS 区对应。
- 为集群提供一个描述性名称。
- 粘贴 Red Hat OpenShift Cluster Manager 中的 pull secret。
将集群安装到 Alibaba Cloud 中需要 Cloud Credential Operator(CCO)以手动模式运行。修改
install-config.yaml文件,将credentialsMode参数设置为Manual:带有
credentialsMode被设置为Manual的 install-config.yaml 配置文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 添加此行,将
credentialsMode设置为Manual。
-
修改
install-config.yaml文件。您可以在"安装配置参数"部分找到有关可用参数的更多信息。 备份
install-config.yaml文件,以便您可以使用它安装多个集群。重要install-config.yaml文件会在安装过程中消耗掉。如果要重复使用该文件,您必须立即备份该文件。
6.5.2. 安装配置参数 复制链接链接已复制到粘贴板!
在部署 OpenShift Container Platform 集群前,您可以提供参数值来描述托管集群的云平台中的帐户,并选择性地自定义集群平台。在创建 install-config.yaml 安装配置文件时,您可以通过命令行为所需参数提供值。如果自定义集群,您可以修改 install-config.yaml 文件以提供有关平台的更多详情。
安装后,您无法更改 install-config.yaml 文件中的这些参数。
6.5.2.1. 所需的配置参数 复制链接链接已复制到粘贴板!
下表描述了所需的安装配置参数:
| 参数 | 描述 | 值 |
|---|---|---|
|
|
| 字符串 |
|
|
云供应商的基域。基域用于创建到 OpenShift Container Platform 集群组件的路由。集群的完整 DNS 名称是 |
完全限定域名或子域名,如 |
|
|
Kubernetes 资源 | 对象 |
|
|
集群的名称。集群的 DNS 记录是 |
小写字母、连字符( |
|
|
要执行安装的具体平台配置: | 对象 |
|
| 从 Red Hat OpenShift Cluster Manager 获取 pull secret,验证从 Quay.io 等服务中下载 OpenShift Container Platform 组件的容器镜像。 |
|
6.5.2.2. 网络配置参数 复制链接链接已复制到粘贴板!
您可以根据现有网络基础架构的要求自定义安装配置。例如,您可以扩展集群网络的 IP 地址块,或者提供不同于默认值的不同 IP 地址块。
仅支持 IPv4 地址。
Red Hat OpenShift Data Foundation 灾难恢复解决方案不支持 Globalnet。对于区域灾难恢复场景,请确保为每个集群中的集群和服务网络使用非重叠的专用 IP 地址。
| 参数 | 描述 | 值 |
|---|---|---|
|
| 集群网络的配置。 | 对象 注意
您不能在安装后更改 |
|
| 要安装的 Red Hat OpenShift Networking 网络插件。 |
|
|
| pod 的 IP 地址块。
默认值为 如果您指定了多个 IP 地址块,块不得重叠。 | 对象数组。例如: networking:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
|
|
|
使用 IPv4 网络。 |
无类别域间路由(CIDR)表示法中的 IP 地址块。IPv4 块的前缀长度介于 |
|
|
分配给每个节点的子网前缀长度。例如,如果 | 子网前缀。
默认值为 |
|
|
服务的 IP 地址块。默认值为 OpenShift SDN 和 OVN-Kubernetes 网络插件只支持服务网络的一个 IP 地址块。 | CIDR 格式具有 IP 地址块的数组。例如: networking: serviceNetwork: - 172.30.0.0/16
|
|
| 机器的 IP 地址块。 如果您指定了多个 IP 地址块,块不得重叠。 | 对象数组。例如: networking: machineNetwork: - cidr: 10.0.0.0/16
|
|
|
使用 | CIDR 表示法中的 IP 网络块。
例如: 注意
将 |
6.5.2.3. 可选的配置参数 复制链接链接已复制到粘贴板!
下表描述了可选的安装配置参数:
| 参数 | 描述 | 值 |
|---|---|---|
|
| 添加到节点可信证书存储中的 PEM 编码 X.509 证书捆绑包。配置代理时,也可以使用此信任捆绑包。 | 字符串 |
|
| 控制可选核心组件的安装。您可以通过禁用可选组件来减少 OpenShift Container Platform 集群的空间。如需更多信息,请参阅安装中的"集群功能"页面。 | 字符串数组 |
|
|
选择要启用的一组初始可选功能。有效值为 | 字符串 |
|
|
将可选功能集合扩展到您在 | 字符串数组 |
|
| 启用工作负载分区,它会隔离 OpenShift Container Platform 服务、集群管理工作负载和基础架构 pod,以便在保留的一组 CPU 上运行。您只能在安装过程中启用工作负载分区。您不能在安装后禁用它。虽然此字段启用工作负载分区,但它不会将工作负载配置为使用特定的 CPU。如需更多信息,请参阅 Scalability and Performance 部分中的 Workload partitioning 页面。 |
|
|
| 组成计算节点的机器的配置。 |
|
|
|
决定池中机器的指令集合架构。目前,不支持具有不同架构的集群。所有池都必须指定相同的架构。有效值为默认值: | 字符串 |
| compute: 超线程: |
是否在计算机器上启用或禁用并发多 重要 如果您禁用并发多线程,请确保您的容量规划考虑机器性能显著降低的情况。 |
|
|
|
使用 |
|
|
|
使用 |
|
|
| 要置备的计算机器数量,也称为 worker 机器。 |
大于或等于 |
|
| 为功能集启用集群。功能集是 OpenShift Container Platform 功能的集合,默认情况下不启用。有关在安装过程中启用功能集的更多信息,请参阅"使用功能门启用功能"。 |
字符串.要启用的功能集的名称,如 |
|
| 组成 control plane 的机器的配置。 |
|
|
|
决定池中机器的指令集合架构。目前,不支持具有不同架构的集群。所有池都必须指定相同的架构。有效值为默认值: | 字符串 |
| controlPlane: 超线程: |
是否在 control plane 机器上启用或禁用并发多 重要 如果您禁用并发多线程,请确保您的容量规划考虑机器性能显著降低的情况。 |
|
|
|
使用 |
|
|
|
使用 |
|
|
| 要置备的 control plane 机器数量。 |
唯一支持的值是 |
|
| Cloud Credential Operator(CCO)模式。在没有指定模式时,CCO 会动态尝试决定提供的凭证的功能,在支持多个模式的平台上首选 mint 模式。 注意 不是所有 CCO 模式都支持所有云供应商。如需有关 CCO 模式的更多信息,请参阅集群 Operator 参考内容中的 Cloud Credential Operator 条目。 注意
如果您的 AWS 帐户启用了服务控制策略 (SCP),您必须将 |
|
|
| release-image 内容的源和存储库。 |
对象数组。包括一个 |
|
|
使用 | 字符串 |
|
| 指定可能还包含同一镜像的一个或多个存储库。 | 字符串数组 |
|
| 如何发布或公开集群的面向用户的端点,如 Kubernetes API、OpenShift 路由。 |
在非云平台上不支持将此字段设置为 重要
如果字段的值设为 |
|
| 用于验证对集群机器的访问的 SSH 密钥。 注意
对于您要在其上执行安装调试或灾难恢复的生产环境 OpenShift Container Platform 集群,请指定 |
例如, |
- 不是所有 CCO 模式都支持所有云供应商。有关 CCO 模式的更多信息,请参阅身份验证和授权内容中的"管理云供应商凭证"条目。
6.5.2.4. 其他 Alibaba Cloud 配置参数 复制链接链接已复制到粘贴板!
下表描述了其他 Alibaba Cloud 配置参数。alibabacloud 参数是在 Alibaba Cloud 上安装时使用的配置。defaultMachinePlatform 参数是在 Alibaba Cloud 上安装用于不定义自身平台配置的机器池时使用的默认配置。
这些参数适用于指定的机器和控制平面机器。
如果定义,则参数 compute.platform.alibabacloud 和 controlPlane.platform.alibabacloud 会分别覆盖计算机器和 control plane 机器的 platform.alibabacloud.defaultMachinePlatform 设置。
| 参数 | 描述 | 值 |
|---|---|---|
|
| 用于创建 ECS 实例的 imageID。imageID 必须与集群属于同一区域。 | 字符串. |
|
|
InstanceType 定义 ECS 实例类型。示例: | 字符串. |
|
|
定义系统磁盘的类别。示例: | 字符串. |
|
| 以 KB (GiB) 为单位定义系统磁盘大小。 | 整数. |
|
|
可以使用的可用区列表。示例: | 字符串列表。 |
|
| 用于创建 ECS 实例的 imageID。imageID 必须与集群属于同一区域。 | 字符串. |
|
|
InstanceType 定义 ECS 实例类型。示例: | 字符串. |
|
|
定义系统磁盘的类别。示例: | 字符串. |
|
| 以 KB (GiB) 为单位定义系统磁盘大小。 | 整数. |
|
|
可以使用的可用区列表。示例: | 字符串列表。 |
|
| 必需。创建集群的 Alibaba Cloud 区域。 | 字符串. |
|
| 安装集群的现有资源组的 ID。如果为空,安装程序会为集群创建新资源组。 | 字符串. |
|
| 应用到为集群创建的所有 Alibaba Cloud 资源的额外键和值。 | 对象。 |
|
| 应该安装集群的现有 VPC 的 ID。如果为空,安装程序会为集群创建新 VPC。 | 字符串. |
|
| 创建集群资源的现有 VSwitches 的 ID 列表。现有的 VSwitches 只能在使用现有的 VPC 时使用。如果为空,安装程序会为集群创建新的 VSwitches。 | 字符串列表。 |
|
| 对于计算机器和控制平面机器,应用于创建 ECS 实例的镜像 ID。如果设置,镜像 ID 应该属于与集群相同的区域。 | 字符串. |
|
|
对于计算机器和控制平面机器,用于创建 ECS 实例的 ECS 实例类型。示例: | 字符串. |
|
|
对于计算机器和控制平面机器,系统磁盘的类别。示例: |
字符串,如 "", |
|
|
对于计算机器和控制平面机器,以 KB (GiB) 为单位的系统磁盘大小。最小值为 | 整数. |
|
|
对于计算机器和控制平面机器,可以使用的可用区列表。示例: | 字符串列表。 |
|
| 现有私有区的 ID,在其中为集群的内部 API 添加 DNS 记录。只有同时使用现有的 VPC 时,才可以使用现有私有区。私有区必须与包含子网的 VPC 关联。将私有区保留为不设置,让安装程序代表您创建私有区。 | 字符串. |
6.5.3. Alibaba Cloud 的自定义 install-config.yaml 文件示例 复制链接链接已复制到粘贴板!
您可以自定义安装配置文件(install-config.yaml),以指定集群平台的更多详情,或修改所需参数的值。
6.5.4. 生成所需的安装清单 复制链接链接已复制到粘贴板!
您必须生成 Kubernetes 清单和 Ignition 配置文件,集群需要配置机器。
流程
从包含安装程序的目录中运行以下命令来生成清单:
openshift-install create manifests --dir <installation_directory>
$ openshift-install create manifests --dir <installation_directory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
<installation_directory>- 指定安装程序在其中创建文件的目录。
6.5.5. 配置 Cloud Credential Operator 工具 复制链接链接已复制到粘贴板!
当 Cloud Credential Operator(CCO)以手动模式运行时,要从集群外部创建和管理云凭证,提取并准备 CCO 实用程序(ccoctl)二进制文件。
ccoctl 工具是在 Linux 环境中运行的 Linux 二进制文件。
先决条件
- 您可以访问具有集群管理员权限的 OpenShift Container Platform 帐户。
-
已安装 OpenShift CLI(
oc)。
流程
运行以下命令来获取 OpenShift Container Platform 发行镜像:
RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')$ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,从 OpenShift Container Platform 发行镜像获取 CCO 容器镜像:
CCO_IMAGE=$(oc adm release info --image-for='cloud-credential-operator' $RELEASE_IMAGE -a ~/.pull-secret)
$ CCO_IMAGE=$(oc adm release info --image-for='cloud-credential-operator' $RELEASE_IMAGE -a ~/.pull-secret)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意确保
$RELEASE_IMAGE的架构与将使用ccoctl工具的环境架构相匹配。运行以下命令,将 CCO 容器镜像中的
ccoctl二进制文件提取到 OpenShift Container Platform 发行镜像中:oc image extract $CCO_IMAGE --file="/usr/bin/ccoctl" -a ~/.pull-secret
$ oc image extract $CCO_IMAGE --file="/usr/bin/ccoctl" -a ~/.pull-secretCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令更改权限以使
ccoctl可执行:chmod 775 ccoctl
$ chmod 775 ccoctlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要验证
ccoctl是否准备就绪,可以尝试显示帮助文件。运行命令时使用相对文件名,例如:./ccoctl.rhel9
$ ./ccoctl.rhel9Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5.6. 使用 ccoctl 工具为 OpenShift Container Platform 组件创建凭证 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform Cloud Credential Operator(CCO)实用程序自动为每个集群组件创建 Alibaba Cloud RAM 用户和策略。
默认情况下,ccoctl 在运行命令的目录中创建对象。要在其他目录中创建对象,请使用 --output-dir 标志。此流程使用 <path_to_ccoctl_output_dir> 来引用这个目录。
先决条件
您必须:
-
提取并准备好
ccoctl二进制文件。 - 创建具有足够权限来创建 OpenShift Container Platform 集群的 RAM 用户。
-
将 RAM 用户的 AccessKeyID(
access_key_id)和 AccessKeySecret(access_key_secret)添加到本地计算机上的~/.alibabacloud/credentials文件中。
流程
运行以下命令设置
$RELEASE_IMAGE变量:RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')$ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,从 OpenShift Container Platform 发行镜像中提取
CredentialsRequest对象列表:oc adm release extract \ --from=$RELEASE_IMAGE \ --credentials-requests \ --cloud=alibabacloud \ --to=<path_to_directory_with_list_of_credentials_requests>/credrequests
$ oc adm release extract \ --from=$RELEASE_IMAGE \ --credentials-requests \ --cloud=alibabacloud \ --to=<path_to_directory_with_list_of_credentials_requests>/credrequests1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
credrequests是存储CredentialsRequest对象列表的目录。如果该目录不存在,此命令就会创建该目录。
注意运行此命令可能需要一些时间。
如果您的集群使用集群功能禁用一个或多个可选组件,请删除任何禁用组件的
CredentialsRequest自定义资源。Alibaba Cloud 上 OpenShift Container Platform 4.13 的
credrequests目录的内容示例0000_30_machine-api-operator_00_credentials-request.yaml 0000_50_cluster-image-registry-operator_01-registry-credentials-request-alibaba.yaml 0000_50_cluster-ingress-operator_00-ingress-credentials-request.yaml 0000_50_cluster-storage-operator_03_credentials_request_alibaba.yaml
0000_30_machine-api-operator_00_credentials-request.yaml1 0000_50_cluster-image-registry-operator_01-registry-credentials-request-alibaba.yaml2 0000_50_cluster-ingress-operator_00-ingress-credentials-request.yaml3 0000_50_cluster-storage-operator_03_credentials_request_alibaba.yaml4 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
ccoctl工具处理credrequests目录中的所有CredentialsRequest对象:运行以下命令使用该工具:
ccoctl alibabacloud create-ram-users \ --name <name> \ --region=<alibaba_region> \ --credentials-requests-dir=<path_to_directory_with_list_of_credentials_requests>/credrequests \ --output-dir=<path_to_ccoctl_output_dir>
$ ccoctl alibabacloud create-ram-users \ --name <name> \ --region=<alibaba_region> \ --credentials-requests-dir=<path_to_directory_with_list_of_credentials_requests>/credrequests \ --output-dir=<path_to_ccoctl_output_dir>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
-
<name>是用于标记为跟踪而创建的云资源的名称。 -
<alibaba_region>是创建云资源的 Alibaba Cloud 区域。 -
<path_to_directory_with_list_of_requests>/credrequests是含有组件CredentialsRequest对象的文件的目录。 -
<path_to_ccoctl_output_dir>是放置所生成的组件凭证 secret 的目录。
注意如果您的集群使用
TechPreviewNoUpgrade功能集启用的技术预览功能,则必须包含--enable-tech-preview参数。输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意RAM 用户可以同时具有两个 accessKeys。如果您运行
ccoctl alibabacloud create-ram-users两次,则之前生成的 manifests secret 将变为过时,您必须重新应用新生成的 secret。-
验证 OpenShift Container Platform secret 是否已创建:
ls <path_to_ccoctl_output_dir>/manifests
$ ls <path_to_ccoctl_output_dir>/manifestsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例:
openshift-cluster-csi-drivers-alibaba-disk-credentials-credentials.yaml openshift-image-registry-installer-cloud-credentials-credentials.yaml openshift-ingress-operator-cloud-credentials-credentials.yaml openshift-machine-api-alibabacloud-credentials-credentials.yaml
openshift-cluster-csi-drivers-alibaba-disk-credentials-credentials.yaml openshift-image-registry-installer-cloud-credentials-credentials.yaml openshift-ingress-operator-cloud-credentials-credentials.yaml openshift-machine-api-alibabacloud-credentials-credentials.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以通过查询 Alibaba Cloud 来验证是否创建了 RAM 用户和策略。如需更多信息,请参阅 Alibaba Cloud 文档中有关列出 RAM 用户和策略的内容。
将生成的凭证文件复制到目标清单目录中:
cp ./<path_to_ccoctl_output_dir>/manifests/*credentials.yaml ./<path_to_installation>dir>/manifests/
$ cp ./<path_to_ccoctl_output_dir>/manifests/*credentials.yaml ./<path_to_installation>dir>/manifests/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
<path_to_ccoctl_output_dir>-
指定
ccoctl alibabacloud create-ram-users命令创建的目录。 <path_to_installation_dir>- 指定安装程序在其中创建文件的目录。