访问 Red Hat OpenShift 集群
创建 Red Hat® OpenShift® on IBM Cloud® 集群后,可以通过访问集群开始使用集群。
先决条件
- 安装所需的 CLI 工具。 要快速访问集群中的测试功能,还可以使用 IBM Cloud Shell。
- 创建 Red Hat OpenShift 集群。
- 如果网络受到公司防火墙的保护,请允许访问 IBM Cloud 和 Red Hat OpenShift on IBM Cloud API 端点和端口。 对于仅启用了私有云服务端点的 VPC 集群,在 使用云服务端点子网配置 VPC VPN 之前,无法测试与集群的连接。
- 运行
ibmcloud oc cluster get -c <cluster_name_or_ID>查看群集是否处于健康状态。 如果集群未处于正常运行状态,请查看调试集群指南以获取帮助。 例如,如果在受防火墙网关设备保护的帐户中供应集群,那么必须配置防火墙设置以允许出局流量流至相应的端口和 IP 地址。 - 查找集群的服务端点。
- 经典或 VPC 集群:在上一步的集群详细信息输出中,检查集群的公共或私有服务端点URL。
- 仅限公共服务终端 URL:继续 通过公共云服务终端访问集群。
- 两个服务端点 URL: 您可以通过 公用 或 专用 服务端点访问集群。
- IBM Cloud Satellite 集群: 继续 访问 Satellite。
- 经典或 VPC 集群:在上一步的集群详细信息输出中,检查集群的公共或私有服务端点URL。
- 如果帐户中的任何用户使用多因子认证 (MFA) (例如 TOTP),请确保 在帐户级别为所有用户启用该认证。 要使用 MFA,必须在帐户级别启用 MFA 以避免认证错误。
通过公共云服务终端访问群集
对于具有公共云 Red Hat OpenShift 服务端点的集群,您可以通过控制台或命令行界面登录到集群。
从控制台连接到集群
您可从控制台快速访问您的 Red Hat OpenShift on IBM Cloud 集群。
- 在 控制台中,点击您想要访问的仪表盘。
- 单击 Red Hat OpenShift Web 控制台。
- 要继续在命令行中工作,请单击概要文件名称 (例如
IAM#name@email.com),然后单击 复制登录命令。 根据您的集群版本,从命令行登录到集群,如下所示。- 版本 4: 单击 显示令牌,复制
oc login命令,然后将该命令粘贴到命令行中。
- 版本 4: 单击 显示令牌,复制
出于安全考虑,请先退出控制台 IBM Cloud,再退出 Red Hat OpenShift Web控制台,最后关闭浏览器。 您必须按指定顺序完成两个步骤,才能成功退出Web Red Hat OpenShift 控制台。
- 后续步骤?
- 尝试 通过控制台部署应用程序。
从 CLI 连接到集群
通常,您可以使用 Web Red Hat OpenShift 控制台获取用于访问集群的 oc login 令牌。 若您无法或不愿打开 Red Hat OpenShift 控制台,请从以下选项中选择一种,通过命令行 Red Hat OpenShift on IBM Cloud 界面登录集群:
从以下选项中选择
- 以管理员身份登录:
- 确保具有 集群的 管理员 平台访问角色。
- 为群集设置命令行上下文,并下载 TLS 证书和管理员权限文件。
ibmcloud oc cluster config -c <cluster_name_or_ID> --admin
- 使用 API 密钥登录: 请参阅 使用 API 密钥登录到 Red Hat OpenShift。
- 使用 IBM Cloud 密码登录:
- 在以下命令的输出中获取集群的主 URL。
ibmcloud oc cluster get -c <cluster_name_or_ID> - 在浏览器中,打开以下 IBM Cloud IAM 验证码 Web 站点。
https://iam.cloud.ibm.com/identity/passcode - 使用 IBMid 登录并复制验证码。
- 使用密码登录群集。
oc login -u passcode -p <iam_passcode> --server=<master_URL>
- 在以下命令的输出中获取集群的主 URL。
通过私有云服务终端访问群集
允许授权集群用户通过私有云服务端点访问 VPC 或 经典 集群。
要设置 VPN 以从本地机器连接到集群吗? 请参阅 通过VPN WireGuard 访问私有集群。
通过私有云服务终端访问 VPC 群集
所有 VPC 群集都有一个私人服务端点,授权用户可以访问。 由于它只能在专用网络上使用,用户必须通过以下方式之一访问它:
-
对于 ca-mon、in-che 和 in-mum 以外的区域,VPC 集群的专用服务端点可从 IBM Cloud 内的任何地方访问,或从使用 VPN(或类似设备)连接到 IBM Cloud 的客户端访问。
您可以使用以下选项之一通过 VPN 连接到 IBM Cloud:
- 客户端到站点 VPN
- 最常见的群集访问选项,设置相当简单。 有关配置技巧,请参阅 通过虚拟专用端点网关访问 VPC 群集。
- 站点到站点 VPN
- 它的设置较为复杂,但具有可能有用的其他功能。
可以通过群集的专用服务端点 URL 访问这些群集,该端点看起来像
c<XXX>.private.<REGION>.containers.cloud.ibm.com:XXXXX。 使用此命令可获取使用此私有端点的 kubeconfig 文件:然后,您可以使用下图所示的几个选项之一登录群集。 完成上述操作后,您可以使用以下命令来验证该连接
ibmcloud oc get nodes-
以管理员身份登录:
- 确保具有 集群的 管理员 平台访问角色。
- 为管理员下载 kubeconfig。
ibmcloud oc cluster config -c <cluster_name_or_ID> --admin --endpoint private
-
使用 API 密钥登录: 请参阅 使用 API 密钥登录到 Red Hat OpenShift。
-
使用 IBM Cloud 密码登录:
- 在以下命令的输出中获取集群的专用服务端点 URL。
ibmcloud oc cluster get -c <cluster_name_or_ID> - 在浏览器中,打开以下 IBM Cloud IAM 验证码 Web 站点。
https://iam.cloud.ibm.com/identity/passcode - 使用 IBMid 登录并复制验证码。
- 使用密码登录群集。
oc login -u passcode -p <iam_passcode> --server=<private_service_endpoint_URL>
- 在以下命令的输出中获取集群的专用服务端点 URL。
-
可通过群集的特定虚拟专用端点(VPE)网关访问所有区域内所有 VPC 群集的专用服务端点。 VPE 网关只能在其创建的 VPC 内使用,或通过 VPN(或类似方式)进入该特定 VPC。 以这种方式连接到群集有两种主要选择:
- 在创建群集的 VPC 中会自动为群集创建一个 VPE 网关。 因此,一种选择是通过 VPC 内部的系统,或通过 VPN(或类似设备)连接到 VPC 的系统进行连接。
- 如果要从不同的 VPC(甚至是不同地区或不同账户的 VPC)进行连接,可以在其他 VPC 中创建一个新的 VPE 网关。 然后,从其他 VPC(包括通过 VPN 接入其他 VPC 的情况),可以通过新的 VPE 网关访问群集主控程序。 具体操作步骤请参阅下面的“在其他 VPC 和账户中创建其他虚拟专用端点网关”部分。
- 有关此选项的更多信息,包括如何获取 kubeconfig 文件和配置 VPN 的提示,请参阅下面的“通过虚拟专用端点网关访问 VPC 群集”部分。
通过私有云服务终端访问经典集群
若授权集群用户位于您的 IBM Cloud 私有网络中,或通过 经典VPN连接 等方式连接至私有网络,IBM Cloud Direct Link 则可通过私有云服务端点访问主控 Red Hat OpenShift 节点。 但是,通过私有云服务端点与
Kubernetes 主站的通信必须通过 166.X.X.X IP 地址范围,而传统 VPN 连接或 IBM Cloud Direct Link 均无法路由该 IP 地址范围。 您可以使用私有网络负载平衡器(NLB)为群集用户公开主控器的私有云服务端点。 私有 NLB 将主站的私有云服务端点作为内部 10.X.X.X IP 地址范围公开,用户可通过 VPN 或 IBM Cloud Direct Link 连接访问。 若仅启用私有云服务端点,则可通过
Web Red Hat OpenShift 控制台创建私有 NLB。
-
获取群集的私有云服务端点 URL 和端口。
ibmcloud oc cluster get -c <cluster_name_or_ID>在此示例输出中,专用服务端点 URL 是
https://c1.private.us-east.containers.cloud.ibm.com:31144。NAME: setest ID: b8dcc56743394fd19c9f3db7b990e5e3 State: normal Status: healthy cluster Created: 2019-04-25T16:03:34+0000 Location: wdc04 Pod Subnet: 172.30.0.0/16 Service Subnet: 172.21.0.0/16 Master URL: https://c1-e.us-east.containers.cloud.ibm.com:31144 Public Service Endpoint URL: https://c1-e.us-east.containers.cloud.ibm.com:31144 Private Service Endpoint URL: https://c1.private.us-east.containers.cloud.ibm.com:31144 Master Location: Washington D.C. ... -
创建名为
oc-api-via-nlb.yaml的 YAML 文件。 该 YAML 创建了一个私有LoadBalancer服务,并通过该 NLB 公开私有云服务端点。 将<private_service_endpoint_port>替换为上一步中找到的端口。apiVersion: v1 kind: Service metadata: name: oc-api-via-nlb annotations: service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: private namespace: default spec: type: LoadBalancer ports: - protocol: TCP port: <private_service_endpoint_port> targetPort: <private_service_endpoint_port> --- kind: Endpoints apiVersion: v1 metadata: name: oc-api-via-nlb namespace: default subsets: - addresses: - ip: 172.20.0.1 ports: - port: 2040 -
要创建专用 NLB 和端点,请执行以下操作:
- 应用先前创建的配置文件。
oc apply -f oc-api-via-nlb.yaml - 验证
oc-api-via-nlbNLB 是否已创建。 在输出中,记下10.x.x.xEXTERNAL-IP 地址。 此 IP 地址会在 YAML 文件指定的端口上为群集主控暴露私有云服务端点。
在此示例输出中,主站私有云服务端点的 IP 地址为oc get svc -o wide10.186.92.42。NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR oc-api-via-nlb LoadBalancer 172.21.150.118 10.186.92.42 443:32235/TCP 10m <none> ...
- 应用先前创建的配置文件。
-
在您或您的用户运行
oc命令的客户端计算机上,将 NLB IP 地址和私有云服务端点 URL 添加到/etc/hosts文件中。 不要在 IP 地址和 URL 中包含任何端口,也不要在 URL 中包含https://。-
供 macOS 和 Linux 用户使用:
sudo nano /etc/hosts -
对于 Windows 用户:
notepad C:\Windows\System32\drivers\etc\hosts根据本地计算机许可权,您可能需要以管理员身份运行记事本来编辑 hosts 文件。
要添加的示例文本:
10.186.92.42 c1.private.us-east.containers.cloud.ibm.com
-
-
验证您是否已通过 VPN 或 IBM Cloud Direct Link 连接连接到专用网络。
-
通过从下列其中一个选项中进行选择,登录到集群。
- 以管理员身份登录:
- 确保具有 集群的 管理员 平台访问角色。
- 为群集设置命令行上下文,并下载 TLS 证书和管理员权限文件。
ibmcloud oc cluster config -c <cluster_name_or_ID> --admin --endpoint private
- 使用 API 密钥登录: 请参阅 使用 API 密钥登录到 Red Hat OpenShift。
- 使用 IBM Cloud 密码登录:
- 在以下命令的输出中获取集群的专用服务端点 URL。
ibmcloud oc cluster get -c <cluster_name_or_ID> - 在浏览器中,打开以下 IBM Cloud IAM 验证码 Web 站点。
https://iam.cloud.ibm.com/identity/passcode - 使用 IBMid 登录并复制验证码。
- 使用密码登录群集。
oc login -u passcode -p <iam_passcode> --server=<private_service_endpoint_URL>
- 在以下命令的输出中获取集群的专用服务端点 URL。
- 以管理员身份登录:
-
通过检查版本,验证
oc命令是否能通过私有云服务端点在群集中正常运行。oc version示例输出
Client Version: 4.5.0-0.okd-2020-09-04-180756 Server Version: 4.5.35 Kubernetes Version: v1.18.3+cdb0358
访问 Satellite 上的 Red Hat OpenShift 集群
在您 Satellite 所在的位置创建集群 Red Hat OpenShift 后,即可通过访问该集群开始使用它。
访问集群并运行 oc get nodes 或 oc describe node <worker_node> 命令时,可能会看到为工作程序节点分配了 master,worker 角色。 在 OpenShift Container Platform 集群中,操作员将主节点角色用作入口 nodeSelector 点,以便OpenStack Cloud Platform(OCP)能在集群内部署由操作员控制的默认组件,例如内部注册中心。
您分配给集群的主机 Satellite 仅作为工作节点运行,API 服务器或 Kubernetes 调度程序等主节点进程不会在工作节点上运行。
通过集群服务访问集群 URL
通过其服务连接到你的 URL 集群。 这是 URL 您其中一个 Satellite 位置子域名和节点端口,其格式如下所示 https://p1iuql40jam23qiuxt833-q9err0fiffbsar61e78vv6e7ds8ne1tx-ce00.us-east.satellite.appdomain.cloud:30710:
如果位置主机只有专用网络连接,或者使用 Amazon Web Services、Google Cloud Platform 和 Microsoft Azure 主机,则必须连接到主机的专用网络,如通过 VPN 访问,才能连接到群集并访问 Red Hat OpenShift 网络控制台。 或者,如果主机具有公用网络连接,那么可以通过将集群的 DNS 记录和位置的 DNS 记录更改为 使用主机的公共 IP 地址 来测试对集群的访问权。
您可从控制台快速访问您的 Red Hat OpenShift on IBM Cloud 集群。
- 在 控制台中,点击您想要访问的仪表盘。
- 单击 Red Hat OpenShift Web 控制台。
- 单击概要文件名称 (例如
IAM#name@email.com),然后单击 复制登录命令。 - 单击 显示令牌,然后复制
oc login命令。 - 将命令粘贴到命令行中。
出于安全考虑,请先退出控制台 IBM Cloud,再退出 Red Hat OpenShift Web控制台,最后关闭浏览器。 您必须按指定顺序完成两个步骤,才能成功退出Web Red Hat OpenShift 控制台。
若您无法或不愿打开 Red Hat OpenShift 控制台,请从以下选项中选择一种,通过命令行 Red Hat OpenShift on IBM Cloud 界面登录集群:
- 以管理员身份登录:
- 确保具有 集群的 管理员 IAM 平台访问角色。
- 为群集设置命令行上下文,并下载 TLS 证书和管理员权限文件。 有关更多信息,请参阅 CLI 文档。
ibmcloud oc cluster config -c <cluster_name_or_ID> --admin
- 使用 API 密钥登录: 请参阅 使用 API 密钥登录到 Red Hat OpenShift。
从 IBM Cloud 专用网络中访问集群
若您已连接到 IBM Cloud 私有网络,则可使用为您的集群自动生成的 Link Satellite 端点。 此端点允许您通过安全链路隧道服务器连接到位置控制平面中集群的主节点。 端点由链接隧道服务器主机名和节点端口组成,其格式如 c-02.<region>.link.satellite.cloud.ibm.com:<port>。
要通过链接端点(例如 --endpoint link 在命令行界面中)连接到 Satellite 集群,您必须在所在位置中按照步骤设置源。 此源允许通过链接端点访问集群 API。 有关更多信息,请参阅 访问您的 Red Hat OpenShift API Satellite 链接端点。
- 确保具有 集群的 管理员 IAM 平台访问角色。
- 使用链接端点为群集设置命令行上下文,并为管理员下载 TLS 证书和权限文件。 有关更多信息,请参阅 CLI 文档。
ibmcloud oc cluster config -c <cluster_name_or_ID> --endpoint link --admin
从公用网络访问集群
如果主机具有公用网络连接,并且您希望从本地机器访问集群而不连接到主机的专用网络,那么可以选择更新集群的子域和位置的 DNS 记录以使用主机的公共 IP 地址。
对于大多数位置设置,将针对位置的 DNS 记录注册主机的专用 IP 地址,以便仅当您已连接到云提供者的专用网络时才能访问集群。
例如,如果您使用 Amazon Web Services、Google Cloud Platform 或 Microsoft Azure 主机,或者主机的默认网络接口是专用的,那么您所在位置的 DNS 记录只能在专用网络上访问。
要对集群运行 kubectl 或 oc 命令或访问 Red Hat OpenShift Web 控制台,必须连接到主机的专用网络,例如通过 VPN 访问。 但是,如果要从公用网络访问集群 (例如测试从本地机器访问集群),那么可以更改位置和集群子域的 DNS 记录以改为使用主机的公用 IP。
对于生产级工作负载,建议不要使您的位置和集群子域在主机的专用网络外部可供授权集群用户使用。
- 查看位置子域,并检查 记录 以获取在该子域的 DNS 中注册的主机的专用 IP 地址。
ibmcloud sat location dns ls --location <location_name_or_ID> - 检索主机的匹配公共 IP 地址。
ibmcloud sat host ls --location <location_name_or_ID> - 使用控制平面中每个主机的公共 IP 地址更新位置子域 DNS 记录。
ibmcloud sat location dns register --location <location_name_or_ID> --ip <host_IP> --ip <host_IP> --ip <host_IP> - 验证是否已向您的位置 DNS 记录注册公共 IP 地址。
ibmcloud sat location dns ls --location <location_name_or_ID> - 获取格式为
<service_name>-<project>.<cluster_name>-<random_hash>-0000.upi.containers.appdomain.cloud的集群的 主机名,并记下已自动注册的专用 IP。ibmcloud oc nlb-dns ls --cluster <cluster_name_or_ID> - 将作为工作程序节点分配给此集群的主机的公共 IP 地址添加到集群的子域。 对每个主机的公共 IP 地址重复此命令。
ibmcloud oc nlb-dns add --ip <public_IP> --cluster <cluster_name_or_ID> --nlb-host <hostname> - 从集群的子域中除去专用 IP 地址。 对先前检索的所有专用 IP 地址重复此命令。
ibmcloud oc nlb-dns rm classic --ip <private_IP> --cluster <cluster_name_or_ID> --nlb-host <hostname> - 验证是否已向集群子域注册公共 IP 地址。
ibmcloud oc nlb-dns ls --cluster <cluster_name_or_ID>
通过虚拟专用端点网关访问 VPC 集群
将自动为 VPC 集群创建 虚拟专用端点网关。 若授权集群用户 通过 IBM Cloud VPC VPN 等方式连接至集群部署所在的同一虚拟私有云(VPC),则可通过此虚拟私有云端点网关访问 Kubernetes 主节点。 在此情况下,该 kubeconfig 配置采用虚拟私有端点(VPE)
URL,该端点是一个私有域名,仅能通过私有DNS IBM Cloud VPC 服务进行解析。 私有DNS IBM Cloud VPC 服务器的地址是 161.26.0.7 和 161.26.0.8。
对于运行版本的集群 4.13:若在创建集群时仅启用了私有云服务端点,则默认使用您VPC的虚拟私有端点访问Web Red Hat OpenShiftRed Hat OpenShift 控制台等组件 OperatorHub。 您必须连接到专用 VPC 网络 (例如,通过 VPN 连接),才能访问这些组件或在集群上运行 kubectl 命令。 请注意,要通过 VPE
访问控制台,您必须能够访问需要公共连接的 cloud.ibm.com。
-
设置 IBM Cloud VPC VPN 并通过 VPN 连接到 VPC。
- 将 客户机到站点 或 站点到站点 VPN 配置到 VPC。 例如,您可以选择设置与 VPN 客户端的客户机到站点连接。
- 对于客户机到站点 VPN 设置,在供应 VPN 服务器时,必须指定 IBM Cloud VPC 专用 DNS 服务地址,如 注意事项 中所述。 在供应 VPN 服务器后,还必须使用目标
161.26.0.0/16和操作translate创建 VPN 路由。 - 对于站点到站点 VPN 设置,必须遵循 通过 VPN 指南访问服务端点,并配置 IBM Cloud VPC 专用 DNS 服务地址。
- 验证您是否已通过 IBM Cloud VPC VPN 连接连接到 VPC。
-
要登录到集群,请从以下选项中进行选择。
- 以管理员身份登录:
- 确保具有 集群的 管理员 平台访问角色。
- 为群集设置命令行上下文,并下载 TLS 证书和管理员权限文件。
ibmcloud oc cluster config -c <cluster_name_or_ID> --admin --endpoint vpe
- 使用 API 密钥登录: 请参阅 使用 API 密钥登录到 Red Hat OpenShift。
- 使用 IBM Cloud 密码登录:
- 在以下命令的输出中获取 VPE地址和主 URL 输出中获取VPE地址和主密钥。
ibmcloud oc cluster get -c <cluster_name_or_ID> - 在浏览器中,打开以下 IBM Cloud IAM 验证码 Web 站点。
https://iam.cloud.ibm.com/identity/passcode - 使用 IBMid 登录并复制验证码。
- 使用密码登录群集。
登录过程将通知由未知机构签署的证书,因为它是由 IBM生成的自签名证书。oc login -u passcode -p <iam_passcode> --server=https://<VPE_URL>:<port_from_the_master_URL>
- 在以下命令的输出中获取 VPE地址和主 URL 输出中获取VPE地址和主密钥。
- 以管理员身份登录:
-
通过检查版本,验证
oc命令是否能通过私有云服务端点在群集中正常运行。oc version示例输出
Client Version: 4.5.0-0.okd-2020-09-04-180756 Server Version: 4.5.35 Kubernetes Version: v1.18.3+cdb0358
在其他 VPC 和账户中创建其他虚拟专用端点网关
除了在 VPC 中为群集创建的 VPE 网关外,还可以为该群集创建其他 VPE 网关,以允许从其他 VPC、区域和账户通过专用网络进行访问。
-
必须使用 CLI 或 API 创建其他 VPE 网关。 创建后,可通过网络用户界面对其进行管理。
-
对于跨账户 VPE 网关,必须首先在目标账户中创建授权。 有关更多信息,请参阅 在控制台中为跨账户 VPE 创建服务授权。
-
无需中转网关或特殊路由选择。 VPE 网关负责处理到目标群集的路由。
以下步骤将向您演示如何创建跨账户 VPE 网关。
-
从目标群集获取必要信息。
-
将
ibmcloud target设置为目标账户、区域和资源组。 -
获取现有 VPE 网关信息。
ibmcloud is endpoint-gateway iks-TARGET_CLUSTER_ID -
注意目标 CRN (格式:
crn:v1:bluemix:public:containers-kubernetes:REGION:a/TARGET_ACCOUNT:TARGET_CLUSTER_ID::)。 -
注意服务端点主机名。
-
-
在源账户中创建新的 VPE 网关。
-
将
ibmcloud target设置为源账户、区域和资源组。 -
验证此账户中是否存在 VPC。
ibmcloud is vpcs -
创建 VPE 网关。
ibmcloud is endpoint-gateway-create --vpc SOURCE_VPC_NAME --target TARGET_CRN --name new-iks-TARGET_CLUSTER_ID --resource-group-name SOURCE_ACCOUNT_RESOURCE_GROUPSOURCE_VPC_NAME- 上一步中的 VPC 名称。
TARGET_CRN- 目标群集 VPE 网关的 CRN。
--name- VPE 网关的名称。
SOURCE_ACCOUNT_RESOURCE_GROUP- 源账户中的资源组名称。
-
如果出现“无法找到服务”的错误,请确认目标 CRN 是否正确。 如果正确,则需要在目标账户中创建授权。 请参阅 在控制台中为跨账户 VPE 创建服务授权。
-
-
为 VPE 网关添加保留 IP。
您必须至少添加一个保留 IP。 保留 IP 来自源 VPC 子网(每个区域最多一个),并添加到源 VPC 的私有 DNS 条目中。
-
为每个区域创建一个保留 IP。
ibmcloud is subnet-reserved-ip-create SOURCE_VPC_SUBNET_NAME --vpc SOURCE_VPC_NAME --name ANY_NAME_YOU_CHOOSE --auto-delete true --target VPE_GATEWAY_NAME -
可选:添加或修改安全组。 默认情况下,只附加源 VPC 的默认安全组。 对于 VPE 网关,安全组只保护入口流量。 确保安全组允许来自客户端的所有必要传入流量。
-
-
测试连接。
-
从源 VPC 中的 VSI,使用与原始 VPE 网关相同的主机名。 从
ibmcloud ks cluster get -c CLUSTER_NAME的服务端点列表或 VPE Gateway 属性中查找。 -
验证连接是否正常。
curl -k https://CLUSTERID...:XXXXX/version -
如果连接失败,请检查以下内容:
- VSI 和 VPE 网关上的安全组允许必要的流量
- VPC ACL 允许流量
- 目标群集上的基于上下文限制 (CBR) 规则允许来自源 VPC 的私有流量(将源 VPC 中的三个 "云服务端点源地址 "添加到私有 CBR 规则中)
-
示例:目标账户命令
下面的示例显示了在目标账户中运行的命令,用于收集有关群集及其 VPE 网关的信息。
-
验证您的目标账户是否正确。
ibmcloud target示例输出
API endpoint: https://cloud.ibm.com Region: us-east User: user2@example.com Account: Target Account (9f8e7d6c5b4a321fedcba98765432222) <-> 2222222 Resource group: default -
列出您的集群。
ibmcloud ks clusters示例输出
OK Name ID State Created Workers Location Version Resource Group Name Provider vpe-cross-account-test c8m5n3p2q4x6z1w7y077 normal 1 day ago 2 Washington DC 4.19.25_1572_openshift default vpc-gen2 -
获取 VPE 网关详细信息。 注意目标 CRN 和服务端点。
ibmcloud is endpoint-gateway iks-c8m5n3p2q4x6z1w7y077示例输出
Getting endpoint gateway iks-c8m5n3p2q4x6z1w7y077 under account Target Account as user user2@example.com... ID r014-7a228b24-4bc4-416c-aede-7fda14e88d98 Name iks-c8m5n3p2q4x6z1w7y077 CRN crn:v1:bluemix:public:is:us-east:a/9f8e7d6c5b4a321fedcba98765432222::endpoint-gateway:r014-7a228b24-4bc4-416c-aede-7fda14e88d98 Target CRN crn:v1:bluemix:public:containers-kubernetes:us-east:a/9f8e7d6c5b4a321fedcba98765432222:c8m5n3p2q4x6z1w7y077:: DNS resolution binding mode primary Target Type provider_cloud_service Target Remote ID Name Resource type No target remote found. VPC ID Name r014-464b4e54-48a8-4f6c-b10a-68edc6fd2be4 new-vpcgen2-default-sec-grp-wdc Private IPs ID Name Address Subnet ID 0757-3bd457cb-af5a-4ab6-b9bb-6e78d3eaf752 iks-useast1-c8m5n3p2q4x6z1w7y077-2e8 172.22.0.11 0757-0c981aa5-cb47-41d9-ab29-edee98b416f8 Service Endpoints c8m5n3p2q4x6z1w7y077.vpe.private.us-east.containers.cloud.ibm.com Lifecycle State stable Health State ok Security groups ID Name r014-3873358e-3180-482b-927e-abcc300ecbf8 kube-vpegw-c8m5n3p2q4x6z1w7y077 Created 2026-04-03T12:14:59-05:00 Resource Group default -
可选:获取群集详细信息,查看 VPE 网关 URL。
ibmcloud ks cluster get -c c8m5n3p2q4x6z1w7y077示例输出
Retrieving cluster c8m5n3p2q4x6z1w7y077... OK Name: vpe-cross-account-test ID: c8m5n3p2q4x6z1w7y077 State: normal Status: All Workers Normal Created: 2026-04-03 11:56:38 -0500 (1 day ago) Resource Group ID: 950cec30388441ce809ca0d18b5ca3bc Resource Group Name: default Pod Subnet: 172.17.0.0/18 Service Subnet: 172.21.0.0/16 Workers: 2 Worker Zones: us-east-1 Ingress Subdomain: vpe-cross-account-test-354226545946e7ee0a2c700f061c1661-0000.us-east.containers.appdomain.cloud Ingress Secret: vpe-cross-account-test-354226545946e7ee0a2c700f061c1661-0000 Ingress Status: healthy Ingress Message: All Ingress components are healthy. Trusted Profile ID: - Public Service Endpoint URL: https://c111-e.us-east.containers.cloud.ibm.com:31100 Private Service Endpoint URL: https://c111.private.us-east.containers.cloud.ibm.com:31100 Pull Secrets: enabled in the default namespace VPCs: r014-464b4e54-48a8-4f6c-b10a-68edc6fd2be4 VPE Gateway: https://c8m5n3p2q4x6z1w7y077.vpe.private.us-east.containers.cloud.ibm.com:31100 OAuth Server URL: https://c111-e.us-east.containers.cloud.ibm.com:31264 Konnectivity Server URL: https://c8m5n3p2q4x6z1w7y077.vpe.private.us-east.containers.cloud.ibm.com:30996 Secure By Default Networking: enabled Outbound Traffic Protection: enabled Master Status: Ready (1 day ago) State: deployed Health: normal Version: 4.19.25_1572_openshift Location: Washington DC URL: https://c111-e.us-east.containers.cloud.ibm.com:31100
示例:源账户命令
下面的示例显示了在源账户中运行的命令,用于创建连接到目标账户群集的 VPE 网关。
-
验证您的目标源账户是否正确。
ibmcloud target示例输出
API endpoint: https://cloud.ibm.com Region: us-south User: user1@example.com Account: Source Account (a1b2c3d4e5f6789abcdef01234561111) <-> 1111111 Resource group: Default -
列出 VPC。
ibmcloud is vpcs示例输出
Listing vpcs in resource group Default and region us-south under account Source Account as user user1@example.com... ID Name Status Classic access Default network ACL Default security group Resource group Health state DNS Hub DNS Resolver Type r006-6f450c4b-c808-40e7-9de6-c61c262a2ae9 dev-ansiblepr-vpc available false vendor-paradox-ravioli-tank harmonica-hypnoses-tranquil-alkalize Default ok false system r006-bd06a98a-1183-42d2-810d-1c564eeb5f39 fvt-vpc-sdnlb-server-40 available false sloppy-program-venue-subsiding prattle-pension-wilt-recycled Default ok false system r006-ecf65055-6868-4368-aa7c-48fc5ac29ff8 network-fvt-us-south available false doorknob-baffle-quintet-poem spotted-sandpaper-auction-unluckily Default ok false system r006-4ff93772-cee9-4d64-9d87-d8b1b781e201 network-fvt-vpc-gen2 available false stegosaur-reach-boxlike-alone-stranger-uncork earplugs-preface-county-juicy-sensitize-babied Default ok false system -
使用目标账户的目标 CRN 创建 VPE 网关。
ibmcloud is endpoint-gateway-create --vpc network-fvt-us-south --target crn:v1:bluemix:public:containers-kubernetes:us-east:a/9f8e7d6c5b4a321fedcba98765432222:c8m5n3p2q4x6z1w7y077:: --name new-iks-c8m5n3p2q4x6z1w7y077 --resource-group-name Default示例输出
Creating endpoint gateway new-iks-c8m5n3p2q4x6z1w7y077 in resource group Default under account Source Account as user user1@example.com... ID r006-2009f147-768a-4f6a-b8fa-75f20456cec2 Name new-iks-c8m5n3p2q4x6z1w7y077 CRN crn:v1:bluemix:public:is:us-south:a/a1b2c3d4e5f6789abcdef01234561111::endpoint-gateway:r006-2009f147-768a-4f6a-b8fa-75f20456cec2 Target CRN crn:v1:bluemix:public:containers-kubernetes:us-east:a/9f8e7d6c5b4a321fedcba98765432222:c8m5n3p2q4x6z1w7y077:: DNS resolution binding mode primary Target Type provider_cloud_service Target Remote ID Name Resource type No target remote found. VPC ID Name r006-ecf65055-6868-4368-aa7c-48fc5ac29ff8 network-fvt-us-south Private IPs - Service Endpoints c8m5n3p2q4x6z1w7y077.vpe.private.us-east.containers.cloud.ibm.com Lifecycle State pending Health State ok Security groups ID Name r006-7ae081e2-743d-4046-b755-5ca9997ae077 spotted-sandpaper-auction-unluckily Created 2026-04-04T18:17:12-05:00 Resource Group Default -
列出子网,以确定哪些子网用于保留 IP。
ibmcloud is subnets --vpc network-fvt-us-south示例输出
Listing subnets in resource group Default and region us-south under account Source Account as user user1@example.com... ID Name Status Subnet CIDR Addresses ACL Public Gateway VPC Zone Resource group 0717-04288f84-4aef-4938-9fa7-5544a40ba258 network-fvt-us-south-1-priv available 10.240.0.0/24 251/256 doorknob-baffle-quintet-poem - network-fvt-us-south us-south-1 Default 0717-cdd4b20c-b48f-454b-b092-ad7aa14b39c8 network-fvt-us-south-1-pubgw available 10.240.1.0/24 246/256 doorknob-baffle-quintet-poem pgw-33eb53d0-74e4-11ee-a747-33927b3ab784 network-fvt-us-south us-south-1 Default 0727-8813de08-fffa-45e3-ae67-2ba70703866e network-fvt-us-south-2-priv available 10.240.64.0/24 250/256 doorknob-baffle-quintet-poem - network-fvt-us-south us-south-2 Default 0727-50b14707-c9f6-4f93-9f49-99de13c66161 network-fvt-us-south-2-pubgw available 10.240.65.0/24 251/256 doorknob-baffle-quintet-poem pgw-34fe4a70-74e4-11ee-a747-33927b3ab784 network-fvt-us-south us-south-2 Default 0737-7a644374-f121-44c1-b216-5fd94c0362b2 network-fvt-us-south-3-priv available 10.240.128.0/24 251/256 doorknob-baffle-quintet-poem - network-fvt-us-south us-south-3 Default 0737-71a34942-304c-4419-9205-3714a3574962 network-fvt-us-south-3-pubgw available 10.240.129.0/24 251/256 doorknob-baffle-quintet-poem pgw-36088e80-74e4-11ee-a747-33927b3ab784 network-fvt-us-south us-south-3 Default -
在第一个区域创建一个保留 IP,并将其连接到 VPE 网关。
ibmcloud is subnet-reserved-ip-create network-fvt-us-south-1-pubgw --vpc network-fvt-us-south --name reserved-ip-for-us-south-1 --auto-delete true --target new-iks-c8m5n3p2q4x6z1w7y077示例输出
Creating reserved IP in subnet network-fvt-us-south-1-pubgw under account Source Account as user user1@example.com... ID 0717-685e1410-2fa1-4e7a-a4e5-27a097ec7a7a Name reserved-ip-for-us-south-1 Address 0.0.0.0 Auto delete true Owner user Created 2026-04-04T18:18:51-05:00 Lifecycle state pending Target ID Name Resource type CRN r006-2009f147-768a-4f6a-b8fa-75f20456cec2 new-iks-c8m5n3p2q4x6z1w7y077 endpoint_gateway crn:v1:bluemix:public:is:us-south:a/a1b2c3d4e5f6789abcdef01234561111::endpoint-gateway:r006-2009f147-768a-4f6a-b8fa-75f20456cec2 -
确认已添加保留 IP。
ibmcloud is eg new-iks-c8m5n3p2q4x6z1w7y077示例输出
Getting endpoint gateway new-iks-c8m5n3p2q4x6z1w7y077 under account Source Account as user user1@example.com... ID r006-2009f147-768a-4f6a-b8fa-75f20456cec2 Name new-iks-c8m5n3p2q4x6z1w7y077 CRN crn:v1:bluemix:public:is:us-south:a/a1b2c3d4e5f6789abcdef01234561111::endpoint-gateway:r006-2009f147-768a-4f6a-b8fa-75f20456cec2 Target CRN crn:v1:bluemix:public:containers-kubernetes:us-east:a/9f8e7d6c5b4a321fedcba98765432222:c8m5n3p2q4x6z1w7y077:: DNS resolution binding mode primary Target Type provider_cloud_service Target Remote ID Name Resource type No target remote found. VPC ID Name r006-ecf65055-6868-4368-aa7c-48fc5ac29ff8 network-fvt-us-south Private IPs ID Name Address Subnet ID 0717-685e1410-2fa1-4e7a-a4e5-27a097ec7a7a reserved-ip-for-us-south-1 10.240.1.5 0717-cdd4b20c-b48f-454b-b092-ad7aa14b39c8 Service Endpoints c8m5n3p2q4x6z1w7y077.vpe.private.us-east.containers.cloud.ibm.com Lifecycle State stable Health State ok Security groups ID Name r006-7ae081e2-743d-4046-b755-5ca9997ae077 spotted-sandpaper-auction-unluckily Created 2026-04-04T18:17:12-05:00 Resource Group Default -
在第二个区域创建一个保留 IP,并将其连接到 VPE 网关。
ibmcloud is subnet-reserved-ip-create network-fvt-us-south-2-pubgw --vpc network-fvt-us-south --name reserved-ip-for-us-south-2 --auto-delete true --target new-iks-c8m5n3p2q4x6z1w7y077示例输出
Creating reserved IP in subnet network-fvt-us-south-2-pubgw under account Source Account as user user1@example.com... ID 0727-d315d943-c501-4f69-823d-bb82a2b13b29 Name reserved-ip-for-us-south-2 Address 0.0.0.0 Auto delete true Owner user Created 2026-04-04T18:19:24-05:00 Lifecycle state pending Target ID Name Resource type CRN r006-2009f147-768a-4f6a-b8fa-75f20456cec2 new-iks-c8m5n3p2q4x6z1w7y077 endpoint_gateway crn:v1:bluemix:public:is:us-south:a/a1b2c3d4e5f6789abcdef01234561111::endpoint-gateway:r006-2009f147-768a-4f6a-b8fa-75f20456cec2 -
在第三个区域创建一个保留 IP,并将其连接到 VPE 网关。
ibmcloud is subnet-reserved-ip-create network-fvt-us-south-3-pubgw --vpc network-fvt-us-south --name reserved-ip-for-us-south-3 --auto-delete true --target new-iks-c8m5n3p2q4x6z1w7y077示例输出
Creating reserved IP in subnet network-fvt-us-south-3-pubgw under account Source Account as user user1@example.com... ID 0737-afbebd9f-02bd-4b9a-be90-5bacf9836041 Name reserved-ip-for-us-south-3 Address 0.0.0.0 Auto delete true Owner user Created 2026-04-04T18:19:32-05:00 Lifecycle state pending Target ID Name Resource type CRN r006-2009f147-768a-4f6a-b8fa-75f20456cec2 new-iks-c8m5n3p2q4x6z1w7y077 endpoint_gateway crn:v1:bluemix:public:is:us-south:a/a1b2c3d4e5f6789abcdef01234561111::endpoint-gateway:r006-2009f147-768a-4f6a-b8fa-75f20456cec2 -
确认已添加所有保留 IP。
ibmcloud is eg new-iks-c8m5n3p2q4x6z1w7y077示例输出
Getting endpoint gateway new-iks-c8m5n3p2q4x6z1w7y077 under account Source Account as user user1@example.com... ID r006-2009f147-768a-4f6a-b8fa-75f20456cec2 Name new-iks-c8m5n3p2q4x6z1w7y077 CRN crn:v1:bluemix:public:is:us-south:a/a1b2c3d4e5f6789abcdef01234561111::endpoint-gateway:r006-2009f147-768a-4f6a-b8fa-75f20456cec2 Target CRN crn:v1:bluemix:public:containers-kubernetes:us-east:a/9f8e7d6c5b4a321fedcba98765432222:c8m5n3p2q4x6z1w7y077:: DNS resolution binding mode primary Target Type provider_cloud_service Target Remote ID Name Resource type No target remote found. VPC ID Name r006-ecf65055-6868-4368-aa7c-48fc5ac29ff8 network-fvt-us-south Private IPs ID Name Address Subnet ID 0737-afbebd9f-02bd-4b9a-be90-5bacf9836041 reserved-ip-for-us-south-3 10.240.129.5 0737-71a34942-304c-4419-9205-3714a3574962 0717-685e1410-2fa1-4e7a-a4e5-27a097ec7a7a reserved-ip-for-us-south-1 10.240.1.5 0717-cdd4b20c-b48f-454b-b092-ad7aa14b39c8 0727-d315d943-c501-4f69-823d-bb82a2b13b29 reserved-ip-for-us-south-2 10.240.65.5 0727-50b14707-c9f6-4f93-9f49-99de13c66161 Service Endpoints c8m5n3p2q4x6z1w7y077.vpe.private.us-east.containers.cloud.ibm.com Lifecycle State stable Health State ok Security groups ID Name r006-7ae081e2-743d-4046-b755-5ca9997ae077 spotted-sandpaper-auction-unluckily Created 2026-04-04T18:17:12-05:00 Resource Group Default -
从源 VPC 中的 VSI 测试连接。
curl -k https://c8m5n3p2q4x6z1w7y077.vpe.private.us-east.containers.cloud.ibm.com:31100/version示例输出
{ "major": "1", "minor": "32", "gitVersion": "v1.32.12", "gitCommit": "9b706b45b52a0c8bb05847295ee98ffccbabba32", "gitTreeState": "clean", "buildDate": "2026-02-19T13:30:47Z", "goVersion": "go1.23.10 (Red Hat 1.23.10-10.el9) X:strictfipsruntime", "compiler": "gc", "platform": "linux/amd64" } -
验证主机名是否解析到保留 IP。
dig +short c8m5n3p2q4x6z1w7y077.vpe.private.us-east.containers.cloud.ibm.com示例输出
10.240.65.5
使用 API 密钥从自动化工具访问群集
Red Hat OpenShift on IBM Cloud 集成于 IBM CloudIdentity and Access Management (IAM)。 通过 IAM,您可以使用其 IAM 身份对用户和服务进行认证,并通过访问角色和策略来授权操作。 当你通过 Red Hat OpenShift 控制台进行用户身份验证时,你的 IAM 身份会被用来生成 Red Hat OpenShift 登录令牌,你可以用它登录到命令行。 通过创建 IAM API 密钥或服务标识以用于
oc login 命令,可以自动登录到集群。
使用 API 密钥登录群集
您可以创建 IBM Cloud IAM API 密钥,然后使用 API 密钥登录 Red Hat OpenShift 集群。 通过 API 密钥,可以使用一个用户或共享帐户的凭证来访问集群,而不必分别进行登录。 您还可以为服务标识创建 API 密钥。 有关更多信息,请参阅了解 API 密钥。
-
创建 IBM Cloud API 密钥。 请将 API 密钥保存在安全位置。 您无法再次获取 API 密钥。 如果要将输出导出到本地计算机上的文件,请加入
--file <path>/<file_name>选项。ibmcloud iam api-key-create <name> -
配置集群以将 API 密钥用户添加到集群 RBAC 策略,并将会话上下文设置为集群服务器。
- 使用 API 密钥凭证登录到 IBM Cloud。
ibmcloud login --apikey <API_key> - 将集群的
kubeconfig配置文件下载并添加到~/.kube/config中的现有kubeconfig或KUBECONFIG环境变量中的最后一个文件。 注: 如果您已启用私有云服务端点并希望将其用于集群上下文,请包含--endpoint private选项。 要使用私有云服务端点连接到集群,您必须位于 IBM Cloud 专用网络中,或者通过 VPC VPN 连接 连接到专用网络,或者对于经典基础结构,经典 VPN 连接 或 IBM Cloud Direct Link。ibmcloud oc cluster config -c <cluster_name_or_ID> [--endpoint private]
- 使用 API 密钥凭证登录到 IBM Cloud。
-
将 IBM Cloud IAM API 密钥凭证交换为 Red Hat OpenShift 访问令牌。 您可以从 CLI 或 API 登录。 有关更多信息,请参阅 Red Hat OpenShift 文档。
使用
ocCLI 登录: 使用oc login命令登录群集。 用户名 (-u) 是apikey,密码 (-p) 是 IBM Cloud IAM API 密钥值。 要使用私有云服务端点,请包含--server=<private_service_endpoint>选项。oc login -u apikey -p <API_key> [--server=<private_service_endpoint>]通过运行 Red Hat OpenShift API 请求直接针对集群登录: 使用 API (例如,通过 curl 请求) 登录到集群。
-
获取集群的主 URL。
ibmcloud oc cluster get -c <cluster_name_or_ID>示例输出
NAME: mycluster ID: 1234567 State: normal Created: 2020-01-22T19:22:16+0000 Location: dal10 Master URL: https://c100-e.<region>.containers.cloud.ibm.com:<port> ... -
获取 Red Hat OpenShift
oauth服务器的令牌端点。curl <master_URL>/.well-known/oauth-authorization-server | jq -r .token_endpoint示例输出
<token_endpoint>/oauth/token: 屏幕}
-
使用先前检索到的端点登录到集群。 将
<URL>替换为oauth服务器的<token_endpoint>。示例 curl 请求:
curl -u 'apikey:<API_key>' -H "X-CSRF-Token: a" '<URL>/oauth/authorize?client_id=openshift-challenging-client&response_type=token' -vvv -
在 Location 响应中,查找
access_token,如以下示例中所示。< HTTP/1.1 302 Found < Cache-Control: no-cache, no-store, max-age=0, must-revalidate < Cache-Control: no-cache, no-store, max-age=0, must-revalidate < Expires: 0 < Expires: Fri, 01 Jan 1990 00:00:00 GMT < Location: <token_endpoint>/oauth/token/implicit#access_token=<access_token>&expires_in=86400&scope=user%3Afull&token_type=Bearer ... -
使用集群管理员 URL 和访问令牌访问 Red Hat OpenShift API,例如列出集群中的所有 Pod。 更多信息,请参阅 Red Hat OpenShift API文档。
示例 curl 请求:
curl -H "Authorization: Bearer <access_token>" '<master_URL>/api/v1/pods'
-
使用服务 ID 登录群集
您可以创建 IBM Cloud IAM 服务 ID,为服务 ID 制作 API 密钥,然后使用 API 密钥登录 Red Hat OpenShift 集群。 可以使用服务标识,以便其他集群或云中托管的应用程序可以访问您集群的服务。 由于服务标识不会绑定到特定用户,因此如果单个用户离开您的帐户,应用程序仍可以认证服务标识。 有关更多信息,请参阅创建和使用服务标识。
-
为集群创建 IBM Cloud IAM 服务标识,此标识用于 IAM 策略和 API 密钥凭证。 请确保为服务标识提供描述,以帮助您日后检索服务标识,例如包含集群名称。
ibmcloud iam service-id-create <cluster_name>-id --description "Service ID for Red Hat OpenShift on IBM Cloud cluster <cluster_name>"示例输出
NAME <cluster_name>-id Description Service ID for Red Hat OpenShift on IBM Cloud cluster <cluster_name> CRN crn:v1:bluemix:public:iam-identity::a/1aa111aa1a11111aaa1a1111aa1aa111::serviceid:ServiceId-bbb2b2b2-2bb2-2222-b222-b2b2b2222b22 Bound To crn:v1:bluemix:public:::a/1aa111aa1a11111aaa1a1111aa1aa111::: Version 1-c3c333333333ccccc33333c33cc3cc33 Locked false UUID ServiceId-bbb2b2b2-2bb2-2222-b222-b2b2b2222b22 -
为集群服务标识创建定制 IBM Cloud IAM 策略,以授予对 Red Hat OpenShift on IBM Cloud 的访问权。
ibmcloud iam service-policy-create <cluster_service_ID> --service-name containers-kubernetes --roles <service_access_role> --service-instance <cluster_ID>了解此命令的组成部分 参数 描述 <cluster_service_ID>必需。 输入您之前为 Red Hat OpenShift 集群创建的服务 ID。 --service-name containers-kubernetes必需。 输入 containers-kubernetes,以便 IAM 策略用于 Red Hat OpenShift on IBM Cloud 集群。--roles <service_access_role>必需。 输入您希望服务 ID 对 Red Hat OpenShift 集群的访问角色。 平台访问角色 允许群集管理活动,如创建工作节点。 服务访问角色 对应于 RBAC 角色,允许 Red Hat OpenShift 集群内的管理活动,如 Kubernetes 资源(如 pod 和命名空间)。 对于多个角色,请使用逗号分隔的列表。 可能的值是 Administrator、Operator、Editor和Viewer(平台访问角色);以及Reader、Writer和Manager(服务访问角色)。--service-instance <cluster_ID>要将策略的作用对象限制为特定集群,请输入该集群的标识。 要获取集群标识,请运行 ibmcloud oc clusters。 如果不包括服务实例,访问策略会授予服务 ID 对所有群集、Kubernetes 和 Red Hat OpenShift 的访问权。 此外,还可以将访问策略的作用域限定为某个区域 (--region) 或资源组 (--resource-group-name)。 -
为服务标识创建 API 密钥。 将 API 密钥命名为与您的服务 ID 相似的名称,并包含您之前创建的服务 ID,
<cluster_name>-id。 请确保为 API 密钥提供描述,以帮助您日后检索该密钥。 请将 API 密钥保存在安全位置。 您无法再次获取 API 密钥。 如果要将输出导出到本地计算机上的文件,请加入--file <path>/<file_name>选项。ibmcloud iam service-api-key-create <cluster_name>-key <service_ID> --description "API key for service ID <service_ID> in Red Hat OpenShift cluster <cluster_name>"示例输出
Please preserve the API key! It can't be retrieved after it's created. Name <cluster_name>-key Description API key for service ID <service_ID> in Red Hat OpenShift cluster <cluster_name> Bound To crn:v1:bluemix:public:iam-identity::a/1bb222bb2b33333ddd3d3333ee4ee444::serviceid:ServiceId-ff55555f-5fff-6666-g6g6-777777h7h7hh Created At 2019-02-01T19:06+0000 API Key i-8i88ii8jjjj9jjj99kkkkkkkkk_k9-llllll11mmm1 Locked false UUID ApiKey-222nn2n2-o3o3-3o3o-4p44-oo444o44o4o4 -
配置集群以将服务标识用户添加到集群 RBAC 策略,并将会话上下文设置为集群服务器。
-
使用服务标识的 API 密钥凭证登录到 IBM Cloud。
ibmcloud login --apikey <API_key> -
将集群的
kubeconfig配置文件下载并添加到~/.kube/config中的现有kubeconfig或KUBECONFIG环境变量中的最后一个文件。 注: 如果您已启用私有云服务端点并希望将其用于集群上下文,请包含--endpoint private选项。 要使用私有云服务端点连接到集群,您必须位于 IBM Cloud 专用网络中,或者通过 VPC VPN 连接 连接到专用网络,或者对于经典基础结构,经典 VPN 连接 或 IBM Cloud Direct Link。ibmcloud oc cluster config -c <cluster_name_or_ID> [--endpoint private]
-
-
使用服务 ID 的 API 密钥登录 Red Hat OpenShift 集群。 用户名 (
-u) 是apikey,密码 (-p) 是您的 API 密钥值。 要使用私有云服务端点,请包含--server=<private_service_endpoint>选项。oc login -u apikey -p <API_key> [--server=<private_service_endpoint>] -
验证服务标识是否可以执行您授权的操作。
例如:如果分配了
Reader服务访问角色,服务 ID 就可以列出 Red Hat OpenShift 项目中的 pod。oc get pods例如:如果分配了
Manager服务访问角色,则服务 ID 可以列出 Red Hat OpenShift 集群中的用户。 IAM 服务标识位于 Identities 输出中。 其他各个用户可能通过其电子邮件地址和 IBM 标识进行识别。oc get users示例输出
NAME UID FULL NAME IDENTITIES IAM# dd44ddddd-d4dd-44d4-4d44-4d44d444d444 IAM:iam-ServiceId-bbb2b2b2-2bb2-2222-b222-b2b2b2222b22 IAM#first.last@email.com 55555ee5-e555-55e5-e5e5-555555ee55ee IAM:IBMid-666666FFF6
使用基于上下文的限制来保护集群
不再支持专用服务端点允许列表。 尽快从专用服务端点允许列表迁移到基于上下文的限制。 有关具体迁移步骤,请参阅 从专用服务端点允许列表迁移到基于上下文的限制(CBR)。
使用基于上下文的限制(CBR)规则,控制对公共和专用服务端点的访问。
通过 IBM Cloud IAM 授予用户访问群集的权限 后,您可以为群集的公共和私有服务端点创建 CBR 规则,从而增加第二层安全性。 只允许向群集主控发送来自 CBR 规则中子网的授权请求。
如果要允许来自与群集所在 VPC 不同的 VPC 的请求,则必须在 CBR 规则中包含该 VPC 的云服务端点 IP 地址。
例如,要访问集群的私有云服务端点,必须通过 VPN 或 IBM Cloud Direct Link连接到 IBM Cloud 经典网络或 VPC 网络。 您可以在 CBR 规则中只指定 VPN 或 Direct Link 隧道的子网,这样只有组织内的授权用户才能从该子网访问私有云服务端点。
公共 CBR 规则(如果群集有公共服务端点)还有助于防止用户在授权被撤销后访问群集。 当用户离开组织时,您将删除其 IBM Cloud IAM 权限,因为该权限授予他们访问群集的权限。 不过,用户可能复制了某个群集的管理员 kubeconfig 文件,从而获得了访问该群集的权限。 如果公共 CBR 规则只允许从贵组织拥有的已知公共子网访问群集主控器,那么用户试图从另一个公共 IP 地址访问将被阻止。
工作节点子网会自动添加到后端 CBR 实现(但不会从 CBR 规则/区域)中移除,这样工作节点就能始终访问群集主控器,用户也无需特别将这些子网添加到自己的 CBR 规则中。
要了解有关使用 CBR 规则保护群集的更多信息,请参阅 使用基于上下文的限制保护群集资源 和 基于上下文的限制方案示例