我正在Google Cloud Platform中关注the tutorial on how to deploy a Django application to the Kubernetes Engine,并在第9步中这样做:
检索Cloud SQL代理的公共Docker映像。
docker pull b.gcr.io/cloudsql-docker/gce-proxy:1.05
这是什么Cloud SQL代理映像?我是否正确理解将应用程序(即网络工作者)部署到基于Cloud SQL代理映像构建的映像?这样是为了他们可以访问数据库?
查看应用程序的the yaml file,似乎是从Cloud SQL代理生成的映像将运行应用程序,然后还有另一个容器,它只是cloudsql-docker映像。为什么需要第二个容器?</ p>
答案 0 :(得分:1)
我敢肯定,其他一些真正了解Kubernetes,Docker和GCP的人会为您提供更好的答案,但是我想介绍一下到目前为止我所学到的信息,以防其他人也遇到同样的问题。
这是什么Cloud SQL代理映像?
这是一个运行Cloud SQL代理的Docker映像,其解释如下:https://cloud.google.com/sql/docs/postgres/sql-proxy
我仍然不确定100%为什么使用此SQL代理。
我是否正确理解应用程序Web工作者已部署到在Cloud SQL代理映像之上构建的映像?
那是错的。该命令:
docker build -t gcr.io/<your-project-id>/polls .
使用Dockerfile from the git repo,其中将gcr.io/google_appengine/python
设置为应用程序图像的基础图像。
答案 1 :(得分:0)
我刚遇到类似情况。如果您要在Google Cloud Instance的容器中运行应用程序,并且想连接到Google Cloud SQL,则只需使用Cloud SQL Proxy docker。将您的应用容器与Cloud SQL Proxy docker容器链接。另外,在应用程序中将MySQL主机名保留为SQL代理容器名而不是localhost。
在使用负载均衡器运行托管实例组时最有用
参考:https://forums.docker.com/t/app-container-cannot-access-mysql-container/6660