2015-09-03 4 views
5

На GKE, kube-dns работает на моих узлах, я вижу контейнеры докеров.как использовать Kubernetes DNS для стручков?

У меня есть доступ к Услуги по имени, которое отлично подходит для всех этих приложений, где балансировка нагрузки является вполне подходящим решением, но как бы я использовать DNS для доступа к отдельным стручки?

Я знаю, что я могу найти конкретные контейнеры в API, но мне нужно обновить файл hosts и следить за списком элементов. DNS должен делать это для меня, так как это означает, что он будет использоваться в контейнере?

Документ Kubernetes сообщает, что информация о DNS должна быть передана в kubelet, но у меня нет доступа к этому в GKE, о котором я знаю, поэтому он просто не настроен таким образом на GKE или есть что-то делать, чтобы активировать Это?

Некоторые из моих услуг (в частности, zookeeper) знают о других узлах и пытаются подключиться к ним по имени хоста (это имя файла), и это не удается, если я сам не обновляю файл hosts. Я хотел бы использовать для этого интегрированную службу DNS.

Любые рекомендации относительно того, как это сделать, будут оценены.

Благодаря

ответ

1

ОРИГИНАЛЬНЫЙ ОТВЕТ:

по состоянию на эту дату, на самом деле это не возможно ... но в настоящее время рассматривается в командой Kubernetes.

Смотрите этот вопрос: https://github.com/kubernetes/kubernetes/issues/13552

UPDATE:

DNS доступен для стручков с тех пор 09/2015 См PR: https://github.com/kubernetes/kubernetes/pull/13759

короче:

Это будет дают стручки dns в форме <podIP>.<namespace>.pod.<clusterSuffix> Curr может быть отключен, но либо включен для всех контейнеров, либо выключен.

0

Kubernetes statefulset support связывает имя службы и определяет имя pod dns именем службы.

Такие, как ваш создать гк daemonset и услуги гк, то имя домена первого стручка ZK daemonset является гк-0 $ (имен) .svc.cluster.local

подробнее см. https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/

Смежные вопросы