开发者社区> 问答> 正文

kubernetes pod名称用作参数

我想使用Kubernetes pod名称作为参数在我的容器中用作标识符。

我使用以下配置在我的Kubernetes集群上部署了echo容器:

apiVersion: apps/v1
kind: Deployment
metadata:
name: echo1
spec:
selector:

matchLabels:
  app: echo1

replicas: 2
template:

metadata:
  labels:
    app: echo1
spec:
  containers:
  - name: echo1
    image: hashicorp/http-echo
    args:
    - "-text=echo1"
    ports:
    - containerPort: 5678

当我做“kubectl get pods”时:

NAME READY STATUS RESTARTS AGE
echo1-76c689b7d-48h4v 1/1 Running 0 19h
echo1-76c689b7d-4gq2v 1/1 Running 0 19h
我想通过在上面的配置中传递pod名称来回显pod名称:

args:

        - "-text=echo1"

如何在我的args中访问我的pod名称?

展开
收起
k8s小能手 2019-01-11 14:10:01 3011 0
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

    首先,您将使用fieldRef语法作为环境变量,如https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/中所示。然后你将在你的参数("-text=$(PODNAME)")中使用env var 。但是,这将为您提供实际的pod名称,例如echo1-76c689b7d-48h4v。你想要的是部署名称或app标签的值,后者更容易而不是metadata.name作为字段路径,使用类似的东西metadata.labels['app'](需要Kubernetes 1.9+)。

    2019-07-17 23:25:20
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ACK 云原生弹性方案—云原生时代的加速器 立即下载
ACK集群类型选择最佳实践 立即下载
企业运维之云原生和Kubernetes 实战 立即下载

相关镜像