두 개의 kubernetes 서비스를 만들려고합니다. 하나는 클러스터 IP가있는로드 밸런서이고 다른 하나는 헤드리스 (클러스터 IP 없음)이지만 A 레코드 라운드 로빈을 반환합니다 IP 주소 수집 (http://kubernetes.io/docs/user-guide/services/#headless-services에 따라 수행해야 함).Kubernetes 헤드리스 서비스 A 레코드 라운드 로빈
자동 클러스터링 및 서비스 검색을 수행하려면 동적 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 :
을[[email protected] 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
그러나 '헤드리스'서비스의 DNS는 다음을 반환하지 않습니다.
[[email protected] 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