Access to service IP from the pod

7/30/2018

I have a pod with mysql and service to provide access from outside. So I can connect to my database at 192.168.1.29:3306 from the other machine.

But how I can connect from the other pod in the same cluster (same node)?

That is my service description:

Name:                     etl-mysql
Namespace:                default
Labels:                   run=etl-mysql
Annotations:              field.cattle.io/publicEndpoints=[{"addresses":["192.168.1.20"],"port":31211,"protocol":"TCP","serviceName":"default:etl-mysql","allNodes":true}]
                          kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"run":"etl-mysql"},"name":"etl-mysql","namespace":"default"},"spec":{"extern...
Selector:                 run=etl-mysql
Type:                     NodePort
IP:                       10.43.44.58
External IPs:             192.168.1.29
Port:                     etl-mysql-port  3306/TCP
TargetPort:               3306/TCP
NodePort:                 etl-mysql-port  31211/TCP
Endpoints:                10.42.1.87:3306
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none> 
-- Berkut
kubernetes

1 Answer

7/30/2018

Kubernetes has a built in DNS, that registers services automatically resulting in simple to use DNS address like this: http://{servicename}.{namespace}:{servicePort}

If you are in the same namespace you can omit the namespace part and if your service listens on port 80 that part can be omitted as well.

If you need further informations the following documentation will help you: DNS for Services and Pods

-- BeWu
Source: StackOverflow