Advanced
Тема интерфейса

Headless Services

Эта статья полезна?
Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Сервисы позволяют внутренний и внешний доступ к Подам, но не следующие сценарии:

  • Доступ ко всем Подам одновременно
  • Поды в Сервисе, получающие доступ друг к другу

Вот где headless Service вступает в действие. headless Service не создает cluster IP address, а записи DNS всех Подов возвращаются при запросе. Таким образом, IP-адреса всех Подов могут быть запрошены. StatefulSets используйте headless Services для поддержки взаимного доступа между Подами.

apiVersion: v1
kind: Service # Object type (Service)
metadata:
name: nginx-headless
labels:
app: nginx
spec:
ports:
- name: nginx # - name: nginx # Name of the port for communication between pods
port: 80 # Port number for communication between pods
selector:
app: nginx # Select the pod whose label is app:nginx.
clusterIP: None # Set this parameter to None, indicating that a headless Service is to be created.

Выполните следующую команду, чтобы создать headless Service:

# kubectl create -f headless.yaml
service/nginx-headless created

После создания Сервиса вы можете запросить Сервис.

# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-headless ClusterIP None <none> 80/TCP 5s

Создайте Под, чтобы запросить DNS. Вы можете просмотреть записи всех Подов. Таким образом, к каждому Поду можно получить доступ.

$ kubectl run -i --tty --image tutum/dnsutils dnsutils --restart=Never --rm /bin/sh
If you do not see a command prompt, try pressing Enter.
/ # nslookup nginx-0.nginx
Server: 10.247.3.10
Address: 10.247.3.10#53
Name: nginx-0.nginx.default.svc.cluster.local
Address: 172.16.0.31
/ # nslookup nginx-1.nginx
Server: 10.247.3.10
Address: 10.247.3.10#53
Name: nginx-1.nginx.default.svc.cluster.local
Address: 172.16.0.18
/ # nslookup nginx-2.nginx
Server: 10.247.3.10
Address: 10.247.3.10#53
Name: nginx-2.nginx.default.svc.cluster.local
Address: 172.16.0.19