在我的库伯内特斯集群上,我有几个应该相互通信的pod。它们是单独部署的。我创建了一个名为my-service
的无头服务,它针对所有pod。
apiVersion: v1
kind: Service
metadata:
name: my-service
namespace: default
spec:
clusterIP: None
ports:
- name: test1
port: 111
protocol: TCP
targetPort: 111
- name: test2
port: 222
protocol: TCP
targetPort: 222
publishNotReadyAddresses: true
selector:
app: "my-app"
type: ClusterIP
每个pod有两个端口111和222
apiVersion: v1
kind: Pod
metadata:
labels:
app: "my-app"
name: my-service-6c44bdf68c-q6jdq
namespace: default
spec:
containers:
- image: my-image
name: my-app
ports:
- containerPort: 111
name: test1
protocol: TCP
- containerPort: 222
name: test1
protocol: TCP
当我在my-service. default.svc.club.local上执行nslookup时,我确实可以看到我所有的pod。
我还为每个pod分配了单独的主机名和子域:my-service
。Pod现在每个都有一个单独的DNS一个记录,如:
出现此问题的最可能原因是您尝试访问服务的方式。如果您检查响应端口111的内容,它将正常工作。
例如,在不监听的端口上建立超文本传输协议连接将给出拒绝连接。
尝试根据您的服务ping或telnet。