У меня следующий сценарий -
Имитатор положения будет получать данные о долготе и широте в зависимости от времени от GPS-трекера. Таким образом, этот симулятор положения имеет соединение с activemq, но для получения необработанных данных можно ли открыть другой порт этой службы для получения отслеживания в реальном времени данные?
Если вы хотите разоблачить, например, вы deployment
на двух или более портах это можно сделать как минимум двумя способами.
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
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
порт, который может быть любым портом, который другие модули используют для доступа к Сервису.