Minikube中Kubernetes Secret环境变量值异常,如何排查?
问题分析与解决方法
你的问题出在Secret的定义上:Kubernetes要求Secret的data字段下的所有值必须是Base64编码后的字符串,你直接填入了明文test,Kubernetes会默认把这个明文当作已编码的内容去解码,最终就会显示乱码。
解决步骤:
对明文密码做Base64编码
执行命令生成编码后的字符串:echo -n 'test' | base64得到结果:
dGVzdA==修改Secret配置
将Secret的data.DB_PASSWORD替换为编码后的值:apiVersion: v1 kind: Secret metadata: name: password type: Generic data: DB_PASSWORD: dGVzdA==重新应用配置并验证
- 重新创建Secret:
kubectl apply -f your-secret-file.yaml - 重启Deployment让新配置生效:
kubectl rollout restart deployment nginx - 进入Pod查看环境变量,确认密码正常:
kubectl exec -it $(kubectl get pods -l app=nginx -o name) -- env | grep DB_PASSWORD
- 重新创建Secret:
内容的提问来源于stack exchange,提问作者tvicky4j247
相关产品推荐
相关产品推荐

