【问题标题】:Problem with k8s reading keys "ValueError: Could not deserialize key data."k8s 读取键的问题“ValueError:无法反序列化键数据。”
【发布时间】: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


【解决方案1】:

您是否尝试将\n 替换为\\n

要尝试的另一件事是删除\ns 并在多行上插入真正的换行符。只要字符串被引用它应该没问题。要尝试的另一件事是删除尾随的换行符,因为私钥正则表达式在这个上并不总是一致的。

【讨论】:

    猜你喜欢
    • 2019-06-16
    • 1970-01-01
    • 2018-09-29
    • 2019-04-19
    • 2019-11-27
    • 1970-01-01
    • 2015-09-11
    • 2023-02-18
    • 2020-05-24
    相关资源
    最近更新 更多