Docker 用于 Mac Kubernetes 负载均衡器 NoHttpResponseException
Docker for Mac Kubernetes load balancer NoHttpResponseException
我正在尝试 运行 连接到 Deployment pod 的简单负载平衡服务器。
我已经为 Mac 边缘版本安装了 Docker。
问题是,当我尝试向暴露的负载均衡器 url http://localhost:8081/api/v1/posts/health 发出 GET 请求时,出现的错误是:
org.apache.http.NoHttpResponseException: localhost:8081 failed to respond
做的时候:
k get services
我得到:
显然,服务是 运行ning,但 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
应该是基本设置!
我的部署 pod 没有显示任何重启,一切看起来都很好:
欢迎任何建议!
注:
编辑
使用端口 31082 时,出现错误:
org.apache.http.conn.HttpHostConnectException: Connect to
localhost:31082 [localhost/127.0.0.1] failed: Connection refused
(Connection refused)
我使用端口 8083 没有具体原因。
这是因为我先尝试了 nodeport(有多个服务),现在是 Load Balancer。
下一步将是入口,但第一次对我来说并没有真正成功,所以我试着一步一步来。
我使用端口 8081 而不是端口 80,因为我在某处读到 Mac OSX 端口 80 仅供 root 用户使用。
服务端口必须对应于部署容器端口。
我现在可以在 localhost:8083 上访问 api。
我正在尝试 运行 连接到 Deployment pod 的简单负载平衡服务器。
我已经为 Mac 边缘版本安装了 Docker。
问题是,当我尝试向暴露的负载均衡器 url http://localhost:8081/api/v1/posts/health 发出 GET 请求时,出现的错误是:
org.apache.http.NoHttpResponseException: localhost:8081 failed to respond
做的时候:
k get services
我得到:
显然,服务是 运行ning,但 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
应该是基本设置!
我的部署 pod 没有显示任何重启,一切看起来都很好:
欢迎任何建议!
注:
编辑
使用端口 31082 时,出现错误:
org.apache.http.conn.HttpHostConnectException: Connect to localhost:31082 [localhost/127.0.0.1] failed: Connection refused (Connection refused)
我使用端口 8083 没有具体原因。
这是因为我先尝试了 nodeport(有多个服务),现在是 Load Balancer。
下一步将是入口,但第一次对我来说并没有真正成功,所以我试着一步一步来。
我使用端口 8081 而不是端口 80,因为我在某处读到 Mac OSX 端口 80 仅供 root 用户使用。
服务端口必须对应于部署容器端口。
我现在可以在 localhost:8083 上访问 api。