$ ssh-keygen -t ed25519 -N '' -f <path>/<file_name> (1)
在 OpenShift Container Platform 4.17 版本中,您可以将集群安装到 IBM Cloud® 上现有的虚拟专用云 (VPC) 中。安装程序会预配其余所需的架构,然后您可以对其进行进一步自定义。要自定义安装,请在安装集群之前修改install-config.yaml
文件中的参数。
您已查看有关OpenShift Container Platform 安装和更新过程的详细信息。
您已阅读有关选择集群安装方法并为用户准备集群的文档。
您已配置了 IBM Cloud® 帐户来托管集群。
如果您使用防火墙,则已将其配置为允许集群需要访问的站点。
您在安装集群之前已配置了ccoctl
实用程序。有关更多信息,请参见配置云凭据操作符实用程序。
在 OpenShift Container Platform 4.17 中,您可以使用现有的 IBM® 虚拟专用云 (VPC) 部署集群。
由于安装程序无法知道现有子网中还有哪些其他组件,因此它无法选择子网 CIDR 等。您必须为将安装集群的子网配置网络。
在安装集群之前,必须正确配置现有的 VPC 及其子网。在此场景中,安装程序不会创建 VPC 或 VPC 子网。
安装程序无法
细分集群使用的网络范围
设置子网的路由表
设置 VPC 选项(如 DHCP)
安装程序要求您使用云提供的 DNS 服务器。不支持使用自定义 DNS 服务器,这会导致安装失败。 |
在 OpenShift Container Platform 4.17 中,您需要访问互联网才能安装集群。
您必须具有互联网访问权限才能:
访问 OpenShift 集群管理器 下载安装程序并执行订阅管理。如果集群具有互联网访问权限并且您没有禁用遥测,则该服务会自动授权您的集群。
访问 Quay.io 获取安装集群所需的软件包。
获取执行集群更新所需的软件包。
如果您的集群无法直接访问互联网,则您可以在您配置的某些类型的基础架构上执行受限网络安装。在此过程中,您将下载所需的内容并使用它来填充包含安装包的镜像注册表。对于某些安装类型,您安装集群的环境将不需要互联网访问。在更新集群之前,请更新镜像注册表的内容。 |
在 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 集群(仅限于 `x86_64`、`ppc64le` 和 `s390x` 架构),请不要创建使用 `ed25519` 算法的密钥。而是创建使用 `rsa` 或 `ecdsa` 算法的密钥。 |
查看 SSH 公钥
$ cat <path>/<file_name>.pub
例如,运行以下命令以查看 `~/.ssh/id_ed25519.pub` 公钥:
$ cat ~/.ssh/id_ed25519.pub
如果尚未添加,请将 SSH 私钥身份添加到您本地用户的 SSH 代理。SSH 代理管理密钥对于对集群节点进行无需密码的 SSH 身份验证是必需的,或者如果您想使用 `./openshift-install gather` 命令。
在某些发行版中,默认的 SSH 私钥身份(例如 `~/.ssh/id_rsa` 和 `~/.ssh/id_dsa`)会自动管理。 |
如果您的本地用户尚未运行 `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 公钥。
在安装 OpenShift Container Platform 之前,请在您用于安装的主机上下载安装文件。
您需要一台运行 Linux 或 macOS 的计算机,并具有 500 MB 的本地磁盘空间。
转到 Red Hat Hybrid Cloud Console 上的 集群类型 页面。如果您有 Red Hat 帐户,请使用您的凭据登录。如果没有,请创建一个帐户。
从页面的“自行运行”部分选择您的基础架构提供商。
从“OpenShift 安装程序”下的下拉菜单中选择您的主机操作系统和架构,然后单击“下载安装程序”。
将下载的文件放在您要存储安装配置文件的目录中。
|
解压安装程序。例如,在使用 Linux 操作系统的计算机上,运行以下命令:
$ tar -xvf openshift-install-linux.tar.gz
从 Red Hat OpenShift 集群管理器下载您的安装 pull 密钥。此 pull 密钥允许您对包含的授权机构提供的服务进行身份验证,包括提供 OpenShift Container Platform 组件的容器映像的 Quay.io。
或者,您可以从 Red Hat 客户门户 检索安装程序,您可以在其中指定要下载的安装程序版本。但是,您必须拥有有效的订阅才能访问此页面。 |
您必须将您创建的 API 密钥设置为全局变量;安装程序在启动期间会读取该变量以设置 API 密钥。
您已为您的 IBM Cloud® 帐户创建了用户 API 密钥或服务 ID API 密钥。
将您的帐户 API 密钥导出为全局变量
$ export IBMCLOUD_API_KEY=<api_key>
您必须完全按照指定的名称设置变量名;安装程序期望在启动期间存在该变量名。 |
您可以自定义在其中安装 OpenShift Container Platform 集群。
您拥有 OpenShift Container Platform 安装程序和集群的拉取密钥。
创建install-config.yaml
文件。
切换到包含安装程序的目录并运行以下命令
$ ./openshift-install create install-config --dir <installation_directory> (1)
1 | 对于<installation_directory> ,请指定用于存储安装程序创建文件的目录名称。 |
指定目录时
请使用空目录。某些安装资源(例如引导 X.509 证书)的有效期很短,因此您不能重复使用安装目录。如果您想重复使用另一个集群安装中的单个文件,可以将它们复制到您的目录中。但是,安装资源的文件名可能会在不同版本之间发生变化。从早期 OpenShift Container Platform 版本复制安装文件时,请谨慎操作。
始终删除
|
在提示符下,提供云的配置详细信息。
可选:选择一个 SSH 密钥来访问您的集群机器。
对于您要在其上执行安装调试或灾难恢复的生产 OpenShift Container Platform 集群,请指定您的 |
选择powervs 作为目标平台。
选择要将集群部署到的区域。
选择要将集群部署到的区域。
选择要将集群部署到的基础域。基础域对应于您为集群创建的公共 DNS 区域。
输入集群的描述性名称。
修改install-config.yaml
文件。您可以在“安装配置参数”部分找到有关可用参数的更多信息。
备份install-config.yaml
文件,以便您可以使用它来安装多个集群。
|
每个集群机器必须满足以下最低要求
机器 | 操作系统 | vCPU [1] | 虚拟内存 | 存储 | 每秒输入/输出次数 (IOPS)[2] |
---|---|---|---|---|---|
引导程序 |
RHCOS |
4 |
16 GB |
100 GB |
300 |
控制平面 |
RHCOS |
4 |
16 GB |
100 GB |
300 |
计算 |
RHCOS,RHEL 8.6 及更高版本 [3] |
2 |
8 GB |
100 GB |
300 |
当未启用同时多线程 (SMT) 或超线程时,一个 vCPU 等于一个物理核心。启用时,请使用以下公式计算相应的比率:(每个核心的线程数 × 核心数)× 插槽数 = vCPU 数。
OpenShift Container Platform 和 Kubernetes 对磁盘性能很敏感,建议使用更快的存储,特别是对于控制平面节点上的 etcd,它需要 10 毫秒 p99 fsync 持续时间。请注意,在许多云平台上,存储大小和 IOPS 是成比例缩放的,因此您可能需要过度分配存储卷才能获得足够的性能。
与所有用户配置的安装一样,如果您选择在集群中使用 RHEL 计算机器,则您需要负责所有操作系统的生命周期管理和维护,包括执行系统更新、应用补丁以及完成所有其他必需的任务。RHEL 7 计算机的使用已被弃用,并在 OpenShift Container Platform 4.10 及更高版本中被移除。
从 OpenShift Container Platform 4.13 版本开始,RHCOS 基于 RHEL 9.2 版本,更新了微架构要求。以下列表包含每个架构所需的最低指令集架构 (ISA):
更多信息,请参见 RHEL 架构。 |
如果平台的实例类型满足集群机器的最低要求,则支持在 OpenShift Container Platform 中使用它。
您可以自定义install-config.yaml
文件以指定有关 OpenShift Container Platform 集群平台的更多详细信息,或修改所需参数的值。
此 YAML 文件示例仅供参考。您必须使用安装程序获取您的 |
apiVersion: v1
baseDomain: example.com
compute: (1) (2)
- architecture: ppc64le
hyperthreading: Enabled (3)
name: worker
platform:
powervs:
smtLevel: 8 (4)
replicas: 3
controlPlane: (1) (2)
architecture: ppc64le
hyperthreading: Enabled (3)
name: master
platform:
powervs:
smtLevel: 8 (4)
replicas: 3
metadata:
creationTimestamp: null
name: example-cluster-existing-vpc
networking:
clusterNetwork:
- cidr: 10.128.0.0/14 (5)
hostPrefix: 23
machineNetwork:
- cidr: 192.168.0.0/24
networkType: OVNKubernetes (6)
serviceNetwork:
- 172.30.0.0/16
platform:
powervs:
userID: ibm-user-id
powervsResourceGroup: "ibmcloud-resource-group"
region: powervs-region
vpcRegion : vpc-region
vpcName: name-of-existing-vpc (7)
zone: powervs-zone
serviceInstanceGUID: "powervs-region-service-instance-guid"
credentialsMode: Manual
publish: External (8)
pullSecret: '{"auths": ...}' (9)
fips: false
sshKey: ssh-ed25519 AAAA... (10)
1 | 如果您不提供这些参数和值,安装程序将提供默认值。 | ||||
2 | controlPlane 部分是单个映射,但compute 部分是映射序列。为了满足不同数据结构的要求,compute 部分的第一行必须以连字符- 开头,而controlPlane 部分的第一行则不能。这两个部分目前都定义了一个单机池。只使用一个控制平面池。 |
||||
3 | 是否启用或禁用同时多线程或超线程 。默认情况下,启用同时多线程以提高机器内核的性能。您可以通过将参数值设置为Disabled 来禁用它。如果您在某些集群机器中禁用了同时多线程,则必须在所有集群机器中禁用它。 |
||||
4 | smtLevel 指定要设置为控制平面和计算机的 SMT 级别。支持的值为 1、2、4、8、'off' 和 'on' 。默认值为 8。smtLevel 'off' 将 SMT 设置为关闭,smtLevel 'on' 将 SMT 设置为集群节点上的默认值 8。
|
||||
5 | 机器 CIDR 必须包含计算机器和控制平面机器的子网。 | ||||
6 | 安装的集群网络插件。支持的值为OVNKubernetes 。 |
||||
7 | 指定现有 VPC 的名称。 | ||||
8 | 指定如何发布集群的用户可见端点。 | ||||
9 | 必需。安装程序会提示您输入此值。 | ||||
10 | 提供您用于访问集群中机器的sshKey 值。
|
生产环境可能会拒绝直接访问互联网,而是提供 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 的 config map,位于openshift-config 命名空间中,其中包含代理 HTTPS 连接所需的一个或多个其他 CA 证书。然后,集群网络操作员将创建一个trusted-ca-bundle config map,将这些内容与 Red Hat Enterprise Linux CoreOS (RHCOS) 信任捆绑包合并,并且此 config map 在Proxy 对象的trustedCA 字段中引用。除非代理的身份证书由 RHCOS 信任捆绑包中的授权机构签名,否则需要additionalTrustBundle 字段。 |
5 | 可选:确定Proxy 对象的配置策略,以在trustedCA 字段中引用user-ca-bundle config map。允许的值为Proxyonly 和Always 。使用Proxyonly 仅在配置http/https 代理时引用user-ca-bundle config map。使用Always 始终引用user-ca-bundle config map。默认值为Proxyonly 。 |
安装程序不支持代理 |
如果安装程序超时,请重启,然后使用安装程序的
|
保存文件并在安装 OpenShift Container Platform 时引用它。
安装程序将创建一个名为cluster
的集群范围代理,该代理使用install-config.yaml
文件中提供的代理设置。如果未提供代理设置,则仍将创建cluster
Proxy
对象,但它将具有 nil spec
。
仅支持名为 |
安装集群需要云凭证操作员 (CCO) 在手动模式下运行。虽然安装程序将 CCO 配置为手动模式,但您必须为您的云提供商指定身份和访问管理密钥。
您可以使用云凭证操作员 (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: ppc64le
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 安装程序和集群的拉取密钥。
您已验证主机上的云提供商帐户是否具有部署集群的正确权限。权限不正确的帐户会导致安装过程失败,并显示一条错误消息,其中显示缺少的权限。
更改到包含安装程序的目录并初始化集群部署:
$ ./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
|
您可以安装 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>
您可以通过导出集群 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 4.17 中,默认运行的遥测服务(用于提供有关集群健康状况和更新成功的指标)需要互联网访问。如果您的集群连接到互联网,则遥测会自动运行,并且您的集群会注册到OpenShift 集群管理器。
确认您的OpenShift 集群管理器清单正确无误后(由遥测自动维护或手动使用 OpenShift 集群管理器维护),使用订阅监控来跟踪您在帐户或多集群级别上的 OpenShift Container Platform 订阅。