$ DEFAULT_SG=$(ibmcloud is vpc <your_vpc_name> --output JSON | jq -r '.default_security_group.id')
在 OpenShift Container Platform 4.17 中,您可以通过创建一个内部镜像来安装受限网络中的集群,该镜像包含可访问 IBM Cloud® 上现有虚拟私有云 (VPC) 的安装发行版内容。
您已查看有关OpenShift Container Platform 安装和更新流程的详细信息。
您已配置了一个 IBM Cloud 帐户来托管集群。
您拥有一个可访问互联网和受限网络的容器镜像注册表。容器镜像注册表应镜像 OpenShift 镜像注册表的内容,并包含安装介质。有关更多信息,请参阅使用 oc-mirror 插件为断开连接的安装镜像镜像。
您在 IBM Cloud® 上拥有一个满足以下要求的现有 VPC
该 VPC 包含镜像注册表,或者具有访问托管在其他位置的镜像注册表的防火墙规则或对等连接。
该 VPC 可以使用公共端点访问 IBM Cloud® 服务端点。如果网络限制限制了对公共服务端点的访问,请评估这些服务的备用端点。有关更多信息,请参阅访问 IBM 服务端点。
您不能使用安装程序默认情况下配置的 VPC。
如果您计划配置端点网关以使用 IBM Cloud® 虚拟私有端点,请考虑以下要求
端点网关支持目前仅限于us-east
和us-south
区域。
VPC 必须允许与端点网关之间的流量。您可以使用 VPC 的默认安全组或新的安全组来允许 443 端口上的流量。有关更多信息,请参阅允许端点网关流量。
如果您使用防火墙,则已将其配置为允许您的集群需要访问的站点。
您在安装集群之前配置了ccoctl
实用程序。有关更多信息,请参阅为 IBM Cloud 配置 IAM。
在 OpenShift Container Platform 4.17 中,您可以执行无需主动连接到互联网即可获取软件组件的安装。受限网络安装可以使用安装程序提供的基础设施或用户提供的基础设施完成,具体取决于您要安装集群的云平台。
您可以使用能够访问互联网和封闭网络的堡垒主机或便携式设备来完成安装。您必须使用具有互联网访问权限的主机来:
下载安装程序、OpenShift CLI (oc
) 和 CCO 实用程序 (ccoctl
)。
使用安装程序来查找 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像并创建安装配置文件。
使用oc
从 CCO 容器镜像中提取ccoctl
。
使用oc
和ccoctl
为 IBM Cloud® 配置 IAM。
要完成受限网络安装,您必须创建一个镜像注册表,该注册表镜像 OpenShift 镜像注册表的内容并包含安装介质。
您可以在可以访问互联网和受限网络的镜像主机上创建此注册表,或者使用满足您组织安全限制的其他方法。
有关为断开连接的安装镜像镜像的更多信息,请参阅“其他资源”。
安装程序需要访问以下 IBM Cloud® 服务端点:
云对象存储
DNS 服务
全局搜索
全局标记
身份服务
资源控制器
资源管理器
VPC
如果您在安装过程中指定 IBM® Key Protect for IBM Cloud® 根密钥,则还需要 Key Protect 的服务端点。 |
默认情况下,使用公共端点访问服务。如果网络限制限制了对公共服务端点的访问,您可以覆盖默认行为。
在部署集群之前,您可以更新安装配置文件 (install-config.yaml
) 以指定备用服务端点的 URI。有关用法的更多信息,请参阅“其他资源”。
在 OpenShift Container Platform 4.17 中,您可以将集群部署到现有 IBM® 虚拟私有云 (VPC) 的子网中。将 OpenShift Container Platform 部署到现有 VPC 可以帮助您避免新帐户中的限制约束,或者更轻松地遵守公司指南设置的操作约束。如果您无法获得创建 VPC 所需的基础设施创建权限,请使用此安装选项。
由于安装程序无法知道现有子网中还有哪些其他组件,因此它无法选择子网 CIDR 等。您必须为将安装集群的子网配置网络。
您必须在安装集群之前正确配置现有 VPC 及其子网。安装程序不会创建以下组件:
NAT 网关
子网
路由表
VPC 网络
安装程序无法:
细分集群使用的网络范围
设置子网的路由表
设置 VPC 选项(如 DHCP)
安装程序要求您使用云提供的 DNS 服务器。不支持使用自定义 DNS 服务器,这会导致安装失败。 |
VPC 和所有子网必须位于现有的资源组中。集群将部署到现有的 VPC。
作为安装的一部分,请在install-config.yaml
文件中指定以下内容:
包含 VPC 和子网的现有资源组的名称 (networkResourceGroupName
)
现有 VPC 的名称 (vpcName
)
为控制平面机器和计算机器创建的子网 (controlPlaneSubnets
和computeSubnets
)
额外的安装程序预配的集群资源部署到单独的资源组( |
为了确保您提供的子网适用,安装程序会确认以下内容:
您指定的所有子网都存在。
对于区域中的每个可用区,您需要指定:
一个用于控制平面机器的子网。
一个用于计算机器的子网。
您指定的机器CIDR包含计算机器和控制平面机器的子网。
不支持子网ID。 |
如果您将OpenShift Container Platform部署到现有网络,则集群服务的隔离性会以下列方式降低:
您可以在同一个VPC中安装多个OpenShift Container Platform集群。
允许ICMP入站访问整个网络。
允许TCP端口22入站访问(SSH)整个网络。
允许控制平面TCP 6443入站访问(Kubernetes API)整个网络。
允许控制平面TCP 22623入站访问(MCS)整个网络。
如果您使用IBM Cloud®虚拟专用端点,则必须将您的虚拟专用云 (VPC) 配置为允许与端点网关之间的流量。
VPC的默认安全组配置为允许所有出站流量到端点网关。因此,允许VPC和端点网关之间流量最简单的方法是修改默认安全组以允许443端口上的入站流量。
如果您选择配置新的安全组,则必须将安全组配置为允许入站和出站流量。 |
您已安装IBM Cloud®命令行界面实用程序 (ibmcloud
)。
运行以下命令获取默认安全组的标识符:
$ DEFAULT_SG=$(ibmcloud is vpc <your_vpc_name> --output JSON | jq -r '.default_security_group.id')
运行以下命令添加允许443端口入站流量的规则:
$ ibmcloud is security-group-rule-add $DEFAULT_SG inbound tcp --remote 0.0.0.0/0 --port-min 443 --port-max 443
确保您的端点网关配置为使用此安全组。 |
在OpenShift Container Platform安装过程中,您可以向安装程序提供SSH公钥。该密钥通过其Ignition配置文件传递到Red Hat Enterprise Linux CoreOS (RHCOS) 节点,并用于验证对节点的SSH访问。该密钥将添加到每个节点上core
用户的~/.ssh/authorized_keys
列表中,从而启用无需密码的身份验证。
密钥传递到节点后,您可以使用密钥对以core
用户身份通过SSH登录到RHCOS节点。要通过SSH访问节点,必须由SSH管理本地用户的私钥身份。
如果您想SSH登录到集群节点以执行安装调试或灾难恢复,则必须在安装过程中提供SSH公钥。./openshift-install gather
命令也需要集群节点上存在SSH公钥。
在需要灾难恢复和调试的生产环境中,请勿跳过此步骤。 |
您必须使用本地密钥,而不是使用平台特定方法(例如AWS密钥对)配置的密钥。 |
如果您本地机器上没有现有的SSH密钥对可用于对集群节点进行身份验证,请创建一个。例如,在使用Linux操作系统的计算机上,运行以下命令:
$ ssh-keygen -t ed25519 -N '' -f <path>/<file_name> (1)
1 | 指定新SSH密钥的路径和文件名,例如~/.ssh/id_ed25519 。如果您有现有的密钥对,请确保您的公钥位于您的~/.ssh 目录中。 |
如果您计划安装一个使用已提交给NIST进行FIPS 140-2/140-3验证的RHEL加密库的OpenShift Container Platform集群(仅限 |
查看SSH公钥
$ cat <path>/<file_name>.pub
例如,运行以下命令查看~/.ssh/id_ed25519.pub
公钥:
$ cat ~/.ssh/id_ed25519.pub
如果尚未添加,请将SSH私钥身份添加到本地用户的SSH代理。SSH代理对密钥的管理对于对集群节点进行无需密码的SSH身份验证是必需的,或者如果您想使用./openshift-install gather
命令。
在某些发行版中,默认的SSH私钥身份(例如 |
如果本地用户的ssh-agent
进程尚未运行,请将其作为后台任务启动:
$ eval "$(ssh-agent -s)"
Agent pid 31874
如果您的集群处于FIPS模式,则只能使用符合FIPS的算法来生成SSH密钥。密钥必须是RSA或ECDSA。 |
将您的SSH私钥添加到ssh-agent
$ ssh-add <path>/<file_name> (1)
1 | 指定SSH私钥的路径和文件名,例如~/.ssh/id_ed25519 |
Identity added: /home/<you>/<path>/<file_name> (<computer_name>)
安装OpenShift Container Platform时,请向安装程序提供SSH公钥。
您必须将创建的API密钥设置为全局变量;安装程序在启动期间会读取此变量以设置API密钥。
您已为您的IBM Cloud®帐户创建了用户API密钥或服务ID API密钥。
将您的帐户API密钥导出为全局变量:
$ export IC_API_KEY=<api_key>
您必须完全按照指定的名称设置变量名;安装程序需要在启动时存在此变量名。 |
安装程序需要Red Hat Enterprise Linux CoreOS (RHCOS) 镜像才能安装集群。虽然可选,但在部署之前下载Red Hat Enterprise Linux CoreOS (RHCOS) 可以避免在创建集群时需要互联网访问。
使用安装程序查找并下载Red Hat Enterprise Linux CoreOS (RHCOS) 镜像。
运行安装程序的主机具有互联网访问权限。
切换到包含安装程序的目录并运行以下命令:
$ ./openshift-install coreos print-stream-json
使用该命令的输出查找IBM Cloud®镜像的位置。
.Example output
----
"release": "415.92.202311241643-0",
"formats": {
"qcow2.gz": {
"disk": {
"location": "https://rhcos.mirror.openshift.com/art/storage/prod/streams/4.15-9.2/builds/415.92.202311241643-0/x86_64/rhcos-415.92.202311241643-0-ibmcloud.x86_64.qcow2.gz",
"sha256": "6b562dee8431bec3b93adeac1cfefcd5e812d41e3b7d78d3e28319870ffc9eae",
"uncompressed-sha256": "5a0f9479505e525a30367b6a6a6547c86a8f03136f453c1da035f3aa5daa8bc9"
----
下载并解压镜像存档。使安装程序用于创建集群的主机可以使用该镜像。
安装集群需要您手动创建安装配置文件。
您已获得OpenShift Container Platform安装程序和集群的pull secret。
您拥有在镜像注册表时创建的imageContentSourcePolicy.yaml
文件。
您已获得镜像注册表证书的内容。
创建一个安装目录来存储所需的安装资产:
$ mkdir <installation_directory>
您必须创建一个目录。某些安装资产(如引导X.509证书)的有效期很短,因此您不能重复使用安装目录。如果您想重复使用来自另一个集群安装的单个文件,您可以将它们复制到您的目录中。但是,安装资产的文件名在不同版本之间可能会发生变化。从较早的OpenShift Container Platform版本复制安装文件时,请谨慎操作。 |
自定义提供的示例install-config.yaml
文件模板,并将其保存到<installation_directory>
中。
您必须将此配置文件命名为 |
自定义示例模板时,请务必提供受限网络安装所需的信 息。
更新pullSecret
值,使其包含注册表的身份验证信息。
pullSecret: '{"auths":{"<mirror_host_name>:5000": {"auth": "<credentials>","email": "[email protected]"}}}'
对于<mirror_host_name>
,请指定您在镜像注册表证书中指定的注册表域名;对于<credentials>
,请指定镜像注册表的 Base64 编码用户名和密码。
添加additionalTrustBundle
参数和值。
additionalTrustBundle: |
-----BEGIN CERTIFICATE-----
ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
-----END CERTIFICATE-----
该值必须是您用于镜像注册表的证书文件的内容。证书文件可以是现有的受信任证书颁发机构,也可以是您为镜像注册表生成的自签名证书。
在父platform.ibmcloud
字段下定义用于安装集群的 VPC 的网络和子网。
vpcName: <existing_vpc>
controlPlaneSubnets: <control_plane_subnet>
computeSubnets: <compute_subnet>
对于platform.ibmcloud.vpcName
,请指定现有 IBM Cloud 虚拟私有云 (VPC) 网络的名称。对于platform.ibmcloud.controlPlaneSubnets
和platform.ibmcloud.computeSubnets
,分别指定用于部署控制平面机器和计算机器的现有子网。
添加镜像内容资源,类似于以下 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
对于这些值,请使用镜像注册表创建时生成的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 控制器和一个私有负载均衡器。
如果您使用默认值 |
备份install-config.yaml
文件,以便您可以使用它来安装多个集群。
|
生产环境可以拒绝直接访问互联网,而是提供 HTTP 或 HTTPS 代理。您可以通过在install-config.yaml
文件中配置代理设置来配置新的 OpenShift Container Platform 集群以使用代理。
您有一个现有的install-config.yaml
文件。
您已查看集群需要访问的站点,并确定是否需要任何站点绕过代理。默认情况下,所有集群出口流量都使用代理,包括对托管云提供商 API 的调用。如有必要,您已将站点添加到Proxy
对象的spec.noProxy
字段以绕过代理。
对于在 Amazon Web Services (AWS)、Google Cloud Platform (GCP)、Microsoft Azure 和 Red Hat OpenStack Platform (RHOSP) 上的安装, |
编辑您的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.com (3)
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 | 如果提供,安装程序将生成一个名为user-ca-bundle 的配置映射,该映射位于openshift-config 命名空间中,其中包含代理 HTTPS 连接所需的一个或多个附加 CA 证书。然后,集群网络运营商创建一个trusted-ca-bundle 配置映射,将这些内容与 Red Hat Enterprise Linux CoreOS (RHCOS) 信任捆绑包合并,并且此配置映射在Proxy 对象的trustedCA 字段中引用。除非代理的身份证书由 RHCOS 信任捆绑包中的机构签名,否则需要additionalTrustBundle 字段。 |
5 | 可选:确定Proxy 对象的配置策略,以引用trustedCA 字段中的user-ca-bundle 配置映射。允许的值为Proxyonly 和Always 。使用Proxyonly 仅在配置http/https 代理时引用user-ca-bundle 配置映射。使用Always 始终引用user-ca-bundle 配置映射。默认值为Proxyonly 。 |
安装程序不支持代理 |
如果安装程序超时,请重新启动,然后使用安装程序的
|
保存文件并在安装 OpenShift Container Platform 时引用它。
安装程序创建一个名为cluster
的集群范围代理,该代理使用提供的install-config.yaml
文件中的代理设置。如果未提供代理设置,则仍然会创建cluster
Proxy
对象,但它将具有 nil spec
。
仅支持名为 |
每台集群机器必须满足以下最低要求
机器 | 操作系统 | vCPU | 虚拟 RAM | 存储 | 每秒输入/输出 (IOPS) |
---|---|---|---|---|---|
引导程序 |
RHCOS |
4 |
16 GB |
100 GB |
300 |
控制平面 |
RHCOS |
4 |
16 GB |
100 GB |
300 |
计算 |
RHCOS |
2 |
8 GB |
100 GB |
300 |
从 OpenShift Container Platform 4.13 版本开始,RHCOS 基于 RHEL 9.2 版本,更新了微架构要求。以下列表包含每个架构所需的最低指令集架构 (ISA):
更多信息,请参见 RHEL 架构。 |
如果平台的实例类型满足集群机器的最低要求,则支持在 OpenShift Container Platform 中使用它。
以下 IBM Cloud® 实例类型已通过 OpenShift Container Platform 测试。
bx2-8x32
bx2d-4x16
bx3d-4x20
cx2-8x16
cx2d-4x8
cx3d-8x20
gx2-8x64x1v100
gx3-16x80x1l4
gx3d-160x1792x8h100
mx2-8x64
mx2d-4x32
mx3d-4x40
ox2-8x64
ux2d-2x56
vx2d-4x56
您可以自定义install-config.yaml
文件,以指定有关 OpenShift Container Platform 集群平台的更多详细信息,或修改所需参数的值。
此 YAML 文件示例仅供参考。您必须使用安装程序获取您的 |
apiVersion: v1
baseDomain: example.com (1)
controlPlane: (2) (3)
hyperthreading: Enabled (4)
name: master
platform:
ibm-cloud: {}
replicas: 3
compute: (2) (3)
- hyperthreading: Enabled (4)
name: worker
platform:
ibmcloud: {}
replicas: 3
metadata:
name: test-cluster (1)
networking:
clusterNetwork:
- cidr: 10.128.0.0/14 (5)
hostPrefix: 23
machineNetwork:
- cidr: 10.0.0.0/16 (6)
networkType: OVNKubernetes (7)
serviceNetwork:
- 172.30.0.0/16
platform:
ibmcloud:
region: us-east (1)
resourceGroupName: us-east-example-cluster-rg (8)
serviceEndpoints: (9)
- 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 (10)
vpcName: us-east-example-network-1 (11)
controlPlaneSubnets: (12)
- 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: (13)
- 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": "[email protected]"}}}' (14)
fips: false (15)
sshKey: ssh-ed25519 AAAA... (16)
additionalTrustBundle: | (17)
-----BEGIN CERTIFICATE-----
<MY_TRUSTED_CA_CERT>
-----END CERTIFICATE-----
imageContentSources: (18)
- 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 | 必需。 | ||
2 | 如果您未提供这些参数和值,安装程序将提供默认值。 | ||
3 | controlPlane 部分是一个单一映射,但compute 部分是一系列映射。为了满足不同数据结构的要求,compute 部分的第一行必须以连字符- 开头,而controlPlane 部分的第一行则不能。只使用一个控制平面池。 |
||
4 | 启用或禁用同时多线程处理,也称为超线程。默认情况下,启用同时多线程处理以提高机器内核的性能。您可以将其参数值设置为Disabled 来禁用它。如果在某些集群机器中禁用了同时多线程处理,则必须在所有集群机器中禁用它。
|
||
5 | 机器 CIDR 必须包含计算机器和控制平面机器的子网。 | ||
6 | CIDR 必须包含platform.ibmcloud.controlPlaneSubnets 和platform.ibmcloud.computeSubnets 中定义的子网。 |
||
7 | 要安装的集群网络插件。默认值OVNKubernetes 是唯一受支持的值。 |
||
8 | 现有资源组的名称。所有安装程序预配的集群资源都部署到此资源组。如果未定义,则会为集群创建一个新的资源组。 | ||
9 | 根据 VPC 的网络限制,根据需要指定备用服务端点。这将覆盖服务的默认公共端点。 | ||
10 | 指定包含现有虚拟专用云 (VPC) 的资源组的名称。现有 VPC 和子网应位于此资源组中。集群将安装到此 VPC。 | ||
11 | 指定现有 VPC 的名称。 | ||
12 | 指定要向其部署控制平面机器的现有子网的名称。子网必须属于您指定的 VPC。为区域中的每个可用区指定一个子网。 | ||
13 | 指定要向其部署计算机器的现有子网的名称。子网必须属于您指定的 VPC。为区域中的每个可用区指定一个子网。 | ||
14 | 对于<local_registry> ,请指定镜像注册表用于提供内容的注册表域名,以及可选的端口。例如,registry.example.com 或 registry.example.com:5000。对于<credentials> ,请指定镜像注册表的 base64 编码用户名和密码。 |
||
15 | 启用或禁用 FIPS 模式。默认情况下,FIPS 模式未启用。如果启用了 FIPS 模式,则运行 OpenShift Container Platform 的 Red Hat Enterprise Linux CoreOS (RHCOS) 机器将绕过默认的 Kubernetes 加密套件,并改用 RHCOS 提供的加密模块。
|
||
16 | 可选:提供用于访问集群中机器的sshKey 值。 |
||
17 | 提供您用于镜像注册表的证书文件的内容。 | ||
18 | 从您镜像注册表时创建的imageContentSourcePolicy.yaml 文件的metadata.name: release-0 部分提供这些值。
|
您可以安装 OpenShift CLI (oc
) 以通过命令行界面与 OpenShift Container Platform 交互。您可以在 Linux、Windows 或 macOS 上安装oc
。
如果您安装了早期版本的 |
您可以使用以下步骤在 Linux 上安装 OpenShift CLI (oc
) 二进制文件。
导航到 Red Hat 客户门户网站上的OpenShift Container Platform 下载页面。
从“产品变体”下拉列表中选择架构。
从“版本”下拉列表中选择相应的版本。
单击OpenShift v4.17 Linux 客户端条目旁边的立即下载,然后保存文件。
解压缩存档
$ tar xvf <file>
将oc
二进制文件放置在PATH
中的目录中。
要检查您的PATH
,请执行以下命令
$ echo $PATH
安装 OpenShift CLI 后,可以使用oc
命令。
$ oc <command>
您可以使用以下步骤在 Windows 上安装 OpenShift CLI (oc
) 二进制文件。
导航到 Red Hat 客户门户网站上的OpenShift Container Platform 下载页面。
从“版本”下拉列表中选择相应的版本。
单击OpenShift v4.17 Windows 客户端条目旁边的立即下载,然后保存文件。
使用 ZIP 程序解压缩存档。
将oc
二进制文件移动到PATH
中的目录。
要检查您的PATH
,请打开命令提示符并执行以下命令
C:\> path
安装 OpenShift CLI 后,可以使用oc
命令。
C:\> oc <command>
您可以使用以下步骤在 macOS 上安装 OpenShift CLI (oc
) 二进制文件。
导航到 Red Hat 客户门户网站上的OpenShift Container Platform 下载页面。
从“版本”下拉列表中选择相应的版本。
单击OpenShift v4.17 macOS 客户端条目旁边的立即下载,然后保存文件。
对于 macOS arm64,请选择OpenShift v4.17 macOS arm64 客户端条目。 |
解压缩存档。
将oc
二进制文件移动到 PATH 上的目录。
要检查您的PATH
,请打开终端并执行以下命令
$ echo $PATH
使用oc
命令验证您的安装
$ oc <command>
安装集群需要 Cloud Credential Operator (CCO) 以手动模式运行。虽然安装程序将 CCO 配置为手动模式,但您必须为您的云提供商指定身份和访问管理密钥。
您可以使用 Cloud Credential Operator (CCO) 实用程序 (ccoctl
) 创建所需的 IBM Cloud® 资源。
您已配置ccoctl
二进制文件。
您有一个现有的install-config.yaml
文件。
编辑install-config.yaml
配置文件,使其包含设置为Manual
的credentialsMode
参数。
install-config.yaml
配置文件示例apiVersion: v1
baseDomain: cluster1.example.com
credentialsMode: Manual (1)
compute:
- architecture: amd64
hyperthreading: Enabled
1 | 添加此行是为了将credentialsMode 参数设置为Manual 。 |
要生成清单,请从包含安装程序的目录中运行以下命令
$ ./openshift-install create manifests --dir <installation_directory>
从包含安装程序的目录中,通过运行以下命令设置包含安装文件发行版镜像的$RELEASE_IMAGE
变量
$ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')
通过运行以下命令从 OpenShift Container Platform 发行版镜像中提取CredentialsRequest
自定义资源 (CR) 列表
$ 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)
1 | --included 参数仅包含特定集群配置所需的清单。 |
2 | 指定 install-config.yaml 文件的位置。 |
3 | 指定要存储 CredentialsRequest 对象的目录路径。如果指定的目录不存在,此命令将创建它。 |
此命令将为每个 CredentialsRequest
对象创建一个 YAML 文件。
CredentialsRequest
对象示例 apiVersion: cloudcredential.openshift.io/v1
kind: CredentialsRequest
metadata:
labels:
controller-tools.k8s.io: "1.0"
name: openshift-image-registry-ibmcos
namespace: openshift-cloud-credential-operator
spec:
secretRef:
name: installer-cloud-credentials
namespace: openshift-image-registry
providerSpec:
apiVersion: cloudcredential.openshift.io/v1
kind: IBMCloudProviderSpec
policies:
- attributes:
- name: serviceName
value: cloud-object-storage
roles:
- crn:v1:bluemix:public:iam::::role:Viewer
- crn:v1:bluemix:public:iam::::role:Operator
- crn:v1:bluemix:public:iam::::role:Editor
- crn:v1:bluemix:public:iam::::serviceRole:Reader
- crn:v1:bluemix:public:iam::::serviceRole:Writer
- attributes:
- name: resourceType
value: resource-group
roles:
- crn:v1:bluemix:public:iam::::role:Viewer
为每个凭据请求创建服务 ID,分配已定义的策略,创建一个 API 密钥并生成密钥。
$ ccoctl ibmcloud create-service-id \
--credentials-requests-dir=<path_to_credential_requests_directory> \(1)
--name=<cluster_name> \(2)
--output-dir=<installation_directory> \(3)
--resource-group-name=<resource_group_name> (4)
1 | 指定包含组件 CredentialsRequest 对象文件的目录。 |
2 | 指定 OpenShift Container Platform 集群的名称。 |
3 | 可选:指定您希望 ccoctl 实用程序创建对象的目录。默认情况下,实用程序在运行命令的目录中创建对象。 |
4 | 可选:指定用于限定访问策略的资源组的名称。 |
如果您的集群使用由 如果提供了不正确的资源组名称,则安装将在引导阶段失败。要查找正确的资源组名称,请运行以下命令
|
确保在集群的 manifests
目录中生成了相应的密钥。
您可以在兼容的云平台上安装 OpenShift Container Platform。
您只能在初始安装期间运行安装程序的 |
您已配置一个帐户,该帐户具有托管您集群的云平台。
您拥有 OpenShift Container Platform 安装程序和集群的拉取密钥。
如果 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像在本地可用,则运行安装程序的主机不需要互联网访问。
您已验证主机上的云提供商帐户具有部署集群的正确权限。权限不正确的帐户会导致安装过程失败,并显示一条错误消息,其中显示缺少的权限。
通过运行以下命令导出 OPENSHIFT_INSTALL_OS_IMAGE_OVERRIDE
变量以指定 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像的位置
$ export OPENSHIFT_INSTALL_OS_IMAGE_OVERRIDE="<path_to_image>/rhcos-<image_version>-ibmcloud.x86_64.qcow2.gz"
切换到包含安装程序的目录并初始化集群部署
$ ./openshift-install create cluster --dir <installation_directory> \ (1)
--log-level=info (2)
1 | 对于 <installation_directory> ,指定您自定义的 ./install-config.yaml 文件的位置。 |
2 | 要查看不同的安装详细信息,请指定 warn 、debug 或 error 代替 info 。 |
集群部署成功完成时
终端将显示访问集群的方向,包括指向 Web 控制台的链接和 kubeadmin
用户的凭据。
凭据信息也会输出到 <installation_directory>/.openshift_install.log
。
不要删除安装程序或安装程序创建的文件。两者都是删除集群所必需的。 |
...
INFO Install complete!
INFO To access the cluster as the system:admin user when using 'oc', run 'export KUBECONFIG=/home/myuser/install_dir/auth/kubeconfig'
INFO Access the OpenShift web-console here: https://console-openshift-console.apps.mycluster.example.com
INFO Login to the console with user: "kubeadmin", and password: "password"
INFO Time elapsed: 36m22s
|
您可以通过导出集群 kubeconfig
文件以默认系统用户的身份登录到您的集群。kubeconfig
文件包含有关集群的信息,CLI 使用这些信息将客户端连接到正确的集群和 API 服务器。该文件特定于某个集群,并在 OpenShift Container Platform 安装期间创建。
您已部署了一个 OpenShift Container Platform 集群。
您已安装 oc
CLI。
导出 kubeadmin
凭据
$ export KUBECONFIG=<installation_directory>/auth/kubeconfig (1)
1 | 对于 <installation_directory> ,请指定您存储安装文件的目录的路径。 |
验证您可以使用导出的配置成功运行 oc
命令
$ oc whoami
system:admin
完成以下步骤以完成集群的配置。
在 OpenShift Container Platform 安装期间,默认情况下会为 OperatorHub 配置从 Red Hat 和社区项目提供的內容获取资源的 Operator 目录。在受限网络环境中,您必须以集群管理员身份禁用默认目录。
通过将 disableAllDefaultSources: true
添加到 OperatorHub
对象来禁用默认目录的源
$ oc patch OperatorHub cluster --type json \
-p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'
或者,您可以使用 Web 控制台来管理目录源。在“管理”→“集群设置”→“配置”→“OperatorHub”页面上,单击“源”选项卡,您可以在其中创建、更新、删除、禁用和启用单个源。 |
使用 oc-mirror OpenShift CLI (oc) 插件镜像 OpenShift Container Platform 内容会创建资源,其中包括 catalogSource-certified-operator-index.yaml
和 imageContentSourcePolicy.yaml
。
ImageContentSourcePolicy
资源将镜像注册表与源注册表关联起来,并将来自联机注册表的镜像拉取请求重定向到镜像注册表。
CatalogSource
资源由 Operator Lifecycle Manager (OLM) 用于检索有关镜像注册表中可用 Operator 的信息,这允许用户发现和安装 Operator。
安装集群后,必须将这些资源安装到集群中。
您已将镜像集镜像到断开连接的环境中的注册表中。
您可以作为具有 cluster-admin
角色的用户访问集群。
以具有 cluster-admin
角色的用户身份登录到 OpenShift CLI。
将结果目录中的 YAML 文件应用于集群
$ oc apply -f ./oc-mirror-workspace/results-<id>/
验证 ImageContentSourcePolicy
资源是否已成功安装
$ oc get imagecontentsourcepolicy
验证 CatalogSource
资源是否已成功安装
$ oc get catalogsource --all-namespaces
在 OpenShift Container Platform 4.17 中,默认情况下运行的遥测服务(用于提供有关集群运行状况和更新成功的指标)需要互联网访问。如果您的集群连接到互联网,则遥测会自动运行,并且您的集群会注册到 OpenShift Cluster Manager。
确认您的 OpenShift Cluster Manager 库存正确后(由遥测自动维护或使用 OpenShift Cluster Manager 手动维护),使用订阅监控在帐户或多集群级别跟踪您的 OpenShift Container Platform 订阅。