2016-02-04 2 views
8

Я создаю контейнер с подключением к базе данных cloudql, когда я запускаю изображение с помощью кубернетов. У него нет внешнего IP-адреса, который я могу использовать, чтобы позволить новому изображению подключаться к базе данных. Но поскольку это часть конфигурации init, я не могу дождаться, чтобы узнать, что представляет собой публичный IP-адрес для добавления в базы данных белых списков.Как подключиться к экземпляру Cloud SQL с помощью сервиса kubernetes?

Я знаю, что это способы подключения базы данных через службы в одном кластере, но я не могу понять, как подключиться к облачным областям, предоставляемым google.

+3

Я не слишком хорошо знаком с Kubernetes, но вы можете запустить прокси Cloud Cloud на своих узлах Kubernetes и использовать его для подключения? https://cloud.google.com/sql/docs/sql-proxy – Vadim

+1

Я собираюсь проверить, и я дам вам знать, спасибо @ Вадим! – agares

+0

Разве вы не можете просто сказать облако-SQL о ваших IP-адресах узлов? Насколько я понимаю, это далеко не идеально, но есть что-то несоответствие между новым контейнерно-ориентированным миром и существующим мировым центром VM. –

ответ

6

Есть два способа решить, что:

Первый вариант заключается в использовании cloudsql прокси, используя инструкции, доступные в: https://cloud.google.com/sql/docs/sql-proxy

В вашем Docker изображения вам необходимо убедиться, что предохранитель доступен в вашем установка не была в моем случае (с использованием 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.

Второй способ - это просто позволить ips из узлов, которые поддерживают кластер кубернетов в белом списке для облака.

Я предпочитаю первый вариант, потому что он работает на любом компьютере. Я развертываю изображение, и мне не нужно заботиться о добавлении или удалении ips, если мне нужно доставить больше узлов в кластере кубернетов.