无法在 Kubernetes 中创建 Secret:输入时存在非法的 base64 数据 [英] Can't create Secret in Kubernetes: illegal base64 data at input
问题描述
我想为我的 kubernetes 集群创建一个秘密.所以我编写了以下 dummy-secret.yaml
文件:
I want to create a secret for my kubernetes cluster. So I composed following dummy-secret.yaml
file:
apiVersion: v1
kind: Secret
metadata:
name: dummy-secret
type: Opaque
data:
API_KEY: bWVnYV9zZWNyZXRfa2V5
API_SECRET: cmVhbGx5X3NlY3JldF92YWx1ZTE=
当我运行 kubectl create -f dummy-secret.yaml
时,我收到以下消息:
When I run kubectl create -f dummy-secret.yaml
I receive back following message:
Error from server (BadRequest): error when creating "dummy-secret.yaml": Secret in version "v1" cannot be handled as a Secret: v1.Secret: Data: decode base64: illegal base64 data at input byte 8, error found in #10 byte of ...|Q89_Hj1Aq","API_SECR|..., bigger context ...|sion":"v1","data":{"API_KEY":"af76fsdK_cQ89_Hj1Aq","API_SECRET":"bsdfmkwegwegwe"},"kind":"Secret","m|...
不知道为什么会这样.
据我所知,我需要对 yaml 文件中 data
键下的所有值进行编码.所以我做了 base64 编码,但是 kubernetes 仍然没有像我预期的那样处理 yaml 秘密文件.
As I understood, I need to encode all values under the data
key in the yaml file. So I did base64 encoding, but kubernetes still doesn't handle the yaml secret file as I expect.
更新:
我使用这个命令在我的 mac 上对 data
值进行编码:
I used this command to encode data
values on my mac:
echo -n 'mega_secret_key' | openssl base64
推荐答案
过了一会我想回到这个问题,留下一个参考 kubernetes 官方的答案 docs:
After a while I want to return back to this question and leave an answer with a reference to official kubernetes docs:
echo -n 'admin' | base64
YWRtaW4=
echo -n '1f2d1e2e67df' | base64
MWYyZDFlMmU2N2Rm
特别注意-n
,因为它保证你的密钥在解码后不会包含'换行符'.
Pay extra attention to -n
, because it guaranties that after decoding your secret key will not contain 'new line symbol'.
这篇关于无法在 Kubernetes 中创建 Secret:输入时存在非法的 base64 数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!