Zookeeper and headless service in kubernetes

12/5/2017

In kubernetes I have deployed a statefulset called zookeeper:

apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: zookeeper
spec:
  serviceName: zookeeper-svc
  replicas: 1
  template:
    metadata:
      labels:
        app: zookeeper

and a headless service:

apiVersion: v1
kind: Service
metadata:
  name: zookeeper-svc
  labels:
    app: zookeeper    
spec:
  clusterIP: None
  ports:
  - port: 2888
    name: server
  - port: 3888
    name: leader-election

Entering inside my zookeeper-0 pod I can see its IP:

zookeeper@zookeeper-0:/usr/bin$ cat /etc/hosts
# Kubernetes-managed hosts file.
127.0.0.1       localhost
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
fe00::0 ip6-mcastprefix
fe00::1 ip6-allnodes
fe00::2 ip6-allrouters
10.32.0.11      zookeeper-0.zookeeper-svc.default.svc.cluster.local     zookeeper-0

But looking for the IP

kb exec dnsutils nslookup zookeeper-0
Server: 10.96.0.10 Address: 10.96.0.10#53

** server can't find zookeeper-0: NXDOMAIN

I cannot see it.

Where am I wrong? Any suggestion is appreciated.

-- Nicola Ben
apache-zookeeper
kubernetes

1 Answer

12/5/2017

have you tried accessing zookeeper-0.zookeeper-svc service names are not added to search domain list in /etc/resolv.conf so you need to add everything that preceeds the namespace name in the name.

-- Radek 'Goblin' Pieczonka
Source: StackOverflow