Следующий контент взят из личных заметок и был реорганизован. Если есть какие-либо ошибки, пожалуйста, поправьте меня!
Если вам было полезно, ставьте лайк, подписывайтесь и вперед! Если у вас есть что-то еще, что вы хотите узнать, пожалуйста, свяжитесь со мной через личное сообщение ~
Основное введение
В Kubernetes Headless Service — это специальный механизм обнаружения служб, который позволяет пользователям напрямую получать доступ к экземплярам Pod в кластере вместо балансировки нагрузки на конечную точку (Pod) через один ClusterIP.
Запросы, полученные Headless Service, не нужно пересылать через kube-proxy, а правила балансировки нагрузки и маршрутизации отсутствуют.
Применимые сценарии для Headless Service следующие:
Рабочий принцип
Список ресурсов (пример)
# demo-servcie.yaml
apiVersion: v1
kind: Service
metadata:
name: demo-service
spec:
selector:
app: web
type: ClusterIP
clusterIP: None # Ключевой момент: значение поля должно быть установлено на None
ports:
- name: http
protocol: TCP
port: 80
targetPort: 8080
Как видно из списка ресурсов, если вы определяете объект службы типа ClusterIP как автономную службу, вам нужно только указать значение ее поля кластераIP как None.