我正在按照本教程将 Django 应用程序部署到 Kubernetes 集群。我已经创建了 cloudsql 凭据并按照教程中的方式导出了它们
export DATABASE_USER=<your-database-user>
export DATABASE_PASSWORD=<your-database-password>
但是,我的密码是由 LastPass 生成的,并且包含特殊字符,这些字符在 Kubernetes Pod 中被删除,从而导致密码不正确。
这是我的密码(已更改,仅显示特殊字符)
5bb4&sL!EB%e
所以我尝试了各种导出这个字符串的方法,回显它总是显示正确的密码,但是在 Kubernetes Dashboard 中密码总是不正确(也在 DevTools 中更改,但一些字符只是被删除了)
我尝试过的事情
export DATABASE_PASSWORD=$'5bb4&sL\!EB\%e'
export DATABASE_PASSWORD='5bb4&sL!EB%e'
回声总是好的,但 kubernetes 总是在剥离它。
部署skaffold deploy
编辑:
提示后我尝试以 base64 编码形式存储密码,但是我怀疑它仅适用于本地范围,因为 Kubernetes Dashboard 中的密码仍然相同,我怀疑我需要重新生成证书才能远程工作在 gke 集群上?
因此,环境变量用于本地,云 sql 代理中的凭据是被使用和误解的?顺便说一句,这些文件在哪里?
编辑2:
我刚刚发现确实 gke 集群在使用凭证 json 而不是导出的变量。配置 json 已经包含 base64 编码形式的密码,但是它是字符串的 base64 编码,仍然缺少特殊字符。看起来唯一的出路是生成没有特殊字符的新凭据,这看起来像一个错误,不是吗?