当前位置: 首页 > 知识库问答 >
问题:

库伯内特斯:如何链接到具有不同命名空间的内部服务?

吕修伟
2023-03-14

我正在尝试将位于不同名称空间中的两个库伯内特斯服务链接在一起,如下所示。通过DNS链接它们,类型为外部名称。

在名为“db”的命名空间中,我希望有一个带有数据库的部署。能够拥有 1 个可由不同项目共享的数据库。拥有一个持久卷。

但不知怎的,它并没有像预期的那样工作。

命名空间“db”中的服务:

apiVersion: v1
kind: Service
metadata:
  labels:
    app: db-srv
  name: db-srv
  namespace: db
spec:
  ports:
  - name: "db-postgres"
    port: 5432
    targetPort: 5432
  selector:
    app: db
status:
  loadBalancer: {}

位于连接到数据库的“myspace”命名空间中的服务:

apiVersion: v1
kind: Service
metadata:
  labels:
    app: myspace-db-service
  name: myspace-db-service
  namespace: myspace
spec:
  type: ExternalName
  externalName: db-srv.db.svc.cluster.local
  ports:
  - port: 5433
    # targetPort: 5432
status:
  loadBalancer: {}

后端附加到端口 5433 上的 myspace 服务。

端口有误吗?

共有1个答案

齐昊
2023-03-14

答案是,带有外部类型的服务上的端口和它连接的服务需要相同。在外部类型上使用目标端口不起作用。

这是正确的:

SVC(外部类型) =

这是不正确的:

SVC(外部类型) =

 类似资料:
  • 我只是在本地mac上使用mini kube设置kubernetes。 创建了一个类型为NodePort的服务,并且能够使用url

  • 我想创建一个kubernetes用户,他可以使用相同的令牌或配置文件访问k8s仪表板到只有几个命名空间(让我们假设3个命名空间),用户应该能够使用kubectl从配置文件的集群中获取信息。这是可以实现的吗? 我尝试为用户创建角色和角色绑定,但使用此功能,用户可以从命令行界面访问,但不能从仪表板访问,因为不会生成令牌。遵循这个过程https://www.openlogic.com/blog/gran

  • 我正在学习一些关于入口的知识。它由两部分组成: 入口资源:“您希望如何将请求路由到支持服务?” 入口控制器:“侦听Kubernetes API以获取入口资源。” 我在名称空间中部署了一个名为Ingres的入口控制器。我还部署了一个默认后端。现在我想部署一个应用程序(svc、POD的部署等)。 我是否需要在命名空间中部署此应用程序?对我来说,我必须为每个新应用程序部署一个新的入口资源,这似乎是合乎逻

  • 我是Kubernetes平台的新手,尝试启用部署在Kubernetes平台上的tomcat web app的HTTPS安全连接。我对舱单感到困惑。与部署、服务和入口控制器相关的yml。 那么,我是否也必须在部署(在端口:-containerPort:8080)服务(如端口:-端口:80 targetPort:8080协议:TCP名称:http)和入口(在后端:serviceName:tomcat

  • 我在windows 10中创建了两个在我的minikube环境中运行的POD。一个POD带有Spring boot应用程序容器,另一个POD带有mysql容器。对于Spring boot应用程序,服务类型为nodePort,对于MYSQL pod,服务类型为club sterIP。这意味着Mysql pod只需要在集群内部进行通信。但是对于Spring boot应用程序,需要从浏览器访问,所以我配

  • 我确实部署了单吊舱,自定义docker映像如下: 在开发过程中,我希望推送新的最新版本并更新部署。如果不明确定义标记/版本并为每个构建增加它,就找不到如何做到这一点,并且