我正在尝试创建两个kubernetes服务,一个是具有集群IP的负载均衡器,另一个是无头(无集群IP)服务,但返回pod ip地址的A记录循环集合(根据http://kubernetes.io/docs/user-guide/services/#headless-services,它应该这样做)。
我需要这样做,因为我需要一个动态的pod ip集合,以便执行自动集群和服务发现。
我的服务如下所示:
apiVersion: v1
kind: Service
metadata:
name: rabbitmq
labels:
app: rabbitmq
tier: messaging
spec:
ports:
- name: amqp
port: 5672
targetPort: 5672
selector:
app: rabbitmq
tier: messaging
---
apiVersion: v1
kind: Service
metadata:
name: rabbitmq-cluster
labels:
app: rabbitmq
tier: messaging
spec:
clusterIP: None
ports:
- name: amqp
port: 5672
targetPort: 5672
selector:
app: rabbitmq
tier: messaging有了这两个服务,我得到了以下内容:
$ kubectl get services
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
rabbitmq 10.23.255.174 <none> 5672/TCP 7m
rabbitmq-cluster None <none> 5672/TCP 7m集群IP的DNS (从另一个pod)工作:
[root@gateway-3738159135-a7wp9 app]# nslookup rabbitmq.td-integration
Server: 10.23.240.10
Address: 10.23.240.10#53
Name: rabbitmq.td-integration.svc.cluster.local
Address: 10.23.255.174但是,'headless‘服务的dns不会返回:
[root@gateway-3738159135-a7wp9 app]# nslookup rabbitmq-cluster.td-integration
Server: 10.23.240.10
Address: 10.23.240.10#53
** server can't find rabbitmq-cluster.td-integration: NXDOMAIN发布于 2016-08-27 06:34:13
您的集群中似乎没有与这些标签匹配的pod,因此DNS查询不会返回任何内容。这是意料之中的。
启动相应的pod,您应该会看到A记录的列表。
请注意,据我所知,这些A记录没有被混洗,因此您的客户端应该使用DNS应答并执行自己的循环调度。
https://stackoverflow.com/questions/39152534
复制相似问题