要用作参数的kubernetes吊舱名称

要用作参数的kubernetes吊舱名称,kubernetes,Kubernetes,我想使用Kubernetes pod名称作为容器中的标识符作为参数 我已使用以下配置在Kubernetes群集上部署了echo容器: apiVersion: apps/v1 kind: Deployment metadata: name: echo1 spec: selector: matchLabels: app: echo1 replicas: 2 template: metadata: labels: app: ech

我想使用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获得豆荚”时:

我想通过在上面的配置中传递pod名称来回显pod名称:

args:
            - "-text=echo1"

如何访问要在args中使用的pod名称?

有几件事。首先,您将对环境变量使用fieldRef语法,如中所示。然后在参数中使用env变量(
“-text=$(PODNAME)”
)。但是,这将为您提供实际的pod名称,如
echo1-76c689b7d-48h4v
。您需要的是部署名称或
app
标签的值,后者更容易代替
元数据。name
作为字段路径,使用类似
元数据的内容。标签['app']
(需要Kubernetes 1.9+)。

还有几件事。首先,您将对环境变量使用fieldRef语法,如中所示。然后在参数中使用env变量(
“-text=$(PODNAME)”
)。但是,这将为您提供实际的pod名称,如
echo1-76c689b7d-48h4v
。您需要的是部署名称或
app
标签的值,后者更容易代替
元数据。name
作为字段路径,使用类似
元数据的内容。标签['app']
(需要Kubernetes 1.9+)。

我尝试了“-text=$PODNAME”。当我卷曲到服务时,我得到了“$PODNAME”本身。我是不是--“text=metadata.labels['app']”?对不起,我想应该是
$(PODNAME)
我用“-text=$PODNAME”试过了(记住你也必须配置env-var部分)。当我卷曲到服务时,我得到了“$PODNAME”本身。我应该--“text=metadata.labels['app']”吗?对不起,我想应该是
$(PODNAME)
(记住,您还必须配置env-var部分)
args:
            - "-text=echo1"