我正在尝试调试为什么完美工作部署的服务没有响应(连接被拒绝)。
我已经两次和三次检查port
和targetPort
匹配(容器为 4180,服务为 80)
当我列出我的端点时,我得到以下信息:
$ kubectl get endpoints
NAME ENDPOINTS AGE
kubernetes 10.40.63.79:443 82d
oauth2-proxy 10.40.34.212:4180 33s // <--this one
Run Code Online (Sandbox Code Playgroud)
并从在同一命名空间中运行的 pod:
# curl 10.40.34.212:4180
curl: (7) Failed to connect to 10.40.34.212 port 4180: Connection refused
Run Code Online (Sandbox Code Playgroud)
(顺便说一句,如果我尝试卷曲服务,也会发生同样的情况)
然而,如果我直接转发到 pod,我会收到响应:
$ kubectl port-forward oauth2-proxy-559dd9ddf4-8z72c 4180:4180 &
$ curl -v localhost:4180
* Rebuilt URL to: localhost:4180/
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 4180 (#0)
> GET / HTTP/1.1
> Host: localhost:4180
> User-Agent: curl/7.58.0
> Accept: */*
>
Handling connection for 4180
< HTTP/1.1 403 Forbidden
< Date: Tue, 25 Jun 2019 07:53:19 GMT
< Content-Type: text/html; charset=utf-8
< Transfer-Encoding: chunked
<
<!DOCTYPE html>
// more of the expected response
* Connection #0 to host localhost left intact
Run Code Online (Sandbox Code Playgroud)
我还检查了我在使用服务中的选择器时是否获得了 Pod(我从 中看到的复制粘贴了它kubectl describe svc oauth2-proxy
):
$ kubectl describe svc oauth2-proxy | grep Selector
Selector: app.kubernetes.io/name=oauth2-proxy,app.kubernetes.io/part-of=oauth2-proxy
$ kubectl get pods --selector=app.kubernetes.io/name=oauth2-proxy,app.kubernetes.io/part-of=oauth2-proxy
NAME READY STATUS RESTARTS AGE
oauth2-proxy-559dd9ddf4-8z72c 1/1 Running 0 74m
Run Code Online (Sandbox Code Playgroud)
我不明白为什么端点在使用端口转发时拒绝连接得到有效响应。还有什么我应该检查的吗?
Tom*_*ino 12
好吧,事实证明这个特定的服务默认只在 localhost 上监听:
$ netstat -tunap | grep LISTEN
tcp 0 0 127.0.0.1:4180 0.0.0.0:* LISTEN 1/oauth2_proxy
Run Code Online (Sandbox Code Playgroud)
我不得不添加一个参数 ( -http-address=0.0.0.0:4180
) 来告诉它在 0.0.0.0 上监听
归档时间: |
|
查看次数: |
2010 次 |
最近记录: |