2017-06-06 50 views
1

我是kubernetes的新手,我知道我錯過了一些小東西,但看不到什麼。 我創建與文件莢:kubectl創建-f mysql.yaml如何從kubernetes中的新部署的網絡中訪問網絡?

apiVersion: v1 
kind: Pod 
metadata: 
    name: mysql 
    labels: 
    name: mysql 
spec: 
    containers: 
    - resources: 
     limits : 
      cpu: 2 
     image: mysql 
     name: mysql 
     env: 
     - name: MYSQL_ROOT_PASSWORD 
      # change this 
      value: TestingDB1 
     ports: 
     - containerPort: 3306 
      name: mysql 

,並與服務:kubectl創建-f mysql_service.yaml的

apiVersion: v1 
kind: Service 
metadata: 
    labels: 
    name: mysql 
    name: mysql 
spec: 
    externalIPs: 
    - 10.19.13.127 
    ports: 
    - port: 3306 
    selector: 
    name: mysql 

輸出 「kubectl版」

Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"d33fd89e399396658aed4e48dfe7d5d8d50ac6e8", GitTreeState:"clean", BuildDate:"2017-05-26T17:08:24Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"} 
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"d33fd89e399396658aed4e48dfe7d5d8d50ac6e8", GitTreeState:"clean", BuildDate:"2017-05-26T17:08:24Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"} 

的 「kubectl集羣信息」

Kubernetes master is running at http://localhost:8080 
輸出的 「kubectl獲取豆莢」 的

NAME     READY  STATUS RESTARTS AGE 
mysql     1/1  Running 0   20m 

輸出

輸出 「kubectl得到SVC」 的

NAME   CLUSTER-IP  EXTERNAL-IP PORT(S) AGE 
kubernetes 10.254.0.1  <none>   443/TCP 18h 
mysql  10.254.129.206 10.19.13.127 3306/TCP 1h 

輸出 「kubectl得不到」「泊塢窗PS的

NAME   STATUS AGE 
10.19.13.127 Ready  19h 

輸出「

CONTAINER ID  IMAGE          COMMAND     CREATED    STATUS    PORTS    NAMES 
74ea1fb2b383  mysql          "docker-entrypoint.sh" 3 minutes ago  Up 3 minutes       k8s_mysql.ae7893ad_mysql_default_e58d1c09-4a8e-11e7-9baf-fa163ee3f5d9_793d8d7c 

我可以看到吊艙正在正常創建。即使我連接到容器,我也可以使用憑據登錄到MySQL。

我的問題是: 我如何訪問/暴露在我的網絡上運行在我的kubernetes節點上的端口?例如,我想從我的PC到運行mysql pod的kubernetes節點執行telnet。

謝謝!

+0

有了這個配置,你應該能夠通過10.19.13.127訪問到你莢:3306。 你試過「telnet 10.19.13.127 3306」嗎? 會發生什麼?你檢查過防火牆規則嗎? – aespejel

回答

0

以下命令來確認Redis的服務器在羣運行和監聽的端口(通常它6379端口上運行):

kubectl得到莢Redis的主--template ='{{(指數(指數.spec.containers 0).ports 0).containerPort}} {{ 「\ n」}}」

輸出:6739