hello云胜

技术与生活

0%

secret

创建存储tls的secret

1
2
export out="--dry-run=client -o yaml"
kubectl create secret tls secret的名字 -n 命名空间 --cert=k8s.test.crt(crt文件) --key=k8s.test.key(密钥文件) $out > cert.yml

创建ssl证书

1
2
3
4
openssl req -x509 -days 365 -out k8s.test.crt -keyout k8s.test.key \
-newkey rsa:2048 -nodes -sha256 \
-subj '/CN=k8s.test' -extensions EXT -config <( \
printf "[dn]\nCN=k8s.test\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:k8s.test\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")

它生成的是一个 X509 格式的证书,有效期 365 天,私钥是 RSA2048 位,摘要算法是 SHA256,签发的网站是“k8s.test”。

运行命令行后会生成两个文件,一个是证书“k8s.test.crt”,另一个是私钥“k8s.test.key”

创建普通的secret

1
kubectl create secret generic user --from-literal=name=root $out

这里使用–from-literal,会自动进行base64编码

如果我们自己添加数据,需要进行base64编码

1
2
echo -n "123456" | base64
MTIzNDU2

要注意这条命令里的 echo ,必须要加参数 -n 去掉字符串里隐含的换行符,否则 Base64 编码出来的字符串就是错误的。