第 1 章 服务概述
您可以添加用于 Red Hat Advanced Cluster Management for Kubernetes 的服务,这些服务可以提高某些性能。服务在一个受管集群或多个受管集群中运行。
以下小节提供了 Red Hat Advanced Cluster Management 可用的服务概述:
1.1. Submariner 网络服务(技术预览) 复制链接链接已复制到粘贴板!
submariner-addon
组件是一个技术预览功能。
Submariner 服务是一个开源工具,可与 Red Hat Advanced Cluster Management for Kubernetes 一起使用,用于为您的环境中两个或多个 Kubernetes 集群(内部环境或云)提供 Pod 之间的直接联网。有关 Submariner 的更多信息,请参阅 Submariner。
您可以在以下环境中托管的 OpenShift Container Platform 集群上启用 Submariner:
- Amazon Web Services (AWS)
- Google Cloud Platform
- Microsoft Azure
- IBM Cloud
- Red Hat OpenShift Dedicated
- VMware vSphere
Red Hat Advanced Cluster Management for Kubernetes 提供了一个 Submariner 组件,您可以使用 hub 集群在环境中部署。
1.1.1. 先决条件 复制链接链接已复制到粘贴板!
在使用 Submariner 前,请确保已满足以下先决条件:
- 在 Red Hat OpenShift Container Platform 版本 4.6 或更高版本上运行的 Red Hat Advanced Cluster Management hub 集群,Kubernetes 版本 1.19 或更高版本。
-
使用
cluster-admin
权限访问 hub 集群的凭证。 - 在 OpenShift Container Platform 版本 4.4 或更高版本上运行的两个或者两个以上 OpenShift Container Platform 受管集群,Kubernetes 版本 1.17 或更高版本,由 Red Hat Advanced Cluster Management hub 集群管理。
- 不重叠的集群间的 Pod 和 Service Classless Inter-Domain Routing(CIDR)。
- 在网关节点之间配置了 IP 连接。连接两个集群时,网关节点必须可使用分配给网关节点的公共或私有 IP 地址访问至少一个集群。如需更多信息,请参阅 Submariner Nat Traversal。
- 各个受管集群中所有节点的防火墙配置必须同时允许 4800/UDP。
- 网关节点上的防火墙配置允许入口 8080/TCP,以便集群中的其他节点可以访问它。
为 4500/UDP 以及网关节点上 IPsec 流量的其他端口打开防火墙配置。
注:当您的集群部署在 AWS 或 Google Cloud Platform 环境中时,这会自动配置,但必须为其他环境中的集群以及保护私有云的防火墙手动配置。
Expand 表 1.1. Submariner 需要的端口 Name 默认值 Customizable IPsec NATT
4500/UDP
是
VXLAN
4800/UDP
否
Submariner 指标端口
8080/UDP
否
有关先决条件的详情,请参阅 Marmariner 先决条件。
1.1.2. 准备所选主机来部署 Submariner 复制链接链接已复制到粘贴板!
在 Microsoft Azure、IBM Cloud 或 Red Hat OpenShift Dedicated 上使用 Red Hat Advanced Cluster Management for Kubernetes 部署 Submariner 前,您必须在托管环境中手动为连接准备集群。不同主机环境的要求有所不同,因此请按照您的托管环境说明进行操作。
1.1.2.1. 准备 Microsoft Azure 以部署 Submariner 复制链接链接已复制到粘贴板!
要准备 Microsoft Azure 上的集群来部署 Submariner 组件,请完成以下步骤:
在 Microsoft Azure 环境中创建入站和出站防火墙规则,以打开 IP 安全 NAT 遍历端口(默认为 4500/UDP)以启用 Submariner 通信:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
lb-name
替换为您的负载均衡器名称。将
res-group
替换为您的资源组名称。使用负载平衡入站 NAT 规则名称替换替换
nat-name
。使用您的 IPsec 端口替换
ipsec-port
。将
pipConfig
替换为集群前端 IP 配置名称。将
nic-name
替换为您的网卡(NIC)。创建一个负载均衡入站 NAT 规则以转发 Submariner 网关指标服务请求:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
lb-name
替换为您的负载均衡器名称。将
res-group
替换为您的资源组名称。使用负载平衡入站 NAT 规则名称替换替换
nat-name
。将
pipConfig
替换为集群前端 IP 配置名称。将
nic-name
替换为您的网卡(NIC)。在 Azure 上创建网络安全组 {NSG)安全规则,为 Submariner 打开 NAT 遍历端口(默认为 4500/UDP):
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 NSG 规则以打开 4800/UDP 端口,将来自 worker 和 master 节点的 pod 流量封装到 Submariner 网关节点:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
res-group
替换为您的资源组名称。使用您的 NSG 名称替换
nsg-name
。将
priority
替换为您的规则优先级。使用您的规则名称替换
name
。创建 NSG 规则以打开 8080/TCP 端口,从 Submariner Gateway 节点导出指标服务:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
res-group
替换为您的资源组名称。使用您的 NSG 名称替换
nsg-name
。将
priority
替换为您的规则优先级。使用您的规则名称替换
name
。-
使用以下标签
submariner.io/gateway=true
标记集群中的 worker 节点。
1.1.2.2. 准备 IBM Cloud 来部署 Submariner 复制链接链接已复制到粘贴板!
IBM Cloud 上有两种 Red Hat OpenShift Kubernetes Service(ROKS):经典(classic)集群,以及在虚拟私有云(VPC)中的第二代计算基础架构。因为无法为经典集群配置 IPsec 端口,所以 Submariner无法在典型的 ROKS 集群上运行。
要将 VPC 上的 ROKS 集群配置为使用 Submariner,请完成以下链接中的步骤:
1.1.2.3. 准备 Red Hat OpenShift Dedicated 来部署 Submariner 复制链接链接已复制到粘贴板!
Red Hat OpenShift Dedicated 支持由 AWS 和 Google Cloud Platform 置备的集群。
要在 Red Hat OpenShift Dedicated 上配置 AWS 集群,请完成以下步骤:
-
向 Red Hat OpenShift Hosted SRE 支持团队提交支持问题单,以便获取 Red Hat OpenShift Dedicated 集群的
cluster-admin
组访问权限。dedicated-admin
的默认访问权限并没有包括创建MachineSet
所需的权限。 -
创建组后,在完成 Red Hat OpenShift Dedicated 文档中的为用户分配 cluster-admin 角色
的步骤时创建的
cluster-admin 组中添加用户名。 -
配置用户
osdCcsAdmin
的凭证,以便将该用户用作服务帐户。 - 将集群导入到 Red Hat Advanced Cluster Management,并按照使用控制台部署 Submariner 中的说明进行操作。
要在 Red Hat OpenShift Dedicated 上配置 Google Cloud Platform 集群,请完成以下步骤:
-
配置名为
osd-ccs-admin
的服务帐户,可用于管理部署。 - 将集群导入到 Red Hat Advanced Cluster Management,并按照使用控制台部署 Submariner 中的说明进行操作。
1.1.3. 使用控制台部署 Submariner 复制链接链接已复制到粘贴板!
submariner-addon
组件是一个技术预览功能。
您可以使用 Red Hat Advanced Cluster Management for Kubernetes 控制台,在 Amazon Web Services、Google Cloud Platform 和 VMware vSphere 上部署的 Red Hat OpenShift Container Platform 受管集群上部署 Submariner。要将 Submariner 部署到其他提供程序上,请按照使用 API 部署 Submariner 中的说明操作。完成以下步骤,使用 Red Hat Advanced Cluster Management for Kubernetes 控制台部署 Submariner:
需要的访问权限:集群管理员
- 在控制台导航菜单中选择 Infrastructure > Clusters。
- 在 Clusters 页面上,选择 Cluster sets 选项卡。要使用 Submariner 启用的集群必须位于同一集群集合中。
- 如果要在其上部署 Submariner 的集群已位于同一集群集中,请跳至第 5 步来部署 Submariner。
如果要在其上部署 Submariner 的集群不在同一个集群集中,请完成以下步骤为它们创建一个集群集:
- 选择 Create cluster set。
- 对集群集进行命名,然后选择 Create。
- 选择 Manage resource assignments 以将集群分配到集群集。
- 选择您要与 Submariner 连接的受管集群,将它们添加到集群集合中。
- 选择 Review 来查看并确认您选择的集群。
- 选择 Save 保存集群集,并查看生成的集群设置页面。
- 在集群集页面中,选择 Submariner add-ons 选项卡。
- 选择 Install Submariner add-ons。
- 选择您要在其上部署 Submariner 的集群。
在 Install Submariner add-ons 编辑器中输入以下信息 :
-
AWS Access Key ID
- 此字段仅在导入 AWS 集群时可见。 -
AWS Secret Access Key
- 此字段仅在导入 AWS 集群时可见。 -
Google Cloud Platform service account JSON key
- 此字段仅在导入 Google Cloud Platform 集群时可见。 -
Instance type
- 在受管集群中创建的网关节点的 Amazon Web Services EC2 实例类型。默认值为m5n.large
。只有在受管集群环境是 AWS 时,此字段才可见。 -
IPsec NAT-T port
- IPsec NAT 遍历端口的默认值是4500
。如果您的受管集群环境是 VMware vSphere,请确保在防火墙中打开此端口。 -
网关数
- 用于在受管集群中部署 Submariner 网关组件的 worker 节点数量。默认值为1
。如果值大于 1,则会自动启用 Submariner 网关高可用性(HA)。 -
Cable driver
- 维护跨集群隧道的 Submariner 网关电缆引擎组件。默认值为Libreswan IPsec
。
-
- 在编辑器末尾选择 Next 以移动到下一个集群的编辑器,并为您选择的每个剩余的集群完成这个步骤。
- 验证每个受管集群的配置。
点 Install 在所选受管集群上部署 Submariner。
安装和配置完成可能需要几分钟时间。您可以在 Submariner add-ons 选项卡中的列表中检查 Submariner 状态:
-
连接状态
指示在受管集群中建立多少个 Submariner 连接。 -
代理状态
代表 Submariner 是否成功部署到受管集群中。控制台可能会报告Degraded
状态,直到安装和配置为止。 -
Gateway nodes labeled
表示有多少个 worker 节点使用 Submariner 网关标签:submariner.io/gateway=true
。
-
Submariner 现在在集群中部署。
1.1.4. 使用 API 部署 Submariner 复制链接链接已复制到粘贴板!
在使用 Red Hat Advanced Cluster Management for Kubernetes 部署 Submariner 前,您必须在托管环境中为连接准备集群。目前,您可以使用 SubmarinerConfig
API 在 Amazon Web Services、Google Cloud Platform 和 VMware vSphere 上自动准备集群。对于其他平台,您需要手动进行准备,请参阅准备主机以部署 Submariner 的步骤。
1.1.4.1. 准备主机来部署 Submariner 复制链接链接已复制到粘贴板!
在使用 Red Hat Advanced Cluster Management 部署 Submariner 前,您必须在托管环境中为连接准备集群。不同主机环境的要求各不相同,因此请按照您的托管环境说明进行操作。
1.1.4.1.1. 准备 Amazon Web Services 以部署 Submariner 复制链接链接已复制到粘贴板!
您可以使用 SubmarinerConfig
API 将 AWS 集群配置为与 Submariner 部署集成。按照适用于您的情况的步骤,准备 AWS 来安装 Submariner:
如果没有使用 Red Hat Advanced Cluster Management 创建受管集群,则必须在包含 AWS 凭证 secret 的受管集群的命名空间中手动在 hub 集群中创建一个 secret。如果使用 Red Hat Advanced Cluster Management 创建集群,则跳至第 2 步。
要创建 secret,输入一个包含类似以下示例的信息的命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
managed-cluster-name
替换为受管集群的名称。将
managed-cluster-namespace
替换为受管集群的命名空间。使用 AWS 访问密钥 ID 替换
aws-access-key-id
。使用 AWS 访问密钥替换
aws-secret-access-key
。如果您使用 Red Hat Advanced Cluster Management 创建受管集群,或者在上一步中创建 secret 后,输入类似以下示例的命令来准备集群:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
managed-cluster-namespace
替换为受管集群的命名空间。将
managed-cluster-name
替换为受管集群的名称。managed-cluster-name-aws-creds
的值是 AWS 凭证 secret 名称,您可以在 hub 集群的集群命名空间中找到该名称。注:
SubmarinerConfig
的名称必须是submariner
,如示例中所示。此配置会自动打开 Submariner 所需的端口:网络地址转换 - 遍历 (NATT) 端口 (4500/UDP)、虚拟可扩展 LAN (VXLAN) 端口 (4800/UCP),以及 AWS 实例上的 Submariner 指标端口 (8080/TCP)。它还创建一个 AWS 实例,作为 AWS 实例类型为
m5n.large
的 Submariner 网关。如果要自定义 NATT 端口,请输入包含类似以下示例的信息的命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
managed-cluster-namespace
替换为受管集群的命名空间。将
managed-cluster-name
替换为受管集群的名称。managed-cluster-name-aws-creds
的值是 AWS 凭证 secret 名称,您可以在 hub 集群的集群命名空间中找到该名称。将
NATTPort
替换为您要使用的 NATT 端口。注:
SubmarinerConfig
的名称必须是submariner
,如示例中所示。如果要自定义网关节点的 AWS 实例类型,请输入一个包含类似以下示例的信息的命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
managed-cluster-namespace
替换为受管集群的命名空间。将
managed-cluster-name
替换为受管集群的名称。managed-cluster-name-aws-creds
的值是 AWS 凭证 secret 名称,您可以在 hub 集群的集群命名空间中找到该名称。使用您要使用的 AWS 实例类型替换 instance-type。
注:
SubmarinerConfig
的名称必须是submariner
,如示例中所示。如果要自定义网关节点的数量,请输入一个包含类似以下示例的信息的命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
managed-cluster-namespace
替换为受管集群的命名空间。将
managed-cluster-name
替换为受管集群的名称。managed-cluster-name-aws-creds
的值是 AWS 凭证 secret 名称,您可以在 hub 集群的集群命名空间中找到该名称。使用您要使用的网关数量替换
gateway
。如果值大于 1,则 Submariner 网关会自动启用高可用性。注:
SubmarinerConfig
的名称必须是submariner
,如示例中所示。
1.1.4.1.2. 准备 Google Cloud Platform 以部署 Submariner 复制链接链接已复制到粘贴板!
您可以使用 SubmarinerConfig
API 配置 Google Cloud Platform 集群,使其与 Submariner 部署集成。按照适用于您情况的步骤准备 Google Cloud Platform 以安装 Submariner:
如果没有使用 Red Hat Advanced Cluster Management 创建受管集群,您必须在包含 Google Cloud Platform 凭证 secret 的受管集群的命名空间中手动在 hub 集群中创建一个 secret。如果使用 Red Hat Advanced Cluster Management 创建集群,则跳至第 2 步。
要创建 secret,输入一个包含类似以下示例的信息的命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
managed-cluster-name
替换为受管集群的名称。managed-cluster-name-aws-creds
的值是 Google Cloud Platform 凭证 secret 名称,您可以在 hub 集群的集群命名空间中找到该 secret。将
managed-cluster-namespace
替换为受管集群的命名空间。将
gcp-os-service-account-json-file-content
替换为 Google Cloud PlatformosServiceAccount.json
文件的内容。如果您使用 Red Hat Advanced Cluster Management 创建受管集群,或者已在上一步中创建了 secret,请输入类似以下示例的命令来准备集群:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
managed-cluster-namespace
替换为受管集群的命名空间。将
managed-cluster-name
替换为受管集群的名称。managed-cluster-name-gcp-creds
的值是 Google Cloud Platform 凭证 secret 名称,您可以在 hub 集群的集群命名空间中找到该 secret。注:
SubmarinerConfig
的名称必须是submariner
,如示例中所示。此配置会自动打开 Submariner 所需的端口:网络地址转换 - 遍历 (NATT) 端口 (4500/UDP)、虚拟可扩展 LAN (VXLAN) 端口 (4800/UCP),以及 Google Cloud Platform 实例上的 Submariner 指标端口 (8080/TCP)。它还将一个 worker 节点标记为 Submariner 网关,并在 Google Cloud Platform 集群中启用此节点的公共 IP 地址。
如果要自定义 NATT 端口,请输入包含类似以下示例的信息的命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
managed-cluster-namespace
替换为受管集群的命名空间。将
managed-cluster-name
替换为受管集群的名称。managed-cluster-name-gcp-creds
的值是 Google Cloud Platform 凭证 secret 名称,您可以在 hub 集群的集群命名空间中找到该 secret。将
NATTPort
替换为您要使用的 NATT 端口。注:
SubmarinerConfig
的名称必须是submariner
,如示例中所示。如果要自定义网关节点的数量,请输入一个包含类似以下示例的信息的命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
managed-cluster-namespace
替换为受管集群的命名空间。将
managed-cluster-name
替换为受管集群的名称。managed-cluster-name-aws-creds
的值是 Google Cloud Platform 凭证 secret 名称,您可以在 hub 集群的集群命名空间中找到该 secret。使用您要使用的网关数量替换
gateway
。如果值大于 1,则 Submariner 网关会自动启用高可用性。
1.1.4.1.3. 准备在 VMware vSphere 上部署 Submariner 复制链接链接已复制到粘贴板!
Submariner 使用 IPsec 在网关节点上的集群之间建立安全隧道。您可以使用默认端口或指定自定义端口。当您运行这个步骤时,没有指定 IPsec NATT 端口,默认端口会自动用于通信。默认端口为 4500/UDP。
Submariner 使用虚拟可扩展 LAN (VXLAN) 在流量从 worker 和 master 节点移动到网关节点时封装流量。VXLAN 端口无法自定义,并且始终是端口 4800/UDP。
Submariner 使用 8080/TCP 在集群中的节点之间发送其指标信息,此端口无法自定义。
在启用 Submariner 前,VMWare vSphere 管理员必须打开以下端口:
Name | 默认值 | Customizable |
---|---|---|
IPsec NATT | 4500/UDP | 是 |
VXLAN | 4800/UDP | 否 |
Submariner 指标 | 8080/TCP | 否 |
要准备 VMware vSphere 集群以部署 Submariner,请完成以下步骤:
- 确保 IPsec NATT、VXLAN 和指标端口已打开。
输入一个包含类似以下示例信息的命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
managed-cluster-namespace
替换为受管集群的命名空间。注:
SubmarinerConfig
的名称必须是submariner
,如示例中所示。此配置对 Submariner 使用默认的网络地址转换 - 遍历(NATT)端口(4500/UDP),一个 worker 节点标记为 vSphere 集群上的 Submariner 网关。
Submariner 使用 IP 安全 (IPsec) 在网关节点上的集群之间建立安全隧道。您可以使用默认 IPsec NATT 端口,或者指定您配置的不同端口。当您运行这个步骤时,没有指定 IPsec NATT 端口 4500/UDP,将自动用于通信。
如果要自定义 NATT 端口,请输入包含类似以下示例的信息的命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
managed-cluster-namespace
替换为受管集群的命名空间。将
NATTPort
替换为您要使用的 NATT 端口。注:
SubmarinerConfig
的名称必须是submariner
,如示例中所示。如果要自定义网关节点的数量,请输入一个包含类似以下示例的信息的命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
managed-cluster-namespace
替换为受管集群的命名空间。使用您要使用的网关数量替换
gateway
。如果值大于 1,则 Submariner 网关会自动启用高可用性。
1.1.4.2. 使用 ManagedClusterAddOn API 部署 Submariner 复制链接链接已复制到粘贴板!
要使用 ManagedClusterAddOn
API 部署 Submariner,请完成以下步骤:
按照 Creating and managing ManagedClusterSets 中的信息在 hub 集群中创建一个
ManagedClusterSet
。ManagedClusterSet
的条目应类似以下内容:apiVersion: cluster.open-cluster-management.io/v1alpha1 kind: ManagedClusterSet metadata: name: <managed-cluster-set-name>
apiVersion: cluster.open-cluster-management.io/v1alpha1 kind: ManagedClusterSet metadata: name: <managed-cluster-set-name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
managed-cluster-set-name
替换为您要创建的ManagedClusterSet
的名称。注:Kubernetes 命名空间名称的最大长度为 63 个字符,因此
<managed-cluster-set-name>
的最大长度为 56 个字符。如果<managed-cluster-set-name>
的长度超过 56,则<managed-cluster-set-name>
将从头截断。创建
ManagedClusterSet
后,submariner-addon
会创建一个名为<managed-cluster-set-name>-broker
的命名空间,并将 Submariner 代理部署到其中。输入以下命令在
ManagedClusterSet
中添加一个受管集群:oc label managedclusters <managed-cluster-name> "cluster.open-cluster-management.io/clusterset=<managed-cluster-set-name>" --overwrite
oc label managedclusters <managed-cluster-name> "cluster.open-cluster-management.io/clusterset=<managed-cluster-set-name>" --overwrite
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<managed-cluster-name>
替换为您要添加到ManagedClusterSet
的受管集群的名称。将
<managed-cluster-set-name>
替换为您要添加受管集群的ManagedClusterSet
的名称。输入以下命令在受管集群中部署 Submariner:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
managed-cluster-name
替换为您要使用 Submariner 的受管集群的名称。ManagedClusterAddOn
的 spec 中的installNamespace
字段是在受管集群上安装 Submariner 的命名空间。目前,Submariner 必须安装到submariner-operator
命名空间中。创建
ManagedClusterAddOn
后,submariner-addon
将 Submariner 部署到受管集群上的submariner-operator
命名空间。您可以从这个ManagedClusterAddOn
的状态查看 Submariner 的部署状态。注:
ManagedClusterAddOn
的名称必须是submariner
。- 对要启用 Submariner 的所有受管集群重复步骤 2 和 3。
在受管集群中部署了 Submariner 后,您可以通过输入以下命令检查 submarinerr
ManagedClusterAddOn
的状态来验证 Submariner 部署状态:oc -n <managed-cluster-name> get managedclusteraddons submariner -oyaml
oc -n <managed-cluster-name> get managedclusteraddons submariner -oyaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
managed-cluster-name
替换为受管集群的名称。在 Submariner
ManagedClusterAddOn
的状态中,三个条件代表 Submariner 的部署状态:-
SubmarinerGatewayNodesLabeled
条件代表受管集群中是否存在标记为 Submariner 网关节点。 -
SubmarinerAgentDegraded
条件指示 Submariner 是否成功部署到受管集群中。 -
SubmarinerConnectionDegraded
条件指示受管集群上使用 Submariner 建立多少连接。
-
1.1.5. 为 Submariner 启用服务发现 复制链接链接已复制到粘贴板!
submariner-addon
组件是一个技术预览功能。
在 Submariner 部署到与受管集群相同的环境中后,会将路由配置为 ManagedClusterSet
中的 pod 和服务间的安全 IP 路由。如果要使集群的服务可见,并可以被 ManagedClusterSet
中的其他集群发现,您需要创建一个 ServiceExport
对象。当使用 ServiceExport
对象导出一个服务后,您可以使用以下方式访问该服务: <service>.<namespace>.svc.clusterset.local
。如果多个集群导出具有相同名称的服务,并且来自同一命名空间中,则其他集群会把这个服务看作为一个单一的逻辑服务。
在本例在,在 default
命名空间中使用 nginx
服务,但您可以发现任何 Kubernetes ClusterIP
服务或无头服务:
使用以下命令,在
ManagedClusterSet
中的受管集群中应用nginx
服务实例:oc -n default create deployment nginx --image=nginxinc/nginx-unprivileged:stable-alpine oc -n default expose deployment nginx --port=8080
oc -n default create deployment nginx --image=nginxinc/nginx-unprivileged:stable-alpine oc -n default expose deployment nginx --port=8080
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过创建一个
ServiceExport
条目来导出服务,该条目类似于 YAML 文件中的以下内容:apiVersion: multicluster.x-k8s.io/v1alpha1 kind: ServiceExport metadata: name: <service-name> namespace: <service-namespace>
apiVersion: multicluster.x-k8s.io/v1alpha1 kind: ServiceExport metadata: name: <service-name> namespace: <service-namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用您要导出的服务的名称替换
service-name
。在本例中是nginx
。将service-namespace
替换为服务所在命名空间的名称。在本例中,是default
。在不同的受管集群中运行以下命令,确认它可以访问
nginx
服务:oc -n default run --generator=run-pod/v1 tmp-shell --rm -i --tty --image quay.io/submariner/nettest -- /bin/bash curl nginx.default.svc.clusterset.local:8080
oc -n default run --generator=run-pod/v1 tmp-shell --rm -i --tty --image quay.io/submariner/nettest -- /bin/bash curl nginx.default.svc.clusterset.local:8080
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
nginx
服务发现现在已为 Submariner 配置。