2017-01-01 64 views
2

在我的本地我跑mysql容器,然後從另一個容器ping到它在同一網絡上:無法ping在Kubernetes(minikube)在同一莢容器

$ docker run -d tutum/mysql 
$ docker run -it plumsempy/plum bash 
    # ping MYSQL_CONTAINER_ID 

     PING 67e35427d638 (198.105.244.24): 56 data bytes 
     64 bytes from 198.105.244.24: icmp_seq=0 ttl=37 time=0.243 ms 
     ... 

即好。然後,使用Kubernetes(minikube)在本地,我用下面YAML部署tutum/MySQL的:

... 
- name: mysql 
    image: tutum/mysql 
... 

沒有什麼別的了mysql容器。然後我部署它,SSH進入minikube吊艙,旋轉了一個隨機的容器,並嘗試這一次查驗莢裏面的mysql的容器:因爲它們都是在同一個網絡上

$ kubectl create -f k8s-deployment.yml 
$ minikube ssh 
    $ docker ps 
    $ docker run -it plumsempy/plum bash 
     # ping MYSQL_CONTAINER_ID_INSIDE_MINIKUBE 

      PING mysql (198.105.244.24): 56 data bytes 
      ^C--- mysql ping statistics --- 
      10 packets transmitted, 0 packets received, 100% packet loss 

     # traceroute MYSQL_CONTAINER_ID_INSIDE_MINIKUBE 

      traceroute to aa7f7ed7af01 (198.105.244.24), 30 hops max, 60 byte packets 
      1 172.17.0.1 (172.17.0.1) 0.031 ms 0.009 ms 0.007 ms 
      2 10.0.2.2 (10.0.2.2) 0.156 ms 0.086 ms 0.050 ms 
      3 * * * 
      4 * * * 
      5 dtr02gldlca-tge-0-2-0-1.gldl.ca.charter.com (96.34.102.201) 16.153 ms 16.107 ms 16.077 ms 
      6 crr01lnbhca-bue-200.lnbh.ca.charter.com (96.34.98.188) 18.753 ms 18.011 ms 30.642 ms 
      7 crr01mtpkca-bue-201.mtpk.ca.charter.com (96.34.96.63) 30.779 ms 30.523 ms 30.428 ms 
      8 bbr01mtpkca-bue-2.mtpk.ca.charter.com (96.34.2.24) 24.089 ms 23.900 ms 23.814 ms 
      9 bbr01ashbva-tge-0-1-0-1.ashb.va.charter.com (96.34.3.139) 26.061 ms 25.949 ms 36.002 ms 
      10 10ge9-10.core1.lax1.he.net (65.19.189.177) 34.027 ms 34.436 ms 33.857 ms 
      11 100ge12-1.core1.ash1.he.net (184.105.80.201) 107.873 ms 107.750 ms 104.078 ms 
      12 100ge3-1.core1.nyc4.he.net (184.105.223.166) 100.554 ms 100.478 ms 100.393 ms 
      13 xerocole-inc.10gigabitethernet12-4.core1.nyc4.he.net (216.66.41.242) 109.184 ms 111.122 ms 111.018 ms 
      14 * * * 
      15 * * * 
      ...(til it ends) 

plumsempy/plum可以是任何容器相同的吊艙,ping應該通過。問題是爲什麼我不能在minikube上達到mysql,我該如何解決這個問題?

回答

2

k8s multi-container pod docs

莢股的命運,並共享一些資源,比如存儲卷和IP地址。

因此,mysql容器是從在IP地址127.0.0.1plum容器可達。

而且,由於mysql運行在默認端口是3306,你可能想telnet 127.0.0.1 3306來檢查它是否到達(ping使用ICMP不具有端口的概念)。

+0

感謝這工作。 – plumSemPy

2

我猜容器ID不適用於Kubernetes。您還可以看到,容器標識已解析爲公開IP 198.105.244.24,看起來不正確。

你有多種方式來聯繫此莢:

  • 通過kubectl describe -f k8s-deployment.yml
  • 得到莢IP創建該莢service和做的其中之一(假設該服務名mysql):