首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pod到Pod通信在kubernetes中不起作用

Pod到Pod通信在kubernetes中不起作用
EN

Stack Overflow用户
提问于 2019-02-09 06:09:24
回答 2查看 1.1K关注 0票数 1

我使用Spring Boot来创建REST API,并在加载时访问MongoDB。我正在为REST API创建一个部署和服务,并为mongodb创建一个部署和服务。

但是我的REST API pod正在中断,并且没有在加载时出现,它寻找mongodb服务,但它无法ping通该主机。

我已经将mongodb公开为服务,也将REST API公开为服务。REST API公开为NodePort,mongodb公开为ClusreIP。

我试过的所有东西都没有解决方案。

===================================MongoDB deployment========================

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: tech-hunt-mongodb
spec:
  replicas: 1
  template:
    metadata:
      name: tech-hunt-mongodb
      labels:
        app: tech-hunt
        module: mongodb
    spec:
      containers:
      - image: <image>
        name: tech-hunt-mongodb
        ports:
        - containerPort: 27017

===================================MongoDB service========================

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: tech-hunt-mongodb
spec:
        #type: ClusterIP
  selector:
    app: tech-hunt
    module: mongodb
  ports:
  - port: 27017
    targetPort: 27017
    protocol: TCP
  clusterIP: None
    #nodePort: 30000
    #protocol: TCP

===========================REST接口deployment================================

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: tech-hunt-api
spec:
  template:
    metadata:
      name: tech-hunt-api
      labels:
        app: tech-hunt
        module: rest-api    
    spec:
      containers:
      - image: <image>
        name: tech-hunt-api
        ports:
        - containerPort: 4000

===============================REST接口service=============================

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: tech-hunt-api-client
spec:
  type: NodePort
  selector:
    app: tech-hunt
    module: rest-api-client
  ports:
  - port: 5000
    targetPort: 5000
    nodePort: 30010
EN

回答 2

Stack Overflow用户

发布于 2019-02-09 16:44:46

clusterIP: None

这几乎肯定不是您希望发生的事情,因为这会将填充Endpoints的负担完全放在您身上--或者外部控制器( StatefulSet控制器就是这样的一个例子)。

您必须删除tech-hunt-mongodb Service,然后重新创建,以便将其clusterIPNone更改为自动填充的值,但您必须首先这样做。

,但我的REST API pod正在中断,并且在加载时没有出现,它寻找mongodb服务,但它无法ping通该主机。

作为参考,您永远无法"ping“Service IP,因为这些地址是”假的“;只有Service IP的元组及其流量端口(因此,在您的两个示例中为270175000 )将响应任何数据包。您应该使用curlnc而不是ping来测试连通性。

票数 0
EN

Stack Overflow用户

发布于 2019-02-10 17:25:44

我使用了错误的mongodb镜像,无法访问客户端。因此,创建的容器在任何情况下都不能通过curl等方式curl通。我正在使用NodePort,并且我的rest API容器能够从mongodb容器获得响应。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54600917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档