【发布时间】:2021-05-12 14:44:51
【问题描述】:
我正在运行本教程https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-deploy-elasticsearch.html,发现 elasticsearch 运算符包含一个预定义的秘密,可通过kubectl get secret quickstart-es-elastic-user -o go-template='{{.data.elastic | base64decode}}' 访问。我想知道如何在将其用作环境变量的 pod 的清单文件中访问它。 Pod 的清单如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: user-depl
spec:
replicas: 1
selector:
matchLabels:
app: user
template:
metadata:
labels:
app: user
spec:
containers:
- name: user
image: reactor/user
env:
- name: PORT
value: "3000"
- name: ES_SECRET
valueFrom:
secretKeyRef:
name: quickstart-es-elastic-user
key: { { .data.elastic } }
---
apiVersion: v1
kind: Service
metadata:
name: user-svc
spec:
selector:
app: user
ports:
- name: user
protocol: TCP
port: 3000
targetPort: 3000
当我在此清单中尝试定义 ES_SECRET 时,我收到以下错误消息:invalid map key: map[interface {}]interface {}{\".data.elastic\":interface {}(nil)}\n。任何有关解决此问题的帮助将不胜感激。
【问题讨论】: