如何在kubernetes中使用字符串值设置targetPort?

时间:2017-08-02 16:37:05

标签: kubernetes

我理解在k8s中定义服务时如何将targetPort设置为整数值。

但是,我对如何使用字符串值设置targetPort感到有点困惑。

有关于此的任何示例吗?

谢谢,

2 个答案:

答案 0 :(得分:1)

此服务适用于普罗米修斯。在以下清单中,首先必须在部署中定义web,然后才能在targetPort中将其称为字符串。

apiVersion: v1
kind: Service
metadata:
  labels:
    prometheus: k8s
  name: prometheus-k8s
  namespace: monitoring
spec:
  ports:
  - name: web
    nodePort: 30900
    port: 9090
    protocol: TCP
    targetPort: web
  selector:
    prometheus: k8s
  type: NodePort

答案 1 :(得分:1)

解决@sfgroups的评论:

  

端口号应该是整数,是否有理由设置字符串值?

我实际上并没有在我的targetPort中使用数字,因为从服务的PoV来看,这就是你与Pod之间的合约,比如说(如Eugene的片段)该服务将提供" web"将端口9090上的内容发送到外部,并使用名为" web"的暴露(关键字)端口。从Pod开始,然后由Pod来映射Pod的#" web"到其容器中的整数端口。因此,如果他们想要使用nginx:80或tomcat on:8080或节点on:3000或or或者,那就是Pod及其容器,并且不应该是服务的关注点。