Есть ли способ обнаружить все конечные точки безголового сервиса из-за пределов кластера?
Предпочтительно использование DNS или статических IP-адресов
Есть ли способ обнаружить все конечные точки безголового сервиса из-за пределов кластера?
Предпочтительно использование DNS или статических IP-адресов
Под просмотр изменений в список конечных точек:
GET /api/v1/watch/namespaces/{namespace}/endpoints
Аддон DNS - это именно то, что вам нужно. Из документов:
Например, если у вас есть Услуга, называемая "мой-сервис" в Кубернете Пространство имен "my-ns" создается запись DNS для "my-service.my-ns". Бобы которые существуют в пространстве имен "my-ns", должны быть в состоянии найти его просто выполнив поиск имени для "my-service". Подложки, которые существуют в других Пространства имен должны иметь название "my-service.my-ns". Результат эти поиски имен - это IP-адрес кластера.
А в случае безголового сервиса:
DNS настроен для возврата нескольких записей (адресов) A для Имя службы, которое указывает прямо на Pods, поддерживающие Сервис.
Однако эта услуга доступна только внутри кластера. Но KubeDNS - это еще один пример:
kubectl get po --namespace=kube-system
kubectl describe po kube-dns-pod-name --namespace=kube-system
Это означает, что вы можете создать службу с внешним доступом, чтобы открыть эту службу. Просто используйте селектор, соответствующий вашей метке kube-dns pod.
http://kubernetes.io/v1.1/docs/user-guide/services.html#dns https://github.com/kubernetes/kubernetes/blob/release-1.1/cluster/addons/dns/README.md
Безглавые службы - это группа под IP-адресов. Под IP-адресами (обычно) недоступны вне кластера/облачного провайдера.
Вы пытаетесь получить внешние IP-адреса для службы без гарнитуры или находитесь в одной сети (например, в проекте GCE), но не в кластере?