Kubernetes保密字典
背景信息
若您需要在 Kubernetes 集群中使用一些敏感的配置,比如密码、证书等信息时,建议使用密钥(secret),即保密字典。
密钥有多种类型,例如:
- Service Account:用来访问 Kubernetes API,由 Kubernetes 自动创建,并且会自动挂载到 Pod 的/run/secrets/kubernetes.io/serviceaccount目录中。
- Opaque:base64 编码格式的 Secret,用来存储密码、证书等敏感信息。
Opaque 类型的数据是一个 map 类型,要求value 是 base64 编码格式
您也可通过命令行手动创建密钥,请参见 kubernetes secret 了解更多信息。
命令
创建
1 | kubectl create secret |
查看证书
1 | [cicd-jd@ops-jenkins-master ssl]$ kubectl get secrets |
1 | [cicd-jd@ops-jenkins-master ssl]$ kubectl describe secrets veer-https |
删除
1 | kubectl delete secret $NAME |
示例
创建SSL证书
准备公钥、私钥文件
1
2[cicd-jd@ops-jenkins-master ssl]$ ls
veer.key veer.pem创建secret
1
kubectl create secret tls veer-https --cert=./veer.pem --key=./veer.key
验证
1
2
3[cicd-jd@ops-jenkins-master ssl]$ kubectl get secrets veer-https
NAME TYPE DATA AGE
veer-https kubernetes.io/tls 2 3h22m
创建仓库秘钥
1 | kubectl create secret docker-registry registry-secret --docker-server='harbor.zhaohongye.com' --docker-username='admin' --docker-password='Harbor12345' |