Назад | Перейти на главную страницу

Можно ли в kbs pod выставить 2 порта?

У меня следующий сценарий -

Имитатор положения будет получать данные о долготе и широте в зависимости от времени от GPS-трекера. Таким образом, этот симулятор положения имеет соединение с activemq, но для получения необработанных данных можно ли открыть другой порт этой службы для получения отслеживания в реальном времени данные?

Если вы хотите разоблачить, например, вы deployment на двух или более портах это можно сделать как минимум двумя способами.

  1. Правильная конфигурация в YAML. Этот метод хорошо описан в Документация Kubernetes.

    Для некоторых Сервисов необходимо открыть более одного порта. Kubernetes позволяет настраивать несколько определений портов для объекта службы. При использовании нескольких портов для Сервиса вы должны дать всем своим портам имена, чтобы они были однозначными. Например:

Пример:

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
    - name: http
      protocol: TCP
      port: 80
      targetPort: 9376
    - name: https
      protocol: TCP
      port: 443
      targetPort: 9377
    - name: <another-name>
      protocol: TCP
      port: XXX
      targetPort: XXX
  1. С помощью kubectl expose.

$ kubectl exposed <resource(deployment/Replicaset/etc)> <deployment-name> --port=XXX,XYZ,ABC --target-port=XXX

$ kubectl expose deployment nginx --port=80,8080,6000 --target-port=8080 service/nginx exposed

$ kubectl describe svc nginx
Name:              nginx
Namespace:         default
Labels:            run=nginx
Annotations:       <none>
Selector:          run=nginx
Type:              ClusterIP
IP:                10.0.74.75
Port:              port-1  80/TCP
TargetPort:        8080/TCP
Endpoints:         10.48.0.13:8080
Port:              port-2  8080/TCP
TargetPort:        8080/TCP
Endpoints:         10.48.0.13:8080
Port:              port-3  6000/TCP
TargetPort:        8080/TCP
Endpoints:         10.48.0.13:8080
Session Affinity:  None
Events:            <none>

Как упоминалось в Документы Kubernetes

targetPort: порт, через который контейнер принимает трафик, port: это абстрактное Service порт, который может быть любым портом, который другие модули используют для доступа к Сервису.