DNS解析看起来很好,但我不能ping我的服务。可能是什么原因?
从群集中的另一个广告连播:
$ 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
答案 0 :(得分:5)
Ping不支持服务的集群IP,如10.233.14.157,因为它是虚拟IP。您应该能够ping特定的pod,但没有服务。
答案 1 :(得分:3)
您无法ping通服务。你可以卷曲它。
答案 2 :(得分:-3)
事实证明我的selector
错了,我不得不用run: backend
替换app: backend