Какие бывают Service в Kubernetes и чем Service отличается от Ingress?
- Чем ClusterIP отличается от NodePort и LoadBalancer?
- Как трафик снаружи попадает в под?
Service — стабильное имя и виртуальный IP для набора подов по меткам, балансировка на уровне L4. Типы: ClusterIP — только внутри кластера (по умолчанию), NodePort — порт на каждом узле, LoadBalancer — внешний балансировщик облака. Ingress — правила L7 (HTTP): маршрутизация по домену и пути, TLS, на один внешний вход — много сервисов; работает через ingress-контроллер (nginx, Traefik).
- Внутри кластера сервис доступен по DNS: orders.shop.svc.cluster.local
- Headless Service (clusterIP: None) — DNS возвращает IP подов, нужен StatefulSet
- Gateway API — более выразительная замена Ingress
А ещё В Service попадают только поды, прошедшие readiness
Подробно
Путь запроса снаружи:
клиент → облачный LB → ingress-контроллер (L7: хост, путь, TLS)
→ Service orders (ClusterIP) → один из готовых подов
Как работает Service. Контроллер ведёт список адресов готовых подов (EndpointSlice). kube-proxy на каждом узле программирует правила iptables или IPVS: обращение к виртуальному IP заменяется адресом случайного пода. Балансировка — по соединениям, поэтому долгие соединения (gRPC, HTTP/2) распределяются неравномерно — нужна L7 балансировка на клиенте или в service mesh.
Ingress:
spec:
tls: [{ hosts: [api.example.com], secretName: api-tls }]
rules:
- host: api.example.com
http:
paths:
- path: /orders
pathType: Prefix
backend: { service: { name: orders, port: { number: 80 } } }
Без установленного ingress-контроллера объект Ingress ничего не делает.
Что хотят услышать
- Назначение Service и его типы.
- Ingress как L7-маршрутизация и роль контроллера.
- Связь с readiness и проблема долгих соединений.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✓Service — стабильный адрес подов (L4), Ingress — HTTP-маршруты
- ✗Ingress — L4-балансировка внутри кластера, а Service — HTTP-маршрутизация по домену и пути
- ✗ClusterIP по умолчанию доступен из интернета, NodePort — только внутри кластера
- ✗Ingress работает без ingress-контроллера, его обрабатывает сам kube-proxy
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.