user2175159
user2175159

Reputation: 31

Kubernetes / minikube can't ping pods in the same cluster, but nslookup works

minikube version ⏎ minikube version: v0.22.3

I'm trying to setup various pods within a minikube instance. I'm running behind a corporate proxy which may explain some of this behavior.

I start minikube using the following

minikube start --docker-env HTTP_PROXY=http://corporate-proxy.com:80 --docker-env HTTPS_PROXY=https://corporate-proxy:80 --docker-env NO_PROXY=localhost,127.0.0.0/8,192.0.0.0/8

otherwise it wont work at all. After building some images on docker I created a two services and two pods:

---
apiVersion: v1
kind: Pod
metadata:
  name: app
  labels:
    name: app
spec:
  containers:
    - name: app
      image: image_app
      ports:
        - containerPort: 7777
      volumeMounts:
        - mountPath: /codeage
          name: code-volume
          readOnly: false
      imagePullPolicy: IfNotPresent
      tty: true
  volumes:
   - hostPath:
       path: /codeage
     name: code-volume
---
apiVersion: v1
kind: Pod
metadata:
  name: db
  labels:
    name: db
spec:
  containers:
    - name: db
      image: postgres
      ports:
        - containerPort: 5432
      volumeMounts:
        - mountPath: /var/lib/postgresql
          name: db-data
      imagePullPolicy: IfNotPresent
      tty: true
  volumes:
   - hostPath:
       path: /db-data
     name: db-data
---
apiVersion: v1
kind: Service
metadata:
  name: db
spec:
  type: NodePort
  ports:
  - name: 'db-port'
    port: 5432
    targetPort: 5432
  selector:
    name: db
---
apiVersion: v1
kind: Service
metadata:
  name: app
  labels:
    name: app
spec:
  type: NodePort
  ports:
   - name: apport
     port: 7777
     targetPort: 7777
  selector:
     name: app
---

I'm unable to ping 'db' from within(ssh) the 'app' pod:

sh-4.2# ping db               
PING db.default.svc.cluster.local (10.0.0.116) 56(84) bytes of data.
From chicago11-rtr-3-v411.us.corporate.com (10.60.172.X) icmp_seq=1 Destination Host Unreachable
^C

As you can see though nslookup worked and provided the correct clusterIP 10.0.0.116 and hostname 'db.default.svn.cluster.local'

I can ping the node itself. I cannot ping kube-dns...

Anyone have any ideas?

Is there an alternative to using the built in dns service?

Upvotes: 2

Views: 2997

Answers (2)

user2175159
user2175159

Reputation: 31

@sfgroups answer is correct! ping was the wrong tool to use. Telnet or actually using psql worked. The actual problem was that my services weren't pointing to anything.

I updated my app pods to have the unique names and then updated the selector for the service.

Upvotes: 1

sfgroups
sfgroups

Reputation: 19109

we can't ping the service IP address, you can telnet to the port 5432 defined in the service with service IP.

Upvotes: 1

Related Questions