How to make request to Kubernetes service?

5/22/2019

When I am trying to send an HTTP request from one pod to another pod within my cluster, how do I target it? By the cluster IP, service IP, serivce name? I can not seem to find any documentation on this even though it seems like such a big part. Any knowledge would help. Thanks!

-- matt
docker
kubernetes

2 Answers

5/23/2019

DNS for Services and Pods should help you here.

apiVersion: v1
kind: Service
metadata:
  name: myservice
  namespace: mynamespace
spec:
  selector:
    name: myapp
  type: ClusterIP
  ports:
  - name: http
    port: 80
    targetPort: 80

Lets say you have a service defined as such and you are trying to call the service from the same namespace. You can call http://myservice.svc.cluster.local:80. If you want to call the service from another namespace you can use http://myservice.mynamespace.svc.cluster.local:80

-- Sean Boczulak
Source: StackOverflow

5/24/2019

As @David Maze mentioned, you can find more information about:

Shortly:

Please exec into your pod:

kubectl exec -it <your_pod> -- /bin/bash

perform:

nslookup <your_service>

In that way you can check if your service is working using DNS (assuming your service is working in default namespace) you should see:

<your_service>.default.svc.cluster.local

than you can check:

curl http://<your_service>
or
curl http://<your_service>.default.svc.cluster.local
-- Hanx
Source: StackOverflow