kubernetes无法ping其他服务
DNS解析看起来不错,但我无法ping我的服务。原因可能是什么 从群集中的另一个pod:kubernetes无法ping其他服务,kubernetes,Kubernetes,DNS解析看起来不错,但我无法ping我的服务。原因可能是什么 从群集中的另一个pod: $ ping backend PING backend.default.svc.cluster.local (10.233.14.157) 56(84) bytes of data. ^C --- backend.default.svc.cluster.local ping statistics --- 36 packets transmitted, 0 received, 100% packet lo
$ ping backend
PING backend.default.svc.cluster.local (10.233.14.157) 56(84) bytes of data.
^C
--- backend.default.svc.cluster.local ping statistics ---
36 packets transmitted, 0 received, 100% packet loss, time 35816ms
编辑:
服务定义:
apiVersion: v1
kind: Service
metadata:
labels:
app: backend
name: backend
spec:
ports:
- name: api
protocol: TCP
port: 10000
selector:
app: backend
部署:
apiVersion: apps/v1
kind: Deployment
metadata:
name: backend
labels:
app: backend
spec:
replicas: 1
selector:
matchLabels:
run: backend
replicas: 1
template:
metadata:
labels:
run: backend
spec:
containers:
- name: backend
image: nha/backend:latest
imagePullPolicy: Always
ports:
- name: api
containerPort: 10000
我可以curl
从同一容器中获取我的服务:
kubectl exec -it backend-7f67c8cbd8-mf894 -- /bin/bash
root@backend-7f67c8cbd8-mf894:/# curl localhost:10000/my-endpoint
{"ok": "true"}
端口10000
上的端点似乎没有暴露,但:
kubectl get ep
NAME ENDPOINTS AGE
backend <none> 2h
kubectl获得ep
姓名端点年龄
后端2h
Ping不适用于服务的群集IP,如10.233.14.157,因为它是一个虚拟IP。您应该能够ping特定的pod,但不能ping服务。您不能ping服务。你可以卷曲它。可能的重复会有意义-我如何ping一个特定的pod呢?只需使用kubectl get pod
列出所有pod,然后kubectl description pod
查看有关它的所有信息。有一个名为IP的字段。@nhakubectl get pod-owide-n xxx
,您将看到IP
。难道您不能通过服务ping/访问pod吗?这不是服务的重点吗;我不再需要获取单个容器的IP地址了?这对于TCP或UDP通信是正确的,但对于运行ping时使用的ICMP则不是。如果您想测试与服务的连接,请使用netcat生成TCP或UDP流量。我首先尝试了curl
,但它不起作用,所以我想我会使用ping
查看它是否可访问。您无法ping服务。您可以使用curl
或wget
。例如wget-O-10.152.183.210:80
。我更喜欢wget
,因为它通常在小型图像中可用,例如busybox