Kubernetes
是否可以在 Kubernetes pod 中公開 2 個埠?
我有以下情況 -
位置模擬器將根據時間從 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>
targetPort
: 是容器接受流量的埠,port
: 是抽象Service
埠,可以是其他 Pod 用來訪問 Service 的任何埠