9.7. 手动创建安装配置文件
安装集群要求您手动创建安装配置文件。
先决条件
- 已获取 OpenShift Container Platform 安装程序和集群的 pull secret。
-
具有在镜像 registry 时创建的
imageContentSourcePolicy.yaml文件。 - 您已获取了镜像 registry 的证书内容。
流程
创建一个安装目录来存储所需的安装资产:
$ mkdir <installation_directory>重要您必须创建一个目录。有些安装资产,如 bootstrap X.509 证书的过期间隔较短,因此不得重复使用安装目录。如果要重复使用另一个集群安装中的单个文件,您可以将它们复制到您的目录中。但是,安装资产的文件名可能会在发行版本间有所变化。从以前的 OpenShift Container Platform 版本中复制安装文件时请小心。
自定义提供的
install-config.yaml文件模板示例,并将其保存在<installation_directory>中。注意此配置文件必须命名为
install-config.yaml。在自定义示例模板时,请确定提供在受限网络中安装所需的信息:
更新
pullSecret值,使其包含 registry 的身份验证信息:pullSecret: '{"auths":{"<mirror_host_name>:5000": {"auth": "<credentials>","email": "you@example.com"}}}'对于
<mirror_host_name>,请指定您在镜像 registry 证书中指定的 registry 域名;对于 <credentials>,请指定您的镜像 registry 的 base64 编码用户名和密码。添加
additionalTrustBundle参数和值。additionalTrustBundle: | -----BEGIN CERTIFICATE----- ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ -----END CERTIFICATE-----该值必须是您用于镜像 registry 的证书文件内容。证书文件可以是现有的可信证书颁发机构,也可以是您为镜像 registry 生成的自签名证书。
定义 VPC 的网络和子网,以便在父
platform.ibmcloud字段下安装集群:vpcName: <existing_vpc> controlPlaneSubnets: <control_plane_subnet> computeSubnets: <compute_subnet>对于
platform.ibmcloud.vpcName,请指定现有 IBM Cloud Virtual Private Cloud (VPC) 网络的名称。对于platform.ibmcloud.controlPlaneSubnets和platform.ibmcloud.computeSubnets,请分别指定要分别部署 control plane 机器和计算机器的现有子网。添加镜像内容资源,类似于以下 YAML 摘录:
imageContentSources: - mirrors: - <mirror_host_name>:5000/<repo_name>/release source: quay.io/openshift-release-dev/ocp-release - mirrors: - <mirror_host_name>:5000/<repo_name>/release source: registry.redhat.io/ocp/release对于这些值,请使用镜像 registry 时创建的
imageContentSourcePolicy.yaml文件。如果网络限制使用公共端点访问所需的 IBM Cloud® 服务,请将
serviceEndpoints小节添加到platform.ibmcloud以指定备用服务端点。注意您只能为每个服务指定一个备用服务端点。
使用备用服务端点的示例
# ... serviceEndpoints: - name: IAM url: <iam_alternate_endpoint_url> - name: VPC url: <vpc_alternate_endpoint_url> - name: ResourceController url: <resource_controller_alternate_endpoint_url> - name: ResourceManager url: <resource_manager_alternate_endpoint_url> - name: DNSServices url: <dns_services_alternate_endpoint_url> - name: COS url: <cos_alternate_endpoint_url> - name: GlobalSearch url: <global_search_alternate_endpoint_url> - name: GlobalTagging url: <global_tagging_alternate_endpoint_url> # ...可选:将发布策略设置为
Internal:publish: Internal通过设置这个选项,您可以创建一个内部 Ingress Controller 和一个私有负载均衡器。
注意如果您使用
External的默认值,您的网络必须能够访问 IBM Cloud® Internet Services (CIS) 的公共端点。对于虚拟私有端点,未启用 CIS。
备份
install-config.yaml文件,以便您可以使用它安装多个集群。重要install-config.yaml文件会在安装过程的下一步中使用。现在必须备份它。
9.7.1. 在安装过程中配置集群范围的代理 复制链接链接已复制到粘贴板!
生产环境可能会拒绝直接访问互联网,而是提供 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 对象,且无法创建额外的代理。
9.7.2. 集群安装的最低资源要求 复制链接链接已复制到粘贴板!
每台集群机器都必须满足以下最低要求:
| 机器 | 操作系统 | vCPU | 虚拟内存 | Storage | 每秒输入/输出 (IOPS) |
|---|---|---|---|---|---|
| bootstrap | RHCOS | 4 | 16 GB | 100 GB | 300 |
| Control plane(控制平面) | RHCOS | 4 | 16 GB | 100 GB | 300 |
| Compute | RHCOS | 2 | 8 GB | 100 GB | 300 |
从 OpenShift Container Platform 版本 4.13 开始,RHCOS 基于 RHEL 版本 9.2,它更新了微架构要求。以下列表包含每个架构需要的最小指令集架构 (ISA):
- x86-64 体系结构需要 x86-64-v2 ISA
- ARM64 架构需要 ARMv8.0-A ISA
- IBM Power 架构需要 Power 9 ISA
- s390x 架构需要 z14 ISA
如需更多信息,请参阅 RHEL 架构。
如果平台的实例类型满足集群机器的最低要求,则 OpenShift Container Platform 支持使用它。
9.7.3. 为 IBM Cloud 测试的实例类型 复制链接链接已复制到粘贴板!
以下 IBM Cloud® 实例类型已使用 OpenShift Container Platform 测试。
例 9.1. 机器系列
-
bx2-8x32 -
bx2d-4x16 -
bx3d-4x20 -
bx3dc-8x40 -
cx2-8x16 -
cx2d-4x8 -
cx3d-8x20 -
cx3dc-4x10 -
gx2-8x64x1v100 -
gx3-16x80x1l4 -
mx2-8x64 -
mx2d-4x32 -
mx3d-4x40 -
ox2-8x64 -
ux2d-2x56 -
vx2d-4x56
9.7.4. IBM Cloud 的自定义 install-config.yaml 文件示例 复制链接链接已复制到粘贴板!
您可以自定义 install-config.yaml 文件,以指定有关 OpenShift Container Platform 集群平台的更多详情,或修改所需参数的值。
此示例 YAML 文件仅供参考。您必须使用安装程序来获取 install-config.yaml 文件,然后修改该文件。
apiVersion: v1
baseDomain: example.com
controlPlane:
hyperthreading: Enabled
name: master
platform:
ibm-cloud: {}
replicas: 3
compute:
- hyperthreading: Enabled
name: worker
platform:
ibmcloud: {}
replicas: 3
metadata:
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:
ibmcloud:
region: us-east
resourceGroupName: us-east-example-cluster-rg
serviceEndpoints:
- name: IAM
url: https://private.us-east.iam.cloud.ibm.com
- name: VPC
url: https://us-east.private.iaas.cloud.ibm.com/v1
- name: ResourceController
url: https://private.us-east.resource-controller.cloud.ibm.com
- name: ResourceManager
url: https://private.us-east.resource-controller.cloud.ibm.com
- name: DNSServices
url: https://api.private.dns-svcs.cloud.ibm.com/v1
- name: COS
url: https://s3.direct.us-east.cloud-object-storage.appdomain.cloud
- name: GlobalSearch
url: https://api.private.global-search-tagging.cloud.ibm.com
- name: GlobalTagging
url: https://tags.private.global-search-tagging.cloud.ibm.com
networkResourceGroupName: us-east-example-existing-network-rg
vpcName: us-east-example-network-1
controlPlaneSubnets:
- us-east-example-network-1-cp-us-east-1
- us-east-example-network-1-cp-us-east-2
- us-east-example-network-1-cp-us-east-3
computeSubnets:
- us-east-example-network-1-compute-us-east-1
- us-east-example-network-1-compute-us-east-2
- us-east-example-network-1-compute-us-east-3
credentialsMode: Manual
pullSecret: '{"auths":{"<local_registry>": {"auth": "<credentials>","email": "you@example.com"}}}'
fips: false
sshKey: ssh-ed25519 AAAA...
additionalTrustBundle: |
-----BEGIN CERTIFICATE-----
<MY_TRUSTED_CA_CERT>
-----END CERTIFICATE-----
imageContentSources:
- mirrors:
- <local_registry>/<local_repository_name>/release
source: quay.io/openshift-release-dev/ocp-release
- mirrors:
- <local_registry>/<local_repository_name>/release
source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
- 1 8 12
- 必需。
- 2 5
- 如果没有提供这些参数和值,安装程序会提供默认值。
- 3 6
controlPlane部分是一个单个映射,但compute部分是一系列映射。为满足不同数据结构的要求,compute部分的第一行必须以连字符-开头,controlPlane部分的第一行则不以连字符开头。仅使用一个 control plane 池。- 4 7
- 启用或禁用并发多线程,也称为 Hyper-Threading。默认情况下,启用并发多线程以提高机器内核的性能。您可以通过将 参数值设置为
Disabled来禁用它。如果在某些集群机器中禁用并发多线程,则必须在所有集群机器中禁用它。重要如果您禁用并发多线程,请确保您的容量规划考虑机器性能显著降低的情况。如果您禁用并发多线程,请为您的机器使用较大的类型,如
n1-standard-8。 - 9
- 机器 CIDR 必须包含计算机器和 control plane 机器的子网。
- 10
- CIDR 必须包含
platform.ibmcloud.controlPlaneSubnets和platform.ibmcloud.computeSubnets中定义的子网。 - 11
- 要安装的集群网络插件。默认值
OVNKubernetes是唯一支持的值。 - 13
- 现有资源组的名称。所有安装程序置备的集群资源都部署到此资源组中。如果未定义,则会为集群创建新的资源组。
- 14
- 根据 VPC 的网络限制,根据需要指定备用服务端点。这会覆盖该服务的默认公共端点。
- 15
- 指定包含现有虚拟私有云 (VPC) 的资源组名称。现有的 VPC 和子网应该位于此资源组中。集群将安装到此 VPC 中。
- 16
- 指定现有 VPC 的名称。
- 17
- 指定要部署 control plane 机器的现有子网的名称。子网必须属于您指定的 VPC。为区域中的每个可用区指定一个子网。
- 18
- 指定要部署计算机器的现有子网的名称。子网必须属于您指定的 VPC。为区域中的每个可用区指定一个子网。
- 19
- 对于
<local_registry>,请指定 registry 域名,以及您的镜像 registry 用来提供内容的可选端口。例如: registry.example.com 或 registry.example.com:5000。对于<credentials>,请为您的镜像 registry 指定 base64 编码的用户名和密码。 - 20
- 启用或禁用 FIPS 模式。默认情况下不启用 FIPS 模式。如果启用了 FIPS 模式,运行 OpenShift Container Platform 的 Red Hat Enterprise Linux CoreOS(RHCOS)机器会绕过默认的 Kubernetes 加密套件,并使用由 RHCOS 提供的加密模块。重要
只有在
x86_64架构的 OpenShift Container Platform 部署中才支持使用 FIPS 验证或Modules in Process 加密库。 - 21
- 可选:提供用于访问集群中机器的
sshKey值。 - 22
- 提供用于镜像 registry 的证书文件内容。
- 23
- 从镜像 registry 时创建的
imageContentSourcePolicy.yaml文件的metadata.name: release-0部分提供这些值。注意对于您要在其上执行安装调试或灾难恢复的生产环境 OpenShift Container Platform 集群,请指定
ssh-agent进程使用的 SSH 密钥。