You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Kubernetes Service的TargetPort定义为字符串并配置对应Deployment

对应Deployment配置示例

你需要在Deployment的Pod模板容器段定义name: web的端口,同时保证Pod标签匹配Service的app: my-app选择器,完整配置如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app-deployment
  namespace: my-namespace
  labels:
    app: my-app
    tenant: a
spec:
  replicas: 3 # 可根据实际需求调整副本数
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
        tenant: a
    spec:
      containers:
      - name: my-app-container
        image: 你实际的业务镜像地址 # 替换为真实镜像
        ports:
        - name: web # 端口名必须和Service的targetPort字符串一致
          containerPort: 8080 # 替换为你应用实际监听的端口
          protocol: TCP
        # 按需补充资源限制、存活探针、启动探针等其他配置

关键配置说明

  • 核心匹配逻辑:Service中targetPort: web是引用端口名,要求后端Pod暴露的端口必须有同名的name: web定义,否则Service无法正确转发流量,ServiceMonitor也无法抓取到metrics数据。
  • 标签匹配:Pod模板的labels必须包含app: my-app,和Service的selector配置完全匹配,才能被Service选中作为后端端点。
  • 命名空间:Deployment需要部署在my-namespace下,和ServiceMonitor的namespaceSelector匹配,否则监控规则无法生效。
  • 端口配置:containerPort请替换为你的应用实际监听的业务/metrics端口,只要端口名保持为web即可,不需要和Service的port: 80一致。

内容的提问来源于stack exchange,提问作者Matthew S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 11:33:03