私は簡単なMYSQLポッドをMYSQLサービスの背後に置いています。KubernetesサービスのDNS解決が間違ったIPを返す
また、私はMYSQLポッドに接続しようとしているpythonプロセスを実行している別のポッドを持っています。
MYSQLポッドのIPアドレスにPythonポッドから手動で接続しようとすると、すべてがA-OKです。しかし、MYSQL サービスに接続しようとすると、MYSQLに接続できないというエラーが表示されます。
[email protected]:~/k8s/objects$ kubectl describe pod mysqlpod
Name: mysqlpod
Namespace: default
Node: minikube/192.168.99.100
Start Time: Fri, 20 Jan 2017 11:10:50 -0600
Labels: <none>
Status: Running
IP: 172.17.0.4
Controllers: <none>
[email protected]:~/k8s/objects$ kubectl describe service mysqlservice
Name: mysqlservice
Namespace: default
Labels: <none>
Selector: db=mysqllike
Type: ClusterIP
IP: None
Port: <unset> 3306/TCP
Endpoints: 172.17.0.5:3306
Session Affinity: None
No events.
[email protected]:~/k8s/objects$ kubectl describe pod basic-python-model
Name: basic-python-model
Namespace: default
Node: minikube/192.168.99.100
Start Time: Fri, 20 Jan 2017 12:01:50 -0600
Labels: db=mysqllike
Status: Running
IP: 172.17.0.5
Controllers: <none>
私はPythonのコンテナに付着しmysqlserviceのnslookupコマンドを実行する場合は、私が実際に間違っ IPを取得しています。上で見たように、mysqlpodのIPは172.17.0.4であり、nslookup mysqlserviceは172.17.0.5に解決されています。
[email protected]:~/k8s/objects$ k8s exec -it basic-python-model bash
[[email protected] /]# nslookup mysqlservice
Server: 10.0.0.10
Address: 10.0.0.10#53
Name: mysqlservice.default.svc.cluster.local
Address: 172.17.0.5
私はkubernetesにかなり新しいんだけど、私は数時間のために、この問題に頭を叩いてきたと私は私が間違ってやっているのか理解できないようです。