Want (internal) name for service while running nginx ingress controller kubernetes

26 views
Skip to first unread message

xw...@neurocoreai.com

unread,
Apr 26, 2018, 3:46:53 PM4/26/18
to Kubernetes user discussion and Q&A
Using kubeadm with a two-node cluster on VirtualBox Centos7 VMs. I have an app written in R and a mysql database each in their own pods. I've successfully followed instructions to setup nginx ingress controller so that the app can be reached outside the VMs, by my local machine. check :)

However, now when another pod (or the app (R) ) tries to reach to the mysql service, the name doesn't resolve. e.g. Pinging 'mysql' or the service's clusterIP from bash. This used to work, but no longer works:

mydb<-dbConnect(MySQL(), user = 'root', password ='password',
dbname = 'prototype', host = 'mysql')

Instead I have to use the pod's IP / endpoint, which does work.

mydb<-dbConnect(MySQL(), user = 'root', password ='password',
dbname = 'prototype', host = '10.244.1.233')

However, isn't this going to change upon reboots and system changes? I'd like a more static way to refer to the mysql db.

$ kubectl get endpoints
NAME ENDPOINTS AGE
kubernetes 192.168.56.101:6443 5h
mysql 10.244.1.233:3306 41m
r-user-app 10.244.1.232:8787,10.244.1.232:3838 2h

$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 5h
mysql ClusterIP 10.96.138.132 <none> 3306/TCP 28m
r-user-app LoadBalancer 10.100.228.80 <pending> 3838:32467/TCP,8787:31754/TCP 2h

$ kubectl get ing
NAME HOSTS ADDRESS PORTS AGE
r-user-app storage.test.com 80, 443 3h

$ kubectl describe service mysql
Name: mysql
Namespace: default
Labels: <none>
Annotations: <none>
Selector: app=neurocore,tier=mysql
Type: ClusterIP
IP: 10.96.138.132
Port: <unset> 3306/TCP
TargetPort: 3306/TCP
Endpoints: 10.244.1.236:3306
Session Affinity: None
Events: <none>

ps auxw | grep kube-proxy
root 1914 0.1 0.3 44848 21668 ? Ssl 11:03 0:20 /usr/local/bin/kube-proxy --config=/var/lib/kube-proxy/config.conf
root 29218 0.0 0.0 112660 980 pts/1 R+ 14:23 0:00 grep --color=auto kube-proxy

$iptables-save | grep mysql
-A KUBE-SEP-7P27CEQL6WJZRBQ5 -s 10.244.1.236/32 -m comment --comment "default/mysql:" -j KUBE-MARK-MASQ
-A KUBE-SEP-7P27CEQL6WJZRBQ5 -p tcp -m comment --comment "default/mysql:" -m tcp -j DNAT --to-destination 10.244.1.236:3306
-A KUBE-SERVICES ! -s 10.244.0.0/16 -d 10.96.138.132/32 -p tcp -m comment --comment "default/mysql: cluster IP" -m tcp --dport 3306 -j KUBE-MARK-MASQ
-A KUBE-SERVICES -d 10.96.138.132/32 -p tcp -m comment --comment "default/mysql: cluster IP" -m tcp --dport 3306 -j KUBE-SVC-M7XME3WTB36R42AM
-A KUBE-SVC-M7XME3WTB36R42AM -m comment --comment "default/mysql:" -j KUBE-SEP-7P27CEQL6WJZRBQ5

Reply all
Reply to author
Forward
0 new messages