2016-10-07 47 views
3

我已经在google gcloud容器引擎上部署了我的应用程序。我的申请要求MySQL。应用程序运行良好并正确连接到MySQL。 但我想连接MySQL数据库从我的本地机器使用MySQL客户端(Workbench,或命令行),有人可以帮助我如何将其公开到本地机器?我怎样才能在gcloud shell上打开MySQ L命令行?如何连接MySQL上运行的Kubernetes

我已经运行下面的命令,但外部IP是不存在的: -

$ kubectl get deployment 
NAME   DESIRED CURRENT UP-TO-DATE AVAILABLE AGE 
app-mysql 1   1   1   1   2m 
$ kubectl get pods 
NAME       READY  STATUS    RESTARTS AGE 
app-mysql-3323704556-nce3w 1/1  Running   0   2m 
$ kubectl get service 
NAME   CLUSTER-IP EXTERNAL-IP  PORT(S) AGE 
app-mysql 11.2.145.79 <none>   3306/TCP 23h 

编辑

我使用下面yml文件

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: app-mysql 
spec: 
    replicas: 1 
    template: 
    metadata: 
     labels: 
     app: app-mysql 
    spec: 
     volumes: 
     - name: data 
     emptyDir: {} 
     containers: 
     - name: mysql 
     image: mysql:5.6.22 
     env: 
     - name: MYSQL_USER 
      value: root 
     - name: MYSQL_DATABASE 
      value: appdb 
     ports: 
     - containerPort: 3306 
     volumeMounts: 
     - name: data 
      mountPath: /var/lib/mysql/ 
--- 
apiVersion: v1 
kind: Service 
metadata: 
    name: app-mysql 
spec: 
    selector: 
    app: app-mysql 
    ports: 
    - port: 3306 

回答

6

尝试kubectl port-forward命令。

在你的情况; kubectl port-forward app-mysql-3323704556-nce3w 3306:3306

有关所有可用选项,请参阅The documentation

+0

我不知道这是否正确,但它不适用于我..它显示下面'转发从127.0.0.1:3306 - > 3306 转发从[:: 1]:3306 - > 3306'和之后,当我运行'kubectl获取服务'它没有显示外部IP –

+0

你将不得不在你的本地机器上使用MySQL客户端,并连接到'localhost:3306' 。这将使用您使用'kubectl port-forward'创建的隧道。 –

+0

现在工作正常,我已经重新安装了gcloud。谢谢你的帮助 –

相关问题