【问题标题】:Not able to access Spring Boot backend service from another service in Kubernetes无法从 Kubernetes 中的另一个服务访问 Spring Boot 后端服务
【发布时间】:2019-11-19 17:18:39
【问题描述】:

我是 Kubernetes 新手,我正在尝试创建一个简单的前端后端应用程序,其中前端和后端将拥有自己的服务。由于某种原因,我无法通过前端服务的名称访问后端服务。

正因为简单,前端服务可以这样创建:
kubectl run curl --image=radial/busyboxplus:curl -i --tty

当我执行 nslookup 时,我得到以下信息:

[ root@curl-66bdcf564-rbx2k:/ ]$ nslookup msgnc-travel
Server:    10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local

Name:      msgnc-travel
Address 1: 10.100.171.209 msgnc-travel.default.svc.cluster.local

服务的名称是 msgnc-travel,但是当我尝试 curl 时:
curl msgnc-travel
它只是继续等待,没有收到任何回应。我也试过
curl 10.100.171.209curl msgnc-travel.default.svc.cluster.local 但我有同样的行为

任何想法为什么会出现这个问题?

我已经成功地通过使用 Ingress 做了一个“解决方法”,但我很好奇为什么我不能只通过提供它的名称来直接访问我的 Spring Boot 后端服务?

deployment.yml 看起来像这样:

apiVersion: apps/v1

kind: Deployment

metadata:
  name: msgnc-travel-deployment
  labels:
    name: msgnc-travel-deployment
    app: msgnc-travel-app

spec:
  template:
    metadata:
      name: msgnc-travel-pod
      labels:
        name: msgnc-travel-pod
        app: msgnc-travel-app

    spec:
      containers:
        - name: msgnc-travel
          image: bdjordjevic/msgnc-travel
          ports:
            - containerPort: 8080
  replicas: 1
  selector:
    matchExpressions:
      - {key: name, operator: In, values: [msgnc-travel-pod]}
      - {key: app, operator: In, values: [msgnc-travel-app]}

service.yml 如下所示:

apiVersion: v1

kind: Service

metadata:
  name: msgnc-travel
  labels:
    name: msgnc-travel-service
    app: msgnc-travel-app

spec:
  ports:
    - port: 8080
      targetPort: 8080
  selector:
    name: msgnc-travel-pod
    app: msgnc-travel-app

【问题讨论】:

  • 你的curl 很奇怪。由于curl 发送 http 请求,因此您必须提供 curl 目标的主机名和端口,而不仅仅是主机名。
  • 你是完全正确的,在端口 8080 上它就像一个魅力!谢谢!

标签: spring-boot kubernetes microservices


【解决方案1】:

您正在定义服务以侦听端口 8080。因此您应该执行curl msgnc-travel:8080

我尝试运行 wget,这是我得到的输出:

wget msgnc-travel:8080
Connecting to msgnc-travel:8080 (10.98.81.45:8080)
wget: server returned error: HTTP/1.1 404 

【讨论】:

    猜你喜欢
    • 2020-08-03
    • 2020-11-27
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    相关资源
    最近更新 更多