kubernetes - 无法读取我新创建的Kubernetes secret

标签 kubernetes

我这样设定我的 secret :

$ kubectl create secret generic aws-region VAL=eu-west-1 \
>           -o yaml --dry-run | kubectl replace -f -
secret "aws-region" replaced

似乎要设置:
kubectl get secret | ack region
aws-region                      Opaque                                0         20m

我尝试这样阅读:
 76             - name: AWS_REGION
 77               valueFrom:
 78                 secretKeyRef:
 79                   name: aws-region
 80                   key: VAL

但这在我运行kubectl apply -f service.yml时给出了 CreateContainerConfigError
我究竟做错了什么?

最佳答案

由于您只向我们展示了service.yaml的一小部分,因此无法确定错误的来源,但是我可以确认以下工作(使用我创建的here测试 pod ):

$ kubectl create secret generic aws-region --from-literal=VAL=eu-west-1
$ kubectl apply -f pod.yaml 
$ kubectl describe po/envfromsecret
Name:         envfromsecret
Namespace:    default
...
Environment:
 AWS_REGION:  <set to the key 'VAL' in secret 'aws-region'>  Optional: false

更新:我现在注意到DATA命令的输出中的kubectl get secret列实际上为0,即为空。考虑使用我上面使用的形式(带有--from-literal=)来创建 secret 。

关于kubernetes - 无法读取我新创建的Kubernetes secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51418711/

相关文章:

node.js - 运行 NodeJs kubernetes 客户端示例错误

kubernetes - 如何使用 oc 客户端从 configmap 中提取特定值

kubernetes - 是否可以将流量路由到特定的Pod?

kubernetes - 将列表对象传递到 configMap 数据部分

logging - Kubernetes 的 Pod 日志文件在哪里?

ssl - 可以在 nginx 入口 Controller 中使用动态路由吗?

docker - 当Minikube(k8s)内的Pod声明卷时,如何强制所有它们实际上位于裸机*主机*上的某个磁盘上?

docker - Kubernetes:管理应用程序运行环境

elasticsearch - kubernetes上的Filebeat-排除 namespace 不起作用

linux - 无法在 Katacoda Playground 的 node01 上配置上下文/获取 kubectl