Kubernetes 如何使用SQL为Google cloud正确设置Gitlab CI

Kubernetes 如何使用SQL为Google cloud正确设置Gitlab CI,kubernetes,google-kubernetes-engine,gitlab-ci,Kubernetes,Google Kubernetes Engine,Gitlab Ci,我想设置Gitlab CI以自动测试Node.js项目并将其部署到google cloud kubernetes引擎。我还希望能够连接到我的谷歌云sql实例 我目前正在与Gitlab auto devops合作。我已经连接了gitlab中的kubernetes集群,并安装了Helm、Ingress、Cert Manager和Prometheus 经过一番研究,我发现我必须部署一个云SQL代理才能从Node.js服务器访问SQL实例 我的Dockerfile配置: FROM node:10.16.

我想设置Gitlab CI以自动测试Node.js项目并将其部署到google cloud kubernetes引擎。我还希望能够连接到我的谷歌云sql实例

我目前正在与Gitlab auto devops合作。我已经连接了gitlab中的kubernetes集群,并安装了Helm、Ingress、Cert Manager和Prometheus

经过一番研究,我发现我必须部署一个云SQL代理才能从Node.js服务器访问SQL实例

我的Dockerfile配置:

FROM node:10.16.3

# Intsall Google Cloud SQL Proxy
RUN wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
RUN chmod +x cloud_sql_proxy
RUN ./cloud_sql_proxy -instances=myProject:zone:name=tcp:3306

# Node
WORKDIR /usr/src/app

ARG NODE_ENV
ENV NODE_ENV $NODE_ENV

COPY package.json /usr/src/app/
RUN npm config set "@fortawesome:registry" https://npm.fontawesome.com/
RUN npm config set "//npm.fontawesome.com/:_authToken" KEY
RUN npm install

COPY . /usr/src/app 

EXPOSE 5000
CMD [ "npm", "start" ]
但这在构建时失败了:

2019/10/13 11:48:38 current FDs rlimit set to 1048576, wanted limit is 8500. Nothing to do here.
2019/10/13 11:48:40 error checking scopes: *url.Error Get http://x.x.x.x/computeMetadata/v1/instance/service-accounts/default/scopes: dial tcp x.x.x.x:80: i/o timeout | Get http://x.x.x.x/computeMetadata/v1/instance/service-accounts/default/scopes: dial tcp x.x.x.x:80: i/o timeout
The command '/bin/sh -c ./cloud_sql_proxy -instances=myProject:zone:name=tcp:3306' returned a non-zero code: 1
为什么会发生此错误

我是否必须编写自己的.gitlab-ci.yml配置来处理这种常见场景


如果是这样的话,这个用例是否有模板,因为我发现的只是使用docker手动将应用程序部署到使用SQL的GKE?

您在这方面有什么进展吗?我也有类似的问题。我目前的想法是通过kubernetes将云SQL代理作为容器运行,然后使用该代理访问实例。这将需要传递一个秘密,以便实例可以连接到。我发现这些链接很有用,而且很有用。但是现在我的播客处于挂起状态。您是否查看了下面提供的关于如何连接的模板和示例。查看错误消息,似乎是连接问题,无法到达元数据服务器。您是否尝试改用了?挂起状态是指Pod已被集群创建并接受,但其一个或多个容器尚未运行。此阶段包括在节点上调度和下载图像所花费的时间。您是否存在连接gcr/公共集装箱集线器的连接问题或任何其他错误消息@泰勒:你在这方面有什么进展吗?我也有类似的问题。我目前的想法是通过kubernetes将云SQL代理作为容器运行,然后使用该代理访问实例。这将需要传递一个秘密,以便实例可以连接到。我发现这些链接很有用,而且很有用。但是现在我的播客处于挂起状态。您是否查看了下面提供的关于如何连接的模板和示例。查看错误消息,似乎是连接问题,无法到达元数据服务器。您是否尝试改用了?挂起状态是指Pod已被集群创建并接受,但其一个或多个容器尚未运行。此阶段包括在节点上调度和下载图像所花费的时间。您是否存在连接gcr/公共集装箱集线器的连接问题或任何其他错误消息@泰勒