Служба может быть определена как логический набор модулей. Его можно определить как абстракцию в верхней части модуля, которая предоставляет один IP-адрес и имя DNS, по которым можно получить доступ к модулям. С Service очень легко управлять конфигурацией балансировки нагрузки. Это помогает очень легко масштабировать стручки.
Служба — это объект REST в Kubernetes, определение которого можно опубликовать в Kubernetes apiServer на мастере Kubernetes для создания нового экземпляра.
Сервис без селектора
apiVersion: v1 kind: Service metadata: name: Tutorial_point_service spec: ports: - port: 8080 targetPort: 31999
Приведенная выше конфигурация создаст сервис с именем Tutorial_point_service.
Файл конфигурации службы с помощью селектора
apiVersion: v1 kind: Service metadata: name: Tutorial_point_service spec: selector: application: "My Application" -------------------> (Selector) ports: - port: 8080 targetPort: 31999
В этом примере у нас есть селектор; поэтому для передачи трафика нам нужно создать конечную точку вручную.
apiVersion: v1 kind: Endpoints metadata: name: Tutorial_point_service subnets: address: "ip": "192.168.168.40" -------------------> (Selector) ports: - port: 8080
В приведенном выше коде мы создали конечную точку, которая будет направлять трафик к конечной точке, определенной как «192.168.168.40:8080».
Создание мультипортового сервиса
apiVersion: v1 kind: Service metadata: name: Tutorial_point_service spec: selector: application: “My Application” -------------------> (Selector) ClusterIP: 10.3.0.12 ports: -name: http protocol: TCP port: 80 targetPort: 31999 -name:https Protocol: TCP Port: 443 targetPort: 31998
Типы услуг
ClusterIP — это помогает в ограничении службы в кластере. Он предоставляет сервис в пределах определенного кластера Kubernetes.
spec: type: NodePort ports: - port: 8080 nodePort: 31999 name: NodeportService
NodePort — он будет предоставлять сервис на статическом порту развернутого узла. Служба ClusterIP , к которой будет направляться служба NodePort , создается автоматически. Доступ к службе можно получить из-за пределов кластера, используя NodeIP: nodePort .
spec: ports: - port: 8080 nodePort: 31999 name: NodeportService clusterIP: 10.20.30.40
Балансировщик нагрузки — использует балансировщик нагрузки облачных провайдеров. Службы NodePort и ClusterIP создаются автоматически, на которые будет направлять внешний балансировщик нагрузки.
Полный файл сервиса yaml с типом сервиса как Node Port. Попробуйте создать его самостоятельно.