4.4. 获取安装程序
在安装 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.gz
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 从 Red Hat OpenShift Cluster Manager 下载安装 pull secret。此 pull secret 允许您与所含授权机构提供的服务进行身份验证,这些服务包括为 OpenShift Container Platform 组件提供容器镜像的 Quay.io。
4.4.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 ~/.powervs
Copy 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
文件会在安装过程中消耗掉。如果要重复使用该文件,您必须立即备份该文件。
4.4.2. 生成所需的安装清单 复制链接链接已复制到粘贴板!
您必须生成 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>
- 指定安装程序在其中创建文件的目录。
4.4.3. 使用 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>/credrequests
1 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.yaml
1 0000_50_cluster-image-registry-operator_01-registry-credentials-request-alibaba.yaml
2 0000_50_cluster-ingress-operator_00-ingress-credentials-request.yaml
3 0000_50_cluster-storage-operator_03_credentials_request_alibaba.yaml
4 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>/manifests
Copy 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.yaml
Copy 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>
- 指定安装程序在其中创建文件的目录。
4.4.4. 安装配置参数 复制链接链接已复制到粘贴板!
在部署 OpenShift Container Platform 集群前,您可以提供参数值来描述托管集群的云平台中的帐户,并选择性地自定义集群平台。在创建 install-config.yaml
安装配置文件时,您可以通过命令行为所需参数提供值。如果自定义集群,您可以修改 install-config.yaml
文件以提供有关平台的更多详情。
安装后,您无法更改 install-config.yaml
文件中的这些参数。
4.4.4.1. 所需的配置参数 复制链接链接已复制到粘贴板!
下表描述了所需的安装配置参数:
参数 | 描述 | 值 |
---|---|---|
|
| 字符串 |
|
云供应商的基域。基域用于创建到 OpenShift Container Platform 集群组件的路由。集群的完整 DNS 名称是 |
完全限定域名或子域名,如 |
|
Kubernetes 资源 | 对象 |
|
集群的名称。集群的 DNS 记录是 |
小写字母、连字符( |
|
要执行安装的具体平台配置: | 对象 |
| 从 Red Hat OpenShift Cluster Manager 获取 pull secret,验证从 Quay.io 等服务中下载 OpenShift Container Platform 组件的容器镜像。 |
|
4.4.4.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 网络块。
例如: 注意
将 |
4.4.4.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 模式的更多信息,请参阅身份验证和授权内容中的"管理云供应商凭证"条目。
4.4.4.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 关联。将私有区保留为不设置,让安装程序代表您创建私有区。 | 字符串. |
4.4.5. Alibaba Cloud 的自定义 install-config.yaml 文件示例 复制链接链接已复制到粘贴板!
您可以自定义安装配置文件(install-config.yaml
),以指定集群平台的更多详情,或修改所需参数的值。
4.4.6. 在安装过程中配置集群范围的代理 复制链接链接已复制到粘贴板!
生产环境可能会拒绝直接访问互联网,而是提供 HTTP 或 HTTPS 代理。您可以通过在 install-config.yaml
文件中配置代理设置,将新的 OpenShift Container Platform 集群配置为使用代理。
先决条件
-
您有一个现有的
install-config.yaml
文件。 您检查了集群需要访问的站点,并确定它们中的任何站点是否需要绕过代理。默认情况下,所有集群出口流量都经过代理,包括对托管云供应商 API 的调用。如果需要,您将在
Proxy 对象的
spec.noProxy
字段中添加站点来绕过代理。注意Proxy
对象status.noProxy
字段使用安装配置中的networking.machineNetwork[].cidr
、networking.clusterNetwork[].cidr
和networking.serviceNetwork[]
字段的值填充。对于在 Amazon Web Services(AWS)、Google Cloud Platform(GCP)、Microsoft Azure 和 Red Hat OpenStack Platform(RHOSP)上安装,
Proxy
对象status.noProxy
字段也会使用实例元数据端点填充(169.254.169.254
)。
流程
编辑
install-config.yaml
文件并添加代理设置。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 用于创建集群外 HTTP 连接的代理 URL。URL 方案必须是
http
。 - 2
- 用于创建集群外 HTTPS 连接的代理 URL。
- 3
- 要从代理中排除的目标域名、IP 地址或其他网络 CIDR 的逗号分隔列表。在域前面加上
.
以仅匹配子域。例如,.y.com
匹配x.y.com
,但不匹配y.com
。使用*
绕过所有目的地的代理。 - 4
- 如果提供,安装程序会在
openshift-config
命名空间中生成名为user-ca-bundle
的配置映射,其包含代理 HTTPS 连接所需的一个或多个额外 CA 证书。然后,Cluster Network Operator 会创建trusted-ca-bundle
配置映射,将这些内容与 Red Hat Enterprise Linux CoreOS(RHCOS)信任捆绑包合并,Proxy
对象的trustedCA
字段中也会引用此配置映射。additionalTrustBundle
字段是必需的,除非代理的身份证书由来自 RHCOS 信任捆绑包的颁发机构签名。 - 5
- 可选:决定
Proxy
对象的配置以引用trustedCA
字段中user-ca-bundle
配置映射的策略。允许的值是Proxyonly
和Always
。仅在配置了http/https
代理时,使用Proxyonly
引用user-ca-bundle
配置映射。使用Always
始终引用user-ca-bundle
配置映射。默认值为Proxyonly
。
注意安装程序不支持代理的
readinessEndpoints
字段。注意如果安装程序超时,重启并使用安装程序的
wait-for
命令完成部署。例如:./openshift-install wait-for install-complete --log-level debug
$ ./openshift-install wait-for install-complete --log-level debug
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存该文件并在安装 OpenShift Container Platform 时引用。
安装程序会创建一个名为 cluster 的集群范围代理,该代理 使用
提供的 install-config.yaml
文件中的代理设置。如果没有提供代理设置,仍然会创建一个 cluster
Proxy
对象,但它会有一个空 spec
。
只支持名为 cluster
的 Proxy
对象,且无法创建额外的代理。