$ ssh-keygen -t ed25519 -N '' -f <path>/<file_name> (1)
在 OpenShift Container Platform 4.17 版本中,您可以将集群安装到 Google Cloud Platform (GCP) 上的共享虚拟私有云 (VPC) 中。在这种安装方法中,集群配置为使用来自不同 GCP 项目的 VPC。共享 VPC 允许组织将来自多个项目的资源连接到公共 VPC 网络。您可以使用该网络中的内部 IP 地址安全高效地在组织内进行通信。有关共享 VPC 的更多信息,请参阅GCP 文档中的共享 VPC 概述。
安装程序会预配其余所需的架构,您可以进一步自定义这些架构。要自定义安装,请在安装集群之前修改install-config.yaml
文件中的参数。
您已查看有关OpenShift Container Platform 安装和更新流程的详细信息。
您已阅读有关选择集群安装方法并为用户准备集群的文档。
如果您使用防火墙,则已将其配置为允许集群需要访问的站点。
您拥有一个包含共享 VPC 网络的 GCP 主项目。
您已配置一个 GCP 项目来托管集群。此项目(称为服务项目)必须附加到主项目。有关更多信息,请参阅GCP 文档中的附加服务项目。
您拥有一个 GCP 服务帐户,该帐户在主项目和服务项目中都具有所需的 GCP 权限。
在 OpenShift Container Platform 4.17 中,您需要访问互联网才能安装集群。
您必须具有互联网访问权限才能
访问OpenShift Cluster Manager以下载安装程序并执行订阅管理。如果集群具有互联网访问权限并且您没有禁用遥测,则该服务会自动授权您的集群。
访问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 集群管理器下载您的安装拉取密钥。此拉取密钥允许您对包含的授权机构(包括提供 OpenShift Container Platform 组件容器镜像的 Quay.io)提供的服务进行身份验证。
或者,您可以从Red Hat 客户门户检索安装程序,您可以在其中指定要下载的安装程序版本。但是,您必须拥有有效的订阅才能访问此页面。 |
要在 Google Cloud Platform (GCP) 的共享 VPC 中安装 OpenShift Container Platform,您必须生成install-config.yaml
文件并对其进行修改,以便集群使用正确的 VPC 网络、DNS 区域和项目名称。
安装集群需要您手动创建安装配置文件。
您在本地机器上有一个 SSH 公钥,需要提供给安装程序。此密钥将用于对您的集群节点进行 SSH 身份验证,以进行调试和灾难恢复。
您已获取 OpenShift Container Platform 安装程序和集群的拉取密钥。
创建一个安装目录来存储所需的安装资源。
$ mkdir <installation_directory>
您必须创建一个目录。某些安装资源(如引导 X.509 证书)的有效期较短,因此您不能重用安装目录。如果您想重用来自另一个集群安装的单个文件,您可以将它们复制到您的目录中。但是,安装资源的文件名在不同版本之间可能会发生变化。从较早版本的 OpenShift Container Platform 复制安装文件时,请谨慎操作。 |
自定义提供的示例install-config.yaml
文件模板,并将其保存到<installation_directory>
中。
您必须将此配置文件命名为 |
备份install-config.yaml
文件,以便您可以使用它来安装多个集群。
|
安装集群时,您可以使用 Shielded VM。Shielded VM 具有额外的安全功能,包括安全启动、固件和完整性监控以及 rootkit 检测。有关更多信息,请参阅 Google 关于Shielded VM的文档。
目前,64 位 ARM 架构的集群不支持 Shielded VM。 |
您已创建install-config.yaml
文件。
在部署集群之前,使用文本编辑器编辑install-config.yaml
文件,并添加以下节之一:
仅对控制平面机器使用 Shielded VM
controlPlane:
platform:
gcp:
secureBoot: Enabled
仅对计算机器使用 Shielded VM
compute:
- platform:
gcp:
secureBoot: Enabled
对所有机器使用 Shielded VM
platform:
gcp:
defaultMachinePlatform:
secureBoot: Enabled
安装集群时,您可以使用 Confidential VM。Confidential VM 会在处理数据时对其进行加密。有关更多信息,请参阅 Google 关于Confidential Computing的文档。您可以同时启用 Confidential VM 和 Shielded VM,尽管它们彼此之间并不依赖。
目前,64 位 ARM 架构不支持 Confidential VM。 |
您已创建install-config.yaml
文件。
在部署集群之前,使用文本编辑器编辑install-config.yaml
文件,并添加以下节之一:
仅对控制平面机器使用 Confidential VM
controlPlane:
platform:
gcp:
confidentialCompute: Enabled (1)
type: n2d-standard-8 (2)
onHostMaintenance: Terminate (3)
1 | 启用 Confidential VM。 |
2 | 指定支持 Confidential VM 的机器类型。Confidential VM 需要 N2D 或 C2D 系列的机器类型。有关支持的机器类型的更多信息,请参阅支持的操作系统和机器类型。 |
3 | 指定在主机维护事件(例如硬件或软件更新)期间 VM 的行为。对于使用 Confidential VM 的机器,此值必须设置为Terminate ,这将停止 VM。Confidential VM 不支持实时 VM 迁移。 |
仅对计算机器使用 Confidential VM
compute:
- platform:
gcp:
confidentialCompute: Enabled
type: n2d-standard-8
onHostMaintenance: Terminate
对所有机器使用 Confidential VM
platform:
gcp:
defaultMachinePlatform:
confidentialCompute: Enabled
type: n2d-standard-8
onHostMaintenance: Terminate
使用共享 VPC 在 GCP 上安装 OpenShift Container Platform 需要几个配置参数。以下是演示这些字段的示例install-config.yaml
文件。
此示例 YAML 文件仅供参考。您必须使用环境和集群的正确值修改此文件。 |
apiVersion: v1
baseDomain: example.com
credentialsMode: Passthrough (1)
metadata:
name: cluster_name
platform:
gcp:
computeSubnet: shared-vpc-subnet-1 (2)
controlPlaneSubnet: shared-vpc-subnet-2 (3)
network: shared-vpc (4)
networkProjectID: host-project-name (5)
projectID: service-project-name (6)
region: us-east1
defaultMachinePlatform:
tags: (7)
- global-tag1
controlPlane:
name: master
platform:
gcp:
tags: (7)
- control-plane-tag1
type: n2-standard-4
zones:
- us-central1-a
- us-central1-c
replicas: 3
compute:
- name: worker
platform:
gcp:
tags: (7)
- compute-tag1
type: n2-standard-4
zones:
- us-central1-a
- us-central1-c
replicas: 3
networking:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
machineNetwork:
- cidr: 10.0.0.0/16
pullSecret: '{"auths": ...}'
sshKey: ssh-ed25519 AAAA... (8)
1 | credentialsMode 必须设置为Passthrough 或Manual 。有关您的服务帐户必须具备的必需 GCP 权限,请参阅“先决条件”部分。 |
2 | 共享 VPC 中计算机器要使用的子网名称。 |
3 | 控制平面机器使用的共享 VPC 中子网的名称。 |
4 | 共享 VPC 的名称。 |
5 | 共享 VPC 所在的主机项目的名称。 |
6 | 您要安装集群的 GCP 项目的名称。 |
7 | 可选。要应用于计算机器、控制平面机器或所有机器的一个或多个网络标签。 |
8 | 您可以选择提供用于访问集群中机器的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
。
仅支持名为 |
您可以安装 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>
默认情况下,管理员密钥存储在kube-system
项目中。如果您在install-config.yaml
文件中将credentialsMode
参数配置为Manual
,则必须使用以下替代方法之一
要手动管理长期云凭据,请按照手动创建长期凭据中的步骤操作。
要实现由集群外部为各个组件管理的短期凭据,请按照配置 GCP 集群以使用短期凭据中的步骤操作。
在无法访问云身份和访问管理 (IAM) API 或管理员更倾向于不在集群kube-system
命名空间中存储管理员级凭据密钥的环境中,可以在安装之前将云凭据操作员 (CCO) 置于手动模式。
向安装程序使用的 GCP 帐户添加以下细粒度权限
compute.machineTypes.list
compute.regions.list
compute.zones.list
dns.changes.create
dns.changes.get
dns.managedZones.create
dns.managedZones.delete
dns.managedZones.get
dns.managedZones.list
dns.networks.bindPrivateDNSZone
dns.resourceRecordSets.create
dns.resourceRecordSets.delete
dns.resourceRecordSets.list
如果您未在install-config.yaml
配置文件中将credentialsMode
参数设置为Manual
,请修改该值,如下所示
apiVersion: v1
baseDomain: example.com
credentialsMode: Manual
# ...
如果您以前没有创建安装清单文件,请运行以下命令创建:
$ openshift-install create manifests --dir <installation_directory>
其中<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:
name: <component_credentials_request>
namespace: openshift-cloud-credential-operator
...
spec:
providerSpec:
apiVersion: cloudcredential.openshift.io/v1
kind: GCPProviderSpec
predefinedRoles:
- roles/storage.admin
- roles/iam.serviceAccountUser
skipServiceCheck: true
...
在您之前生成的openshift-install
清单目录中为密钥创建 YAML 文件。必须使用每个CredentialsRequest
对象中spec.secretRef
定义的命名空间和密钥名称来存储密钥。
CredentialsRequest
对象apiVersion: cloudcredential.openshift.io/v1
kind: CredentialsRequest
metadata:
name: <component_credentials_request>
namespace: openshift-cloud-credential-operator
...
spec:
providerSpec:
apiVersion: cloudcredential.openshift.io/v1
...
secretRef:
name: <component_secret>
namespace: <component_namespace>
...
Secret
对象apiVersion: v1
kind: Secret
metadata:
name: <component_secret>
namespace: <component_namespace>
data:
service_account.json: <base64_encoded_gcp_service_account_file>
在升级使用手动维护凭据的集群之前,必须确保 CCO 处于可升级状态。 |
要安装配置为使用 GCP 工作负载身份的集群,必须配置 CCO 实用程序并为集群创建所需的 GCP 资源。
当云凭据操作员 (CCO) 处于手动模式时,要从集群外部创建和管理云凭据,请提取并准备 CCO 实用程序 (ccoctl
) 二进制文件。
|
您可以访问具有集群管理员访问权限的 OpenShift Container Platform 帐户。
您已安装 OpenShift CLI (oc
)。
您已向安装程序使用的 GCP 帐户添加了以下身份验证选项之一:
IAM 工作负载身份池管理员角色。
以下细粒度权限:
compute.projects.get
iam.googleapis.com/workloadIdentityPoolProviders.create
iam.googleapis.com/workloadIdentityPoolProviders.get
iam.googleapis.com/workloadIdentityPools.create
iam.googleapis.com/workloadIdentityPools.delete
iam.googleapis.com/workloadIdentityPools.get
iam.googleapis.com/workloadIdentityPools.undelete
iam.roles.create
iam.roles.delete
iam.roles.list
iam.roles.undelete
iam.roles.update
iam.serviceAccounts.create
iam.serviceAccounts.delete
iam.serviceAccounts.getIamPolicy
iam.serviceAccounts.list
iam.serviceAccounts.setIamPolicy
iam.workloadIdentityPoolProviders.get
iam.workloadIdentityPools.delete
resourcemanager.projects.get
resourcemanager.projects.getIamPolicy
resourcemanager.projects.setIamPolicy
storage.buckets.create
storage.buckets.delete
storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.objects.create
storage.objects.delete
storage.objects.list
通过运行以下命令设置 OpenShift Container Platform 发行版镜像的变量:
$ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')
通过运行以下命令从 OpenShift Container Platform 发行版镜像中获取 CCO 容器镜像:
$ CCO_IMAGE=$(oc adm release info --image-for='cloud-credential-operator' $RELEASE_IMAGE -a ~/.pull-secret)
确保 |
通过运行以下命令从 OpenShift Container Platform 发行版镜像中的 CCO 容器镜像中提取ccoctl
二进制文件:
$ oc image extract $CCO_IMAGE \
--file="/usr/bin/ccoctl.<rhel_version>" \(1)
-a ~/.pull-secret
1 | 对于<rhel_version> ,请指定与主机使用的 Red Hat Enterprise Linux (RHEL) 版本相对应的值。如果未指定值,则默认使用ccoctl.rhel8 。有效值为:
|
更改权限以使ccoctl
可执行,请运行以下命令:
$ chmod 775 ccoctl.<rhel_version>
要验证ccoctl
是否已准备好使用,请显示帮助文件。运行命令时,请使用相对文件名,例如:
$ ./ccoctl.rhel9
OpenShift credentials provisioning tool
Usage:
ccoctl [command]
Available Commands:
aws Manage credentials objects for AWS cloud
azure Manage credentials objects for Azure
gcp Manage credentials objects for Google cloud
help Help about any command
ibmcloud Manage credentials objects for {ibm-cloud-title}
nutanix Manage credentials objects for Nutanix
Flags:
-h, --help help for ccoctl
Use "ccoctl [command] --help" for more information about a command.
您可以使用ccoctl gcp create-all
命令自动创建 GCP 资源。
默认情况下, |
您必须:
已提取并准备了ccoctl
二进制文件。
通过运行以下命令,使用安装文件中的发行版镜像设置$RELEASE_IMAGE
变量:
$ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')
通过运行以下命令从 OpenShift Container Platform 发行版镜像中提取CredentialsRequest
对象列表:
$ 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 对象的目录的路径。如果指定的目录不存在,此命令将创建它。 |
此命令可能需要一些时间才能运行。 |
使用ccoctl
工具处理所有CredentialsRequest
对象,请运行以下命令:
$ ccoctl gcp create-all \
--name=<name> \(1)
--region=<gcp_region> \(2)
--project=<gcp_project_id> \(3)
--credentials-requests-dir=<path_to_credentials_requests_directory> (4)
1 | 指定用于跟踪的所有已创建 GCP 资源的用户定义名称。 |
2 | 指定将创建云资源的 GCP 区域。 |
3 | 指定将创建云资源的 GCP 项目 ID。 |
4 | 指定包含CredentialsRequest 清单文件的目录以创建 GCP 服务帐户。 |
如果您的集群使用由 |
要验证 OpenShift Container Platform 密钥是否已创建,请列出<path_to_ccoctl_output_dir>/manifests
目录中的文件。
$ ls <path_to_ccoctl_output_dir>/manifests
cluster-authentication-02-config.yaml
openshift-cloud-controller-manager-gcp-ccm-cloud-credentials-credentials.yaml
openshift-cloud-credential-operator-cloud-credential-operator-gcp-ro-creds-credentials.yaml
openshift-cloud-network-config-controller-cloud-credentials-credentials.yaml
openshift-cluster-api-capg-manager-bootstrap-credentials-credentials.yaml
openshift-cluster-csi-drivers-gcp-pd-cloud-credentials-credentials.yaml
openshift-image-registry-installer-cloud-credentials-credentials.yaml
openshift-ingress-operator-cloud-credentials-credentials.yaml
openshift-machine-api-gcp-cloud-credentials-credentials.yaml
您可以通过查询 GCP 来验证 IAM 服务帐户是否已创建。有关更多信息,请参阅 GCP 关于列出 IAM 服务帐户的文档。
要实现由集群外部管理的用于各个组件的短期安全凭据,您必须将 Cloud Credential Operator 实用程序 (ccoctl
) 创建的清单文件移动到安装程序的正确目录。
您已配置了一个托管集群的云平台帐户。
您已配置 Cloud Credential Operator 实用程序 (ccoctl
)。
您已使用 ccoctl
实用程序创建了集群所需的云提供商资源。
向安装程序使用的 GCP 帐户添加以下细粒度权限
compute.machineTypes.list
compute.regions.list
compute.zones.list
dns.changes.create
dns.changes.get
dns.managedZones.create
dns.managedZones.delete
dns.managedZones.get
dns.managedZones.list
dns.networks.bindPrivateDNSZone
dns.resourceRecordSets.create
dns.resourceRecordSets.delete
dns.resourceRecordSets.list
如果您未在install-config.yaml
配置文件中将credentialsMode
参数设置为Manual
,请修改该值,如下所示
apiVersion: v1
baseDomain: example.com
credentialsMode: Manual
# ...
如果您以前没有创建安装清单文件,请运行以下命令创建:
$ openshift-install create manifests --dir <installation_directory>
其中<installation_directory>
是安装程序创建文件的目录。
通过运行以下命令,将 ccoctl
实用程序生成的清单复制到安装程序创建的 manifests
目录
$ cp /<path_to_ccoctl_output_dir>/manifests/* ./manifests/
将包含私钥的 tls
目录复制到安装目录
$ cp -a /<path_to_ccoctl_output_dir>/tls .
您可以在兼容的云平台上安装 OpenShift Container Platform。
您只能在初始安装期间运行安装程序的 |
您已配置了一个托管集群的云平台帐户。
您拥有 OpenShift Container Platform 安装程序和集群的 pull 密钥。
您已验证主机上的云提供商帐户具有部署集群的正确权限。具有不正确权限的帐户会导致安装过程失败,并显示一条错误消息,其中显示缺少的权限。
删除任何不使用您为集群配置的 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)
1 | 对于 <installation_directory> ,请指定您自定义的 ./install-config.yaml 文件的位置。 |
2 | 要查看不同的安装详细信息,请指定 warn 、debug 或 error ,而不是 info 。 |
可选:您可以减少用于安装集群的服务帐户的权限数量。
如果您为服务帐户分配了 Owner
角色,则可以删除该角色并将其替换为 Viewer
角色。
如果您包含了 Service Account Key Admin
角色,则可以将其删除。
当集群部署成功完成时
终端将显示访问集群的说明,包括指向 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
|
您可以通过导出集群 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 控制台。
在 OpenShift Container Platform 4.17 中,默认情况下运行的遥测服务(用于提供有关集群运行状况和更新成功的指标)需要互联网访问。如果您的集群已连接到互联网,则遥测会自动运行,并且您的集群会注册到 OpenShift 集群管理器。
确认您的 OpenShift 集群管理器 库存正确后(由遥测自动维护或使用 OpenShift 集群管理器手动维护),使用订阅监控 来跟踪帐户或多集群级别的 OpenShift Container Platform 订阅。
有关遥测服务的更多信息,请参阅 关于远程运行状况监控
如有必要,您可以选择退出远程运行状况报告。