当我使用kubernetes运行映像时,我正在创建一个连接到cloudql数据库的容器。它没有可用于允许新映像连接到数据库的外部IP。但由于这是init配置的一部分,我迫不及待想知道要添加到白名单数据库的公共IP是什么。
我知道这是通过同一群集中的服务连接数据库的方法,但我无法弄清楚如何连接google提供的cloudsql。
答案 0 :(得分:6)
有两种方法可以解决这个问题:
第一个选项是使用以下网址中提供的说明使用cloudsql代理:https://cloud.google.com/sql/docs/sql-proxy
在您的泊坞窗图片中,您需要确保您的安装中有保险丝,而不是我的情况(使用ubuntu:trusty-20160119作为基本图像)。如果您需要,请在Dockerfile中使用以下步骤:
# install fusermount
# RUN apt-get install build-essential -y
# RUN wget https://github.com/libfuse/libfuse/releases/download/fuse_2_9_5/fuse-2.9.5.tar.gz
# RUN tar -xzvf fuse-2.9.5.tar.gz
# RUN cd fuse-2.9.5 && ./configure && make -j8 && make install
然后在容器启动时,您必须创建一个打开套接字的脚本,如https://cloud.google.com/sql/docs/sql-proxy#example_proxy_invocations_and_connection_strings中所述。
第二种方法是允许来自支持kubernetes集群的节点的ips在白名单中用于cloudsql。
我更喜欢第一个选项,因为它适用于我部署映像的任何计算机,如果我需要在kubernetes集群中提供更多节点,我不需要关心添加或删除ips。