【问题标题】:Kubernetes headless service A Record round robinKubernetes 无头服务 A Record round robin
【发布时间】:2016-08-25 18:37:23
【问题描述】:

我正在尝试创建两个 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

但是,“无头”服务的 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

【问题讨论】:

    标签: dns kubernetes google-kubernetes-engine skydns


    【解决方案1】:

    您的集群中似乎没有与这些标签匹配的 pod,因此 DNS 查询不会返回任何内容。这是意料之中的。

    启动相应的 pod,您应该会看到 A 记录列表。

    请注意,据我所知,这些 A 记录并没有被打乱,因此您的客户端应该使用 DNS 答案并执行他们自己的循环。

    【讨论】:

      猜你喜欢
      • 2020-07-12
      • 2020-04-06
      • 1970-01-01
      • 2018-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多