13.4. 为 Submariner 启用服务发现


submariner-addon 组件是一个技术预览功能。

在 Submariner 部署到与受管集群相同的环境中后,会将路由配置为 ManagedClusterSet 中的 pod 和服务间的安全 IP 路由。如果要使集群的服务可见,并可以被 ManagedClusterSet 中的其他集群发现,您需要创建一个 ServiceExport 对象。当使用 ServiceExport 对象导出一个服务后,您可以使用以下方式访问该服务: <service>.<namespace>.svc.clusterset.local。如果多个集群导出具有相同名称的服务,并且来自同一命名空间中,则其他集群会把这个服务看作为一个单一的逻辑服务。

在本例在,在 default 命名空间中使用 nginx 服务,但您可以发现任何 Kubernetes ClusterIP 服务或无头服务:

  1. 使用以下命令,在 ManagedClusterSet 中的受管集群中应用 nginx 服务实例:

    oc -n default create deployment nginx --image=nginxinc/nginx-unprivileged:stable-alpine
    oc -n default expose deployment nginx --port=8080
    Copy to Clipboard Toggle word wrap
  2. 通过创建一个 ServiceExport 条目来导出服务,该条目类似于 YAML 文件中的以下内容:

    apiVersion: multicluster.x-k8s.io/v1alpha1
    kind: ServiceExport
    metadata:
      name: <service-name>
      namespace: <service-namespace>
    Copy to Clipboard Toggle word wrap

    使用您要导出的服务的名称替换 service-name。在本例中是 nginx。将 service-namespace 替换为服务所在命名空间的名称。在本例中,是 default

  3. 在不同的受管集群中运行以下命令,确认它可以访问 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
    Copy to Clipboard Toggle word wrap

nginx 服务发现现在已为 Submariner 配置。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat