$ ssh-keygen -t ed25519 -N '' -f <path>/<file_name> (1)
在 OpenShift Container Platform 4.17 版本中,您可以在安装程序在 IBM Cloud® 上配置的基础架构上安装自定义集群。要自定义安装,请在安装集群之前修改install-config.yaml
文件中的参数。
您已查看有关OpenShift Container Platform 安装和更新过程的详细信息。
您已阅读有关选择集群安装方法并为用户准备集群的文档。
您已配置 IBM Cloud® 帐户来托管集群。
如果您使用防火墙,则已将其配置为允许集群需要访问的站点。
您在安装集群之前配置了ccoctl
实用程序。有关更多信息,请参阅为 IBM Cloud® 配置 IAM。
在 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 集群(仅限于 |
查看 SSH 公钥
$ cat <path>/<file_name>.pub
例如,运行以下命令查看~/.ssh/id_ed25519.pub
公钥:
$ cat ~/.ssh/id_ed25519.pub
如果尚未添加,请将 SSH 私钥身份添加到本地用户的 SSH 代理。对于无密码 SSH 身份验证到您的集群节点,或者如果您想使用./openshift-install gather
命令,都需要 SSH 代理管理密钥。
在某些发行版中,默认的 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 公钥。
在安装 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 secret。此 pull secret 允许您对包含的授权机构提供的服务进行身份验证,包括提供 OpenShift Container Platform 组件容器镜像的 Quay.io。
或者,您可以从Red Hat 客户门户检索安装程序,您可以在其中指定要下载的安装程序版本。但是,您必须拥有有效的订阅才能访问此页面。 |
您必须将创建的 API 密钥设置为全局变量;安装程序在启动期间会提取该变量以设置 API 密钥。
您已为您的 IBM Cloud® 帐户创建了用户 API 密钥或服务 ID API 密钥。
将您的帐户 API 密钥导出为全局变量:
$ export IC_API_KEY=<api_key>
您必须完全按照指定设置变量名称;安装程序需要在启动时存在该变量名称。 |
您可以自定义在 IBM Cloud® 上安装的 OpenShift Container Platform 集群。
您拥有 OpenShift Container Platform 安装程序和集群的 pull secret。
创建install-config.yaml
文件。
切换到包含安装程序的目录,并运行以下命令:
$ ./openshift-install create install-config --dir <installation_directory> (1)
1 | 对于<installation_directory> ,请指定用于存储安装程序创建文件的目录名称。 |
指定目录时:
验证该目录是否具有execute
权限。此权限是在安装目录下运行 Terraform 二进制文件所必需的。
使用空目录。某些安装资源(例如引导 X.509 证书)的有效期很短,因此您不能重复使用安装目录。如果您想重用另一个集群安装中的单个文件,您可以将它们复制到您的目录中。但是,安装资源的文件名可能会在不同版本之间发生变化。从较早的 OpenShift Container Platform 版本复制安装文件时,请谨慎操作。
在提示符下,提供云的配置详细信息。
可选:选择用于访问集群机器的 SSH 密钥。
对于要执行安装调试或灾难恢复的生产 OpenShift Container Platform 集群,请指定您的 |
选择ibmcloud作为目标平台。
选择要部署集群的区域。
选择要部署集群的基础域名。基础域名对应于您为集群创建的公共 DNS 区域。
输入集群的描述性名称。
修改install-config.yaml
文件。您可以在“安装配置参数”部分找到有关可用参数的更多信息。
备份install-config.yaml
文件,以便您可以使用它安装多个集群。
|
每个集群机器必须满足以下最低要求
机器 | 操作系统 | vCPU | 虚拟内存 | 存储 | 每秒输入/输出次数 (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:
ibmcloud: {}
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
hostPrefix: 23
machineNetwork:
- cidr: 10.0.0.0/16
networkType: OVNKubernetes (5)
serviceNetwork:
- 172.30.0.0/16
platform:
ibmcloud:
region: us-south (1)
credentialsMode: Manual
publish: External
pullSecret: '{"auths": ...}' (1)
fips: false (6)
sshKey: ssh-ed25519 AAAA... (7)
1 | 必需。安装程序会提示您输入此值。 | ||
2 | 如果您不提供这些参数和值,安装程序将提供默认值。 | ||
3 | controlPlane 部分是单个映射,但compute 部分是映射序列。为了满足不同数据结构的要求,compute 部分的第一行必须以连字符- 开头,而controlPlane 部分的第一行则不能。只使用一个控制平面池。 |
||
4 | 启用或禁用同时多线程处理,也称为超线程。默认情况下,启用同时多线程处理以提高机器内核的性能。您可以将其参数值设置为Disabled 来禁用它。如果您在某些集群机器中禁用了同时多线程处理,则必须在所有集群机器中禁用它。
|
||
5 | 要安装的集群网络插件。默认值OVNKubernetes 是唯一受支持的值。 |
||
6 | 启用或禁用 FIPS 模式。默认情况下,FIPS 模式未启用。如果启用 FIPS 模式,则运行 OpenShift Container Platform 的 Red Hat Enterprise Linux CoreOS (RHCOS) 机器将绕过默认的 Kubernetes 加密套件,而是使用随 RHCOS 提供的加密模块。
|
||
7 | 可选:提供您用于访问集群中机器的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 | 如果提供,安装程序将在openshift-config 命名空间中生成一个名为user-ca-bundle 的配置映射,其中包含代理 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
对象,但它将具有空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: 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 安装程序和集群的 pull secret。
您已验证主机上的云提供商帐户是否具有部署集群的正确权限。权限不正确的帐户会导致安装过程失败,并显示一条错误消息,其中显示缺少的权限。
更改到包含安装程序的目录并初始化集群部署
$ ./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 订阅。
如有必要,您可以选择退出远程健康报告。