【发布时间】:2021-02-17 23:57:15
【问题描述】:
我在 GKE 私有集群上部署了应用程序,并且我有后端服务,但问题是后端服务无法读取 GOOGLE_ACCOUNT_PRIVATE_KEY,我收到以下错误:
line 1526, in _handle_key_loading_error
raise ValueError("Could not deserialize key data.")
ValueError: Could not deserialize key data.
这是找到此环境的后端部署的一部分:
env:
- name: GOOGLE_ACCOUNT_PRIVATE_KEY
valueFrom:
configMapKeyRef:
name: gapk
key: GOOGLE_ACCOUNT_PRIVATE_KEY
我还有其他成功的环境,我没有任何错误
这就是我保留 GOOGLE_ACCOUNT_PRIVATE_KEY 环境的方式:
apiVersion: v1
kind: ConfigMap
metadata:
name: gapk
data:
GOOGLE_ACCOUNT_PRIVATE_KEY: '-----BEGIN PRIVATE KEY-----\private key\n-----END PRIVATE KEY-----\n'
使用" " 而不是' ' 被解释为\n 就像新行但是当我将密钥放入' ' 时出现序列化错误,在这两种情况下我都弄错了:(
我在解码时是否犯了一些错误,我也输入了密钥的原始值,没有用 base64 编码,仍然得到错误 ValueError: Could not deserialize key data.
【问题讨论】:
-
你试过用
\\n替换\n吗? -
@RobEvans 我得到了以下
error couldn't serialize -
要尝试的另一件事是删除
\ns 并在多行上插入真正的换行符。只要字符串被引用它应该没问题。要尝试的另一件事是删除尾随的换行符,因为私钥正则表达式在这个上并不总是一致的。 -
@RobEvans 作为已解决的问题,请发布此解决方案作为答案,以提高社区的知名度。
-
完成。很高兴它奏效了。最近遇到了类似的问题XD
标签: kubernetes yaml google-kubernetes-engine