将托管在kubernetes上的jenkins连接到Google Cloud Platform上的MySQL

时间:2018-12-20 06:17:06

标签: mysql jenkins kubernetes google-cloud-platform

我已经在Google Cloud Platform上托管的Kubernetes集群上托管了Jenkins。我正在尝试通过Jenkins运行python脚本。该脚本需要读取MySQL上的一些值。 MySQL实例正在其中一个实例上单独运行。我一直在将Kubernetes连接到MySQL实例时遇到问题。我收到以下错误:

sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on '35.199.154.36' (timed out)

This is the document我碰到了

根据文档,我尝试通过专用IP地址进行连接。 生成了一个具有MySQL用户名和密码的机密,并以以下格式包含了主机IP地址,并以this document作为参考:

apiVersion: v1
kind: Secret
metadata:
   name: db-credentials
type: Opaque
data:
  hostname:<MySQL external ip address>
  kubectl create secret generic literal-token --from-literal user=<username> --from-literal password=<password>

这是我要在Jenkins Pod模板中插入的Pod的原始yaml文件。

The image of the Kubernetes pod template as on Jenkins

任何有关如何克服此SQL连接问题的帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您无法在Pod模板字段中创建机密。您需要先创建机密,然后再运行作业并将其从pod模板中挂载,或者仅根据环境的安全级别将pod模板中的用户/密码作为环境变量引用