6.4. 在 GCP 上快速安装集群
在 OpenShift Container Platform 版本 4.8 中,您可以使用默认配置选项在 Google Cloud Platform(GCP)上安装集群。
6.4.1. 先决条件
- 您可以参阅有关 OpenShift Container Platform 安装和更新流程的详细信息。
- 您可以阅读有关选择集群安装方法的文档,并为用户准备它。
- 已将 GCP 项目配置为托管集群。
- 如果使用防火墙,则必须将其配置为允许集群需要访问的站点。
-
如果环境中无法访问云身份和访问管理(IAM)API,或者不想将管理员级别的凭证 secret 存储在
kube-system
命名空间中,您可以手动创建和维护 IAM 凭证。
6.4.2. OpenShift Container Platform 的互联网访问
在 OpenShift Container Platform 4.8 中,您需要访问互联网来安装集群。
您必须具有以下互联网访问权限:
- 访问 OpenShift Cluster Manager 以下载安装程序并执行订阅管理。如果集群可以访问互联网,并且没有禁用 Telemetry,该服务会自动授权您的集群。
- 访问 Quay.io,以获取安装集群所需的软件包。
- 获取执行集群更新所需的软件包。
如果您的集群无法直接访问互联网,则可以在置备的某些类基础架构上执行受限网络安装。在此过程中,您要下载所需的内容,并使用它在镜像 registry(mirror registry) 中填充安装集群并生成安装程序所需的软件包。对于某些安装类型,集群要安装到的环境不需要访问互联网。在更新集群之前,要更新 registry 镜像系统中的内容。
6.4.3. 为集群节点的 SSH 访问生成密钥对
在 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
目录中。
注意如果您计划在
x86_64
架构中安装使用 FIPS 验证的/Modules in Process 加密库的 OpenShift Container Platform 集群,不要创建使用ed25519
算法的密钥。反之,创建一个使用rsa
或ecdsa
算法的密钥。查看公共 SSH 密钥:
$ cat <path>/<file_name>.pub
例如,运行以下命令查看
~/.ssh/id_ed25519.pub
公钥:$ cat ~/.ssh/id_ed25519.pub
将 SSH 私钥身份添加到您本地用户的 SSH 代理(如果尚未添加)。在集群节点上进行免密码 SSH 身份验证,或者您想要使用
./openshift-install gather
命令,则需要使用 SSH 代理进行管理。注意在某些发行版中,会自动管理默认 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>)
将
GOOGLE_APPLICATION_CREDENTIALS
环境变量设置为服务帐户私钥文件的完整路径。$ export GOOGLE_APPLICATION_CREDENTIALS="<your_service_account_file>"
验证是否应用了凭证。
$ gcloud auth list
后续步骤
- 在安装 OpenShift Container Platform 时,为安装程序提供 SSH 公钥。
6.4.4. 获取安装程序
在安装 OpenShift Container Platform 之前,将安装文件下载到本地计算机上。
先决条件
- 运行 Linux 或 macOS 的计算机,本地磁盘空间为 500 MB
流程
- 访问 OpenShift Cluster Manager 站点的 Infrastructure Provider 页面。如果您有红帽帐号,请使用自己的凭证登录。如果没有,请创建一个帐户。
- 选择您的基础架构供应商。
进入适用于您的安装类型的页面,下载您的操作系统的安装程序,并将文件放在要保存安装配置文件的目录中。。
重要安装程序会在用来安装集群的计算机上创建若干文件。在完成集群安装后,您必须保留安装程序和安装程序所创建的文件。这两个文件都需要删除集群。
重要删除安装程序创建的文件不会删除您的集群,即使集群在安装过程中失败也是如此。要删除集群,为特定云供应商完成 OpenShift Container Platform 卸载流程。
提取安装程序。例如,在使用 Linux 操作系统的计算机上运行以下命令:
$ tar xvf openshift-install-linux.tar.gz
- 从 Red Hat OpenShift Cluster Manager 下载安装 pull secret。通过此 pull secret,您可以进行所含授权机构提供的服务的身份验证,这些服务包括为 OpenShift Container Platform 组件提供容器镜像的 Quay.io。
6.4.5. 部署集群
您可以在兼容云平台中安装 OpenShift Container Platform。
安装程序的 create cluster
命令只能在初始安装过程中运行一次。
先决条件
- 配置托管集群的云平台的帐户。
- 获取 OpenShift Container Platform 安装程序以及集群的 pull secret。
流程
对于存储在以下位置的任何现有 GCP 凭证,删除不使用您为集群配置的 GCP 帐户的服务帐户密钥的凭证:
-
GOOGLE_CREDENTIALS
、GOOGLE_CLOUD_KEYFILE_JSON
或GCLOUD_KEYFILE_JSON
环境变量 -
~/.gcp/osServiceAccount.json
文件 -
gcloud cli
默认凭证
-
更改为包含安装程序的目录并初始化集群部署:
$ ./openshift-install create cluster --dir <installation_directory> \ 1 --log-level=info 2
重要指定一个空目录。一些安装信息,如 bootstrap X.509 证书,有较短的过期间隔,因此不要重复使用安装目录。如果要重复使用另一个集群安装中的个别文件,可以将其复制到您的目录中。但是,一些安装数据的文件名可能会在发行版本之间有所改变。从 OpenShift Container Platform 老版本中复制安装文件时要格外小心。
在提示符处提供值:
可选:选择用来访问集群机器的 SSH 密钥。
注意对于您要在其上执行安装调试或灾难恢复的生产环境 OpenShift Container Platform 集群,请指定
ssh-agent
进程使用的 SSH 密钥。- 选择 gcp 作为目标平台。
- 如果您没有为计算机上的 GCP 帐户配置服务帐户密钥,则必须从 GCP 获取,并粘贴文件的内容或输入文件的绝对路径。
- 选择要在其中置备集群的项目 ID。默认值由您配置的服务帐户指定。
- 选择要在其中部署集群的区域。
- 选择集群要部署到的基域。基域与您为集群创建的公共 DNS 区对应。
- 为集群输入一个描述性名称。如果您提供的名称超过 6 个字符,只有前 6 个字符会用在从集群名称生成的基础架构 ID 中。
- 粘贴 Red Hat OpenShift Cluster Manager 中的 pull secret。
注意如果您在主机上配置的云供应商帐户没有足够的权限来部署集群,安装过程将会停止,并且显示缺少的权限。
集群部署完成后,终端会显示访问集群的信息,包括指向其 Web 控制台的链接和
kubeadmin
用户的凭证。输出示例
... 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: "4vYBz-Ee6gm-ymBZj-Wt5AL" INFO Time elapsed: 36m22s
注意当安装成功时,集群访问和凭证信息还会输出到
<installation_directory>/.openshift_install.log
。重要-
安装程序生成的 Ignition 配置文件包含在 24 小时后过期的证书,然后在过期时进行续订。如果在更新证书前关闭集群,且集群在 24 小时后重启,集群会自动恢复过期的证书。一个例外情况是,您需要手动批准待处理的
node-bootstrapper
证书签名请求(CSR)来恢复 kubelet 证书。如需更多信息,请参阅从过期的 control plane 证书中恢复的文档。 - 建议您在生成 12 小时后使用 Ignition 配置文件,因为集群安装后 24 小时证书从 16 小时轮转至 22 小时。通过在 12 小时内使用 Ignition 配置文件,您可以避免在安装过程中运行证书更新时避免安装失败。
重要您不得删除安装程序或安装程序所创建的文件。需要这两者才能删除集群。
可选:您可以减少用于安装集群的服务帐户的权限数。
-
如果将
Owner
角色分配给您的服务帐户,您可以删除该角色并使用Viewer
角色替换。 -
如果您包含
Service Account Key Admin
角色,您可以将其删除。
-
如果将
6.4.6. 通过下载二进制文件安装 OpenShift CLI
您需要安装 CLI(oc
) 来使用命令行界面与 OpenShift Container Platform 进行交互。您可在 Linux 、Windows 或 macOS 上安装 oc
。
如果安装了旧版本的 oc
,则无法使用 OpenShift Container Platform 4.8 中的所有命令。下载并安装新版本的 oc
。
在 Linux 上安装 OpenShift CLI
您可以按照以下流程在 Linux 上安装 OpenShift CLI(oc
)二进制文件。
流程
- 进入到红帽客户门户网站上的 OpenShift Container Platform 下载页面。
- 在 Version 下拉菜单中选择相应的版本。
- 单击 OpenShift v4.8 Linux 客户端 条目旁边的 Download Now,再保存文件。
解包存档:
$ tar xvzf <file>
把
oc
二进制代码放到PATH
中的目录中。执行以下命令可以查看当前的
PATH
设置:$ echo $PATH
安装 OpenShift CLI 后,可以使用 oc
命令:
$ oc <command>
在 Windows 上安装 OpenShift CLI
您可以按照以下流程在 Windows 上安装 OpenShift CLI(oc
)二进制代码。
流程
- 进入到红帽客户门户网站上的 OpenShift Container Platform 下载页面。
- 在 Version 下拉菜单中选择相应的版本。
- 单击 OpenShift v4.8 Windows 客户端 条目旁边的 Download Now,再保存文件。
- 使用 ZIP 程序解压存档。
把
oc
二进制代码放到PATH
中的目录中。要查看您的
PATH
,请打开命令提示窗口并执行以下命令:C:\> path
安装 OpenShift CLI 后,可以使用 oc
命令:
C:\> oc <command>
在 macOS 上安装 OpenShift CLI
您可以按照以下流程在 macOS 上安装 OpenShift CLI(oc
)二进制代码。
流程
- 进入到红帽客户门户网站上的 OpenShift Container Platform 下载页面。
- 在 Version 下拉菜单中选择相应的版本。
- 单击 OpenShift v4.8 MacOSX 客户端 条目旁边的 Download Now,再保存文件。
- 解包和解压存档。
将
oc
二进制文件移到 PATH 的目录中。要查看您的
PATH
,打开一个终端窗口并执行以下命令:$ echo $PATH
安装 OpenShift CLI 后,可以使用 oc
命令:
$ oc <command>
6.4.7. 使用 CLI 登录到集群
您可以通过导出集群 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 Web 控制台的更多信息,请参阅访问 Web 控制台。
6.4.8. OpenShift Container Platform 的 Telemetry 访问
在 OpenShift Container Platform 4.8 中,默认运行的 Telemetry 服务提供有关集群健康状况和成功更新的指标,需要访问互联网。如果您的集群连接到互联网,Telemetry 会自动运行,而且集群会注册到 OpenShift Cluster Manager。
确认 OpenShift Cluster Manager 清单正确后,可以由 Telemetry 自动维护,也可以使用 OpenShift Cluster Manager 手动维护,使用订阅监控来跟踪帐户或多集群级别的 OpenShift Container Platform 订阅。
其他资源
- 有关 Telemetry 服务的更多信息,请参阅关于远程健康监控。
6.4.9. 后续步骤
- 自定义集群。
- 如果需要,您可以选择不使用远程健康报告。