4.4. 获取安装程序
在安装 OpenShift Container Platform 前,将安装文件下载到您用于安装的主机上。
先决条件
- 您有一台运行 Linux 或 macOS 的计算机,至少有 1.2 GB 本地磁盘空间。
流程
- 进入 Red Hat Hybrid Cloud Console 上的 Cluster Type 页。如果您有红帽帐户,请使用您的凭证登录。如果没有,请创建一个帐户。
- 在页的 Run it yourself 部分中选择您的基础架构供应商。
- 从 OpenShift 安装程序下的下拉菜单中选择您的主机操作系统和架构,然后点下载安装程序。
将下载的文件保存在要存储安装配置文件的目录中。
重要- 安装程序会在用来安装集群的计算机上创建几个文件。在完成集群安装后,您必须保留安装程序和安装程序所创建的文件。删除集群需要这两个文件。
- 删除安装程序创建的文件不会删除您的集群,即使集群在安装过程中失败也是如此。要删除集群,请为特定云供应商完成 OpenShift Container Platform 卸载流程。
提取安装程序。例如,在使用 Linux 操作系统的计算机上运行以下命令:
$ tar -xvf openshift-install-linux.tar.gz- 从 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>1 - 1
- 对于
<installation_directory>,请指定要存储安装程序创建的文件的目录名称。
在指定目录时:
-
验证该目录是否具有
执行权限。在安装目录中运行 Terraform 二进制文件需要这个权限。 使用空目录。有些安装资产,如 bootstrap X.509 证书的过期间隔较短,因此不得重复使用安装目录。如果要重复使用另一个集群安装中的单个文件,您可以将它们复制到您的目录中。但是,安装资产的文件名可能会在发行版本间有所变化。从以前的 OpenShift Container Platform 版本中复制安装文件时请小心。
注意始终删除
~/.powervs目录,以避免重复使用过时的配置。运行以下命令:$ rm -rf ~/.powervs
在提示符处,提供云的配置详情:
可选: 选择用于访问集群机器的 SSH 密钥。
注意对于您要在其上执行安装调试或灾难恢复的生产环境 OpenShift Container Platform 集群,请指定
ssh-agent进程使用的 SSH 密钥。- 选择 alibabacloud 作为目标平台。
- 选择要将集群部署到的区域。
- 选择集群要部署到的基域。基域与您为集群创建的公共 DNS 区对应。
- 为集群提供一个描述性名称。
将集群安装到 Alibaba Cloud 中需要 Cloud Credential Operator(CCO)以手动模式运行。修改
install-config.yaml文件,将credentialsMode参数设置为Manual:带有
credentialsMode被设置为Manual的 install-config.yaml 配置文件示例apiVersion: v1 baseDomain: cluster1.example.com credentialsMode: Manual1 compute: - architecture: amd64 hyperthreading: Enabled ...- 1
- 添加此行,将
credentialsMode设置为Manual。
-
修改
install-config.yaml文件。您可以在"安装配置参数"部分找到有关可用参数的更多信息。 备份
install-config.yaml文件,以便您可以使用它安装多个集群。重要install-config.yaml文件会在安装过程中消耗掉。如果要重复使用此文件,必须现在备份。
4.4.2. 生成所需的安装清单 复制链接链接已复制到粘贴板!
您必须生成 Kubernetes 清单和 Ignition 配置文件,集群需要配置机器。
流程
从包含安装程序的目录中运行以下命令来生成清单:
$ openshift-install create manifests --dir <installation_directory>其中:
<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}')运行以下命令,从 OpenShift Container Platform 发行镜像中提取
CredentialsRequest对象列表:$ oc adm release extract \ --from=$RELEASE_IMAGE \ --credentials-requests \ --included \1 --install-config=<path_to_directory_with_installation_configuration>/install-config.yaml \2 --to=<path_to_directory_for_credentials_requests>3 注意此命令可能需要一些时间才能运行。
运行以下命令,使用
ccoctl工具处理所有CredentialsRequest对象:运行以下命令使用该工具:
$ ccoctl alibabacloud create-ram-users \ --name <name> \1 --region=<alibaba_region> \2 --credentials-requests-dir=<path_to_credentials_requests_directory> \3 --output-dir=<path_to_ccoctl_output_dir>4 注意如果您的集群使用
TechPreviewNoUpgrade功能集启用的技术预览功能,则必须包含--enable-tech-preview参数。输出示例
2022/02/11 16:18:26 Created RAM User: user1-alicloud-openshift-machine-api-alibabacloud-credentials 2022/02/11 16:18:27 Ready for creating new ram policy user1-alicloud-openshift-machine-api-alibabacloud-credentials-policy-policy 2022/02/11 16:18:27 RAM policy user1-alicloud-openshift-machine-api-alibabacloud-credentials-policy-policy has created 2022/02/11 16:18:28 Policy user1-alicloud-openshift-machine-api-alibabacloud-credentials-policy-policy has attached on user user1-alicloud-openshift-machine-api-alibabacloud-credentials 2022/02/11 16:18:29 Created access keys for RAM User: user1-alicloud-openshift-machine-api-alibabacloud-credentials 2022/02/11 16:18:29 Saved credentials configuration to: user1-alicloud/manifests/openshift-machine-api-alibabacloud-credentials-credentials.yaml ...注意RAM 用户可以同时具有两个 accessKeys。如果您运行
ccoctl alibabacloud create-ram-users两次,则之前生成的 manifests secret 将变为过时,您必须重新应用新生成的 secret。验证 OpenShift Container Platform secret 是否已创建:
$ ls <path_to_ccoctl_output_dir>/manifests输出示例
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您可以通过查询 Alibaba Cloud 来验证是否创建了 RAM 用户和策略。如需更多信息,请参阅 Alibaba Cloud 文档中有关列出 RAM 用户和策略的内容。
将生成的凭证文件复制到目标清单目录中:
$ cp ./<path_to_ccoctl_output_dir>/manifests/*credentials.yaml ./<path_to_installation>dir>/manifests/其中:
<path_to_ccoctl_output_dir>-
指定
ccoctl alibabacloud create-ram-users命令创建的目录。 <path_to_installation_dir>- 指定安装程序在其中创建文件的目录。
4.4.4. Alibaba Cloud 的自定义 install-config.yaml 文件示例 复制链接链接已复制到粘贴板!
您可以自定义安装配置文件(install-config.yaml),以指定集群平台的更多详情,或修改所需参数的值。
apiVersion: v1
baseDomain: alicloud-dev.devcluster.openshift.com
credentialsMode: Manual
compute:
- architecture: amd64
hyperthreading: Enabled
name: worker
platform: {}
replicas: 3
controlPlane:
architecture: amd64
hyperthreading: Enabled
name: master
platform: {}
replicas: 3
metadata:
creationTimestamp: null
name: test-cluster
networking:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
machineNetwork:
- cidr: 10.0.0.0/16
networkType: OVNKubernetes
serviceNetwork:
- 172.30.0.0/16
platform:
alibabacloud:
defaultMachinePlatform:
instanceType: ecs.g6.xlarge
systemDiskCategory: cloud_efficiency
systemDiskSize: 200
region: ap-southeast-1
resourceGroupID: rg-acfnw6j3hyai
vpcID: vpc-0xifdjerdibmaqvtjob2b
vswitchIDs:
- vsw-0xi8ycgwc8wv5rhviwdq5
- vsw-0xiy6v3z2tedv009b4pz2
publish: External
pullSecret: '{"auths": {"cloud.openshift.com": {"auth": ... }'
sshKey: |
ssh-rsa AAAA...
4.4.5. 在安装过程中配置集群范围的代理 复制链接链接已复制到粘贴板!
生产环境可能会拒绝直接访问互联网,而是提供 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文件并添加代理设置。例如:apiVersion: v1 baseDomain: my.domain.com proxy: httpProxy: http://<username>:<pswd>@<ip>:<port>1 httpsProxy: https://<username>:<pswd>@<ip>:<port>2 noProxy: example.com3 additionalTrustBundle: |4 -----BEGIN CERTIFICATE----- <MY_TRUSTED_CA_CERT> -----END CERTIFICATE----- additionalTrustBundlePolicy: <policy_to_add_additionalTrustBundle>5 - 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 Container Platform 时引用。
安装程序会创建一个名为 cluster 的集群范围代理,该代理 使用 提供的 install-config.yaml 文件中的代理设置。如果没有提供代理设置,仍然会创建一个 cluster Proxy 对象,但它会有一个空 spec。
只支持名为 cluster 的 Proxy 对象,且无法创建额外的代理。