Kubernetes Connectivity

8/5/2018

I have a POD running which had a Java Application running. This Java Application talks to a MySql which is on-prem. The MySql accepts connections from 192.* ip's I have the pod running on EKS worker nodes with Ip - 192.. I am able to telnet Mysql from the worker nodes. When the pod starts, the Java application tries to connect to the Mysql with the POD Ip (which is some random 172. ip) and fails with MySQL connection error. How can I solve this?

-- Gowtham Kumar Madipuri
amazon-eks
connectivity
kubernetes

1 Answer

8/6/2018

Try to execute a shell inside the pod and connect to the MySQL server from there.

kubectl exec -it -n <namespace-name> <pod-name> -c <container-name> -- COMMAND [args...]

E.g.:

kubectl exec -it -n default mypod -c container1 -- bash

Then check the MySQL connectivity:

#/> mysql --host mysql.dns.name.or.ip --port 3306 --user root --password --verbose

Or start another pod with usual tools and check MySQL port connectivity:

$ kubectl run busybox --rm -it --image busybox --restart=Never

#/> ping mysql.dns.name.or.ip
#/> telnet mysql.dns.name.or.ip 3306

You should see some connection-related information that helps you to resolve your issue.

I can guess you just need to add a route to your cluster pods network on your MySQL host or its default network router.

-- VAS
Source: StackOverflow