我想为我的kubernetes集群创建一个秘密。所以我写了以下dummy-secret.yaml
文件:
apiVersion: v1
kind: Secret
metadata:
name: dummy-secret
type: Opaque
data:
API_KEY: bWVnYV9zZWNyZXRfa2V5
API_SECRET: cmVhbGx5X3NlY3JldF92YWx1ZTE=
Run Code Online (Sandbox Code Playgroud)
运行时,kubectl create -f dummy-secret.yaml
我收到以下消息:
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|...
Run Code Online (Sandbox Code Playgroud)
不知道为什么会发生。
据我了解,我需要将所有值编码data
在yaml文件中的键下。所以我做了base64编码,但是kubernetes仍然不能像我期望的那样处理yaml秘密文件。
更新:
我使用以下命令对data
Mac上的值进行编码:
echo -n 'mega_secret_key' | openssl base64
Run Code Online (Sandbox Code Playgroud)
for*_*rat 29
这已经得到了回答,但为了将来参考,无需使用stringData
代替data
字段对字符串进行编码,如下所示:
#secrets.yaml
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
stringData:
API_KEY: "STRING_IN_CLEAR_TEXT"
API_SECRET: "STRING_IN_CLEAR_TEXT"
Run Code Online (Sandbox Code Playgroud)
Shu*_*rma 17
我从您的编码数据中获取了解码后的值“ mega_secret_key”和“ really_secret_value1”。似乎它们的编码方式不正确。因此,以正确的方式对数据进行编码:
$ echo "mega_secret_key" | base64
bWVnYV9zZWNyZXRfa2V5Cg==
$ echo "really_secret_value1" | base64
cmVhbGx5X3NlY3JldF92YWx1ZTEK
Run Code Online (Sandbox Code Playgroud)
然后检查它们是否正确编码:
$ echo "bWVnYV9zZWNyZXRfa2V5Cg==" | base64 -d
mega_secret_key
$ echo "cmVhbGx5X3NlY3JldF92YWx1ZTEK" | base64 -d
really_secret_value1
Run Code Online (Sandbox Code Playgroud)
这样就可以了。现在在您的中使用它们dummy-secret.yaml
:
apiVersion: v1
kind: Secret
metadata:
name: dummy-secret
type: Opaque
data:
API_KEY: bWVnYV9zZWNyZXRfa2V5Cg==
API_SECRET: cmVhbGx5X3NlY3JldF92YWx1ZTEK
Run Code Online (Sandbox Code Playgroud)
并运行$ kubectl create -f dummy-secret.yaml
。
过了一会儿,我想回到这个问题并留下一个对官方 kubernetes文档的引用的答案:
echo -n 'admin' | base64
YWRtaW4=
echo -n '1f2d1e2e67df' | base64
MWYyZDFlMmU2N2Rm
Run Code Online (Sandbox Code Playgroud)
特别注意-n
,因为它保证在解码您的密钥后不会包含“换行符”。
归档时间: |
|
查看次数: |
9002 次 |
最近记录: |