我有此NodePort
服务,它公开了两个端口:
kind: Service
apiVersion: v1
metadata:
name: my-service
spec:
type: NodePort
selector:
app: my-service
ports:
- name: nginx-public
port: 443
targetPort: nginx-public
- name: metrics
port: 9200
targetPort: metrics
nginx-public
端口必须在节点上公开,因为我将其与aws-alb-ingress-controller一起使用。
但是,metrics
的另一个端口仅在内部使用(从群集内部使用)-由prometheus-operator拾取。我需要将其记录在服务规范中,但我不想同时在Node上保留另一个端口。
有没有办法告诉Kubernetes仅为该服务保留一个节点端口?
我尝试在端口规格中指定nodePort: null
,如下所示:
ports:
- name: nginx-public
port: 443
targetPort: nginx-public
- name: metrics
port: 9200
targetPort: metrics
nodePort: null
但是根据describe service
看来,这与完全省略nodePort
具有相同的效果,并且仍然为metrics
保留了一个随机端口。
答案 0 :(得分:2)
您可以定义两个服务,一个选择nginx-public,另一个选择度量。用两个 豆荚上分别有不同的标签。