[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-kubernetes-chto-takoe-service-i-kakie-tipy-sushchestvuyut":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":15,"progress":16,"seo":17},1314,"chto-takoe-service-i-kakie-tipy-sushchestvuyut",26,"kubernetes","Kubernetes","☸️","Что такое Service и какие типы существуют?","Service — абстракция, которая определяет логическую группу Pod'ов и политику доступа к ним. Обеспечивает стабильный сетевой эндпоинт (IP-адрес и DNS-имя) для набора Pod'ов, даже если сами Pod'ы пересоздаются и их IP-адреса меняются.\n\n### Зачем нужен Service\n\nPod'ы эфемерны — они могут быть уничтожены и созданы заново с другим IP. Service решает эту проблему, предоставляя постоянный адрес и балансировку нагрузки.\n\n### Типы Service\n\n| Тип | Доступность | Использование | Особенности |\n|---|---|---|---|\n| ClusterIP (по умолчанию) | Только внутри кластера | Взаимодействие микросервисов | Виртуальный IP, доступный по DNS |\n| NodePort | Извне через IP ноды | Тестирование, dev-окружения | Порт 30000-32767 на каждой ноде |\n| LoadBalancer | Извне через балансировщик | Продакшен в облаке | Создаёт внешний LB (AWS ELB, GCP LB) |\n| ExternalName | DNS-алиас | Доступ к внешним сервисам | Возвращает CNAME, не создаёт прокси |\n\n\u003Cdetails>\n\u003Csummary>Примеры манифестов для каждого типа Service\u003C\u002Fsummary>\n\nClusterIP:\n```yaml\napiVersion: v1\nkind: Service\nmetadata:\n  name: my-java-app-service\nspec:\n  type: ClusterIP\n  selector:\n    app: my-java-app\n  ports:\n    - port: 80\n      targetPort: 8080\n```\n\nДругие сервисы в кластере обращаются по адресу `http:\u002F\u002Fmy-java-app-service:80` или `http:\u002F\u002Fmy-java-app-service.namespace.svc.cluster.local:80`.\n\nNodePort:\n```yaml\napiVersion: v1\nkind: Service\nmetadata:\n  name: my-java-app-nodeport\nspec:\n  type: NodePort\n  selector:\n    app: my-java-app\n  ports:\n    - port: 80\n      targetPort: 8080\n      nodePort: 30080\n```\n\nLoadBalancer:\n```yaml\napiVersion: v1\nkind: Service\nmetadata:\n  name: my-java-app-lb\nspec:\n  type: LoadBalancer\n  selector:\n    app: my-java-app\n  ports:\n    - port: 80\n      targetPort: 8080\n```\n\nExternalName:\n```yaml\napiVersion: v1\nkind: Service\nmetadata:\n  name: external-db\nspec:\n  type: ExternalName\n  externalName: database.example.com\n```\n\n\u003C\u002Fdetails>\n\n> **На собеседовании:** нужно перечислить 4 типа Service и сказать, когда какой использовать. Частая ошибка — не знать, что ClusterIP создаётся по умолчанию, или путать NodePort с LoadBalancer.","","middle",[7],[],null,{"title":18,"description":19,"ogTitle":18,"ogDescription":20,"keywords":21,"schemaAnswer":22,"featuredSnippetReady":23},"Что такое Service и какие типы существуют? — Gymterview","Service — абстракция, которая определяет логическую группу Pod'ов и политику доступа к ним. Обеспечивает стабильный сетевой эндпоинт (IP-адрес и DNS-имя) для на","Service — абстракция, которая определяет логическую группу Pod'ов и политику доступа к ним. Обеспечивает стабильный сете",[7,13],"Service — абстракция, которая определяет логическую группу Pod'ов и политику доступа к ним. Обеспечивает стабильный сетевой эндпоинт (IP-адрес и DNS-имя) для набора Pod'ов, даже если сами Pod'ы пересоздаются и их IP-адреса меняются.",true]