2つのkubernetesサービスを作成しようとしています.1つはクラスタIPを持つロードバランサで、もう1つはヘッドレス(クラスタIPなし)ですが、代わりにAレコードのラウンドロビンポッドIPアドレスの収集(それは、http://kubernetes.io/docs/user-guide/services/#headless-servicesに従って行うべきです)。KubernetesヘッドレスサービスAレコードラウンドロビン
自動クラスタリングとサービスディスカバリを行うために、pod ipの動的コレクションが必要なので、これを行う必要があります。
私のサービスは、次のようになります。私は、次を取得し、これら2つのサービスで
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
:
IPが動作するクラスタの$ 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
と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