$ ssh-keygen -t ed25519 -N '' -f <path>/<file_name> (1)
在 OpenShift Container Platform 4.17 版本中,您可以将私有集群安装到现有的 VPC 和 IBM Power® 虚拟服务器工作区中。安装程序会预配其余所需的的基础架构,您可以进一步自定义它。要自定义安装,请在安装集群之前修改install-config.yaml
文件中的参数。
您已查看有关OpenShift Container Platform 安装和更新过程的详细信息。
您已阅读有关选择集群安装方法并为用户准备它的文档。
您已配置了 IBM Cloud® 帐户来托管集群。
如果您使用防火墙,则已将其配置为允许集群需要访问的站点。
您在安装集群之前配置了ccoctl
实用程序。有关更多信息,请参见配置云凭据操作符实用程序。
您可以部署一个不公开外部端点的私有 OpenShift Container Platform 集群。私有集群只能从内部网络访问,并且对互联网不可见。
默认情况下,OpenShift Container Platform 被预配为使用公共可访问的 DNS 和端点。当您部署集群时,私有集群会将 DNS、入口控制器和 API 服务器设置为私有。这意味着集群资源只能从您的内部网络访问,并且对互联网不可见。
如果集群有任何公共子网,管理员创建的负载均衡器服务可能可以公开访问。为了确保集群安全,请验证这些服务是否被明确地注释为私有。 |
要部署私有集群,您必须
使用满足您要求的现有网络。
使用 IBM Cloud® DNS 服务创建一个 DNS 区域,并将其指定为集群的基础域。有关更多信息,请参见“使用 IBM Cloud® DNS 服务配置 DNS 解析”。
从具有访问权限的机器部署
您要预配到的云的 API 服务。
您要预配的网络上的主机。
互联网以获取安装介质。
您可以使用任何符合这些访问要求并遵循公司准则的机器。例如,这台机器可以是云网络上的堡垒主机,或者可以通过 VPN 访问网络的机器。
要在 IBM Power® 虚拟服务器上创建私有集群,您必须提供现有的私有虚拟私有云 (VPC) 和子网来托管集群。安装程序还必须能够解析集群所需的 DNS 记录。安装程序仅为内部流量配置 Ingress 运算符和 API 服务器。
集群仍然需要访问互联网才能访问 IBM Cloud® API。
安装私有集群时,不需要或不会创建以下项目:
公有子网
支持公共 Ingress 的公共网络负载均衡器
与集群的baseDomain
匹配的公共 DNS 区域
您还需要创建一个包含与您的baseDomain
匹配的 DNS 区域的 IBM® DNS 服务。与使用 IBM® CIS 进行 DNS 的 Power VS 上的标准部署不同,您必须为您的 DNS 服务使用 IBM® DNS。
您必须在安装集群之前正确配置现有的 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 目录中。 |
查看公共 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
将您的 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 混合云控制台上的集群类型页面。如果您有 Red Hat 帐户,请使用您的凭据登录。如果没有,请创建一个帐户。
从页面上的“自行运行”部分选择您的基础架构提供商。
从OpenShift 安装程序下的下拉菜单中选择您的主机操作系统和架构,然后单击下载安装程序。
将下载的文件放置在您想要存储安装配置文件的目录中。
|
解压安装程序。例如,在使用 Linux 操作系统的计算机上,运行以下命令
$ tar -xvf openshift-install-linux.tar.gz
从 Red Hat OpenShift 集群管理器下载您的安装拉取密钥。此拉取密钥允许您对包含的授权机构(包括提供 OpenShift Container Platform 组件容器映像的 Quay.io)提供的服务进行身份验证。
或者,您可以从Red Hat 客户门户检索安装程序,您可以在其中指定要下载的安装程序版本。但是,您必须拥有有效的订阅才能访问此页面。 |
您必须将创建的 API 密钥设置为全局变量;安装程序在启动期间会提取该变量以设置 API 密钥。
您已为您的 IBM Cloud® 帐户创建了用户 API 密钥或服务 ID API 密钥。
将您的帐户 API 密钥导出为全局变量
$ export IBMCLOUD_API_KEY=<api_key>
您必须完全按照指定的名称设置变量名;安装程序需要在启动时存在该变量名。 |
安装集群需要您手动创建安装配置文件。
您在本地机器上有一个 SSH 公钥,需要提供给安装程序。该密钥将用于对集群节点进行 SSH 身份验证,以便进行调试和灾难恢复。
您已获得 OpenShift Container Platform 安装程序和集群的拉取密钥。
创建一个安装目录来存储所需的安装资源
$ mkdir <installation_directory>
您必须创建一个目录。某些安装资源(如引导 X.509 证书)的有效期很短,因此您不能重用安装目录。如果您想重用来自另一个集群安装的单个文件,您可以将它们复制到您的目录中。但是,安装资源的文件名在不同版本之间可能会发生变化。从较早版本的 OpenShift Container Platform 复制安装文件时,请务必小心。 |
自定义提供的示例install-config.yaml
文件模板,并将其保存到<installation_directory>
中。
您必须将此配置文件命名为 |
备份install-config.yaml
文件,以便您可以使用它来安装多个集群。
|
每台集群机器必须满足以下最低要求
机器 | 操作系统 | vCPU [1] | 虚拟 RAM | 存储 | 每秒输入/输出次数 (IOPS)[2] |
---|---|---|---|---|---|
引导程序 |
RHCOS |
2 |
16 GB |
100 GB |
300 |
控制平面 |
RHCOS |
2 |
16 GB |
100 GB |
300 |
计算 |
RHCOS |
2 |
8 GB |
100 GB |
300 |
当未启用同时多线程 (SMT) 或超线程时,一个 vCPU 等于一个物理核心。启用时,请使用以下公式计算相应的比率:(每个核心的线程数 × 核心数)× 插槽数 = vCPU 数。
OpenShift Container Platform 和 Kubernetes 对磁盘性能很敏感,建议使用更快的存储,尤其是在控制平面节点上的 etcd。请注意,在许多云平台上,存储大小和 IOPS 是成比例缩放的,因此您可能需要过度分配存储卷才能获得足够的性能。
从 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-private-cluster-name
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
vpcName: name-of-existing-vpc (7)
vpcRegion : vpc-region
zone: powervs-zone
serviceInstanceGUID: "powervs-region-service-instance-guid"
publish: Internal (8)
pullSecret: '{"auths": ...}' (9)
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 | 指定如何发布集群面向用户的端点。将 publish 设置为 Internal 可部署私有集群。 |
||||
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,该 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安装程序和集群的pull密钥。
您已验证主机上的云提供商帐户具有部署集群的正确权限。权限不正确的帐户会导致安装过程失败,并显示错误消息,指出缺少的权限。
切换到包含安装程序的目录并初始化集群部署
$ ./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 Cluster Manager。
确认您的OpenShift Cluster Manager清单正确后(由遥测自动维护或使用OpenShift Cluster Manager手动维护),使用订阅监控来跟踪您在帐户或多集群级别的OpenShift Container Platform订阅。