要用作参数的kubernetes吊舱名称
我想使用Kubernetes pod名称作为容器中的标识符作为参数 我已使用以下配置在Kubernetes群集上部署了echo容器:要用作参数的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
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"