适用于Mac的Docker Kubernetes负载均衡器NoHttpResponseException

时间:2019-01-13 15:44:45

标签: kubernetes docker-for-mac

我正在尝试运行连接到Deployment Pod的简单负载平衡服务器。
我已经安装了Docker for Mac edge版本。
问题是,当我尝试向公开的负载均衡器URL http://localhost:8081/api/v1/posts/health发出GET请求时,出现的错误是:

  

org.apache.http.NoHttpResponseException:本地主机:8081无法响应

这样做时:

k get services 

我得到:

enter image description here

enter image description here

很明显,该服务正在运行,但是localhost:8081无法响应,不知道为什么,我一直在为此苦苦挣扎。

我的服务资源:

---
apiVersion: v1
kind: Service
metadata:
  name: posts-api-svc
  # namespace: nginx-ingress
  labels:
    app: posts-api
    rel: beta
    env: dev
spec:
  type: LoadBalancer
  selector:
    app: posts-api
    rel: beta
    env: dev
  ports:
    - protocol: TCP
      port: 8081

我的部署:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: posts-api-deployment
  # namespace: nginx-ingress
  labels:
    app: posts-api
    rel: beta
    env: dev
spec:
  replicas: 1
  selector:
    matchLabels:
      app: posts-api
      env: dev
      rel: beta
  template:
    metadata:
      labels:
        app: posts-api
        env: dev
        rel: beta
    spec:
      containers:
        - name: posts-api
          image: kimgysen/posts-api:latest
          ports:
          - containerPort: 8083
          livenessProbe:
            httpGet:
              path: /api/v1/posts/health
              port: 8083
            initialDelaySeconds: 120
            timeoutSeconds: 1

应该是基本设置!

我的部署窗格没有显示任何重新启动,一切看起来都不错:

enter image description here

欢迎任何建议!

注意:

enter image description here

修改

使用端口31082时出现错误:

  

org.apache.http.conn.HttpHostConnectException:连接到   本地主机:31082 [本地主机/127.0.0.1]失败:连接被拒绝   (连接被拒绝)

使用端口8083没有特定原因。 这是因为我首先尝试了nodeport(具有多个服务),现在尝试了Load Balancer。
下一步将是入口,但是第一次对我来说并没有真正解决问题,因此我尝试逐步进行。

我使用端口8081而不是端口80,因为我在某处读到Mac OSX上端口80仅由root用户使用。

1 个答案:

答案 0 :(得分:0)

服务端口必须对应于Deployment containerPort。
我现在可以在localhost:8083上访问api。