Что такое сервис (Service) в Kubernetes?
Этот вопрос проверяет понимание механизма, который позволяет Pod-ам взаимодействовать друг с другом и с внешними сервисами.
Короткий ответ
Service – это абстракция в Kubernetes, обеспечивающая сетевой доступ к группе Pod-ов. Он распределяет трафик между Pod-ами, поддерживает балансировку нагрузки и позволяет сервисам взаимодействовать внутри и вне кластера.
Длинный ответ
В Kubernetes Pod-ы динамически создаются и удаляются, поэтому их IP-адреса могут изменяться. Service решает эту проблему, создавая постоянную точку доступа.
Виды сервисов:
- ClusterIP – доступен только внутри кластера.
- NodePort – делает сервис доступным извне через порт узла.
- LoadBalancer – создаёт внешний балансировщик нагрузки.
- ExternalName – перенаправляет запросы на внешний домен.
Пример манифеста ClusterIP:
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080Этот сервис направляет трафик на Pod-ы с меткой app: my-app, перенаправляя порты.
Service в Kubernetes обеспечивает стабильный доступ к Pod-ам, балансировку нагрузки и сетевое взаимодействие между компонентами.