$ ssh-keygen -t ed25519 -N '' -f <path>/<file_name> (1)
在 OpenShift Container Platform 4.17 版本中,您可以在安装程序在 IBM Power Virtual Server 上配置的基础架构上安装自定义集群。要自定义安装,请在安装集群之前修改install-config.yaml
文件中的参数。
您已查看有关OpenShift Container Platform 安装和更新流程的详细信息。
您已阅读有关选择集群安装方法并为用户准备集群的文档。
您已配置了 IBM Cloud® 帐户 来托管集群。
如果您使用防火墙,则已配置它以允许集群需要访问的站点。
您在安装集群之前配置了ccoctl
实用程序。有关更多信息,请参阅配置 Cloud Credential Operator 实用程序。
在 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/id_rsa` 和 `~/.ssh/id_dsa`)会自动管理。 |
如果本地用户的 `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 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 IBMCLOUD_API_KEY=<api_key>
您必须准确按照指定的名称设置变量名;安装程序期望在启动期间存在该变量名。 |
您可以自定义安装的 OpenShift Container Platform 集群。
您拥有 OpenShift Container Platform 安装程序和集群的 pull secret。
创建 `install-config.yaml` 文件。
切换到包含安装程序的目录并运行以下命令:
$ ./openshift-install create install-config --dir <installation_directory> (1)
1 | 对于 `<installation_directory>`,指定存储安装程序创建文件的目录名。 |
指定目录时:
使用空目录。某些安装资源(例如 bootstrap X.509 证书)的过期时间间隔很短,因此您不能重用安装目录。如果您想重用另一个集群安装的单个文件,您可以将它们复制到您的目录中。但是,安装资源的文件名可能会在不同版本之间发生变化。从较早的 OpenShift Container Platform 版本复制安装文件时,请谨慎操作。
始终删除 `~/.powervs` 目录以避免重用过时的配置。运行以下命令:
|
在提示符下,提供云的配置详细信息。
可选:选择一个 SSH 密钥来访问您的集群机器。
对于要执行安装调试或灾难恢复的生产 OpenShift Container Platform 集群,请指定 `ssh-agent` 进程使用的 SSH 密钥。 |
选择 **powervs** 作为目标平台。
选择要部署集群的区域。
选择要部署集群的区域。
选择要部署集群的基础域。基础域对应于您为集群创建的公共 DNS 区域。
输入集群的描述性名称。
修改install-config.yaml
文件。您可以在“安装配置参数”部分找到有关可用参数的更多信息。
备份install-config.yaml
文件,以便您可以使用它来安装多个集群。
|
install-config.yaml
文件示例您可以自定义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-name
networking:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
machineNetwork:
- cidr: 192.168.0.0/24
networkType: OVNKubernetes (5)
serviceNetwork:
- 172.30.0.0/16
platform:
powervs:
userID: ibm-user-id
region: powervs-region
zone: powervs-zone
powervsResourceGroup: "ibmcloud-resource-group" (6)
serviceInstanceGUID: "powervs-region-service-instance-guid"
vpcRegion : vpc-region
publish: External
pullSecret: '{"auths": ...}' (7)
sshKey: ssh-ed25519 AAAA... (8)
1 | 如果您不提供这些参数和值,安装程序将提供默认值。 | ||
2 | controlPlane 部分是一个单映射,但compute 部分是一系列映射。为了满足不同数据结构的要求,compute 部分的第一行必须以连字符- 开头,而controlPlane 部分的第一行则不能。尽管这两个部分目前都定义了一个单机池,但 OpenShift Container Platform 可能会在安装期间支持定义多个计算池。仅使用一个控制平面池。 |
||
3 | 是否启用或禁用同时多线程处理或超线程 。默认情况下,启用同时多线程处理以提高机器内核的性能。您可以将其设置为Disabled 来禁用它。如果在某些集群机器中禁用同时多线程处理,则必须在所有集群机器中禁用它。
|
||
4 | smtLevel 指定要设置为控制平面和计算机的 SMT 级别。支持的值为 1、2、4、8、'off' 和'on' 。默认值为 8。smtLevel 设置为'off' 将 SMT 关闭,smtLevel 设置为'on' 将集群节点上的 SMT 设置为默认值 8。
|
||
5 | 要安装的集群网络插件。默认值OVNKubernetes 是唯一支持的值。 |
||
6 | 现有资源组的名称。 | ||
7 | 必需。安装程序会提示您输入此值。
|
生产环境可能会拒绝直接访问互联网,而是提供 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
对象,但它将具有 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 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 Clients 条目旁边的立即下载,然后保存文件。
解压存档
$ 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 Client条目旁边的立即下载,然后保存文件。
使用 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 Clients条目旁边的立即下载,然后保存文件。
对于 macOS arm64,请选择OpenShift v4.17 macOS arm64 Client条目。 |
解压并解压缩存档。
将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 订阅。
如有必要,您可以选择退出远程运行状况报告