在我的Kubernetes集群上,我只有几个豆荚可以互相交流。它们分别部署
我创建了一个名为my-service
的无头服务,该服务针对所有吊舱。
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
每个吊舱都暴露了两个端口: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
nslookup on my-service.default.svc.cluster.local
做完后,我的确可以看到我所有的吊舱。
我还为每个Pod分别分配了主机名和subdomain: my-service
。现在,每个Pod都有一个单独的DNS A记录,例如:<hostname>.my-service.default.svc.cluster.local
。到现在为止还挺好。但是,当我尝试使用域(和端口)<hostname>.my-service.default.svc.cluster.local:111
(从另一个容器)访问pod时,出现“连接被拒绝”的情况。我该如何工作?我想念什么吗?
答案 0 :(得分:0)
此问题的最可能原因是您尝试获得服务的方式。如果您检查响应端口111的端口,它将起作用。
例如,在不监听的端口上建立http连接将使连接被拒绝。
尝试根据您的服务ping或telnet。