K8S 实战篇 - SpringBoot&Secret
K8S 实战篇 - SpringBoot&ConfigMap - 4在这篇文章中主要讲解了SpringBoot项目如何通过ConfigMap加载配置的。这一章主要讲解SpringBoot项目中关于敏感信息的配置,如:数据库密码等
1、Secret是什么?
Secret 是一种包含少量敏感信息例如密码、令牌或密钥的对象;Secret 类似于 ConfigMap 但专门用于保存机密数据;每个 Secret 的尺寸最多为 1MiB。
1.1、Secret提供三种可用命令来进行加密配置:docker-registry、generic、tls
1.1.1、docker-registry 使用示例:
kubectl create secret docker-registry docker-secret --docker-server=192.168.2.153 --docker-username=admin --docker-password=123456 --docker-email=xx@xx.com -n test
以上是操作示例,主要用于docker注册信息的配置。
1.1.2、generic使用示例:
kubectl create secret generic docker-demo-mysqluser --from-file=path/config
kubectl create secret generic docker-demo-mysqluser --from-file=application.yaml
kubectl create secret generic docker-demo-mysqluser --from-literal=username=root --from-literal=pasword=123456
以上是操作示例。主要用于通用加密信息的配置,通用型配置可以使用,本地文件、目录及key-value形式创建Secret。
1.1.3、tls使用示例:
kubectl create secret tls tls-secret --cert=path/to/tls.cert --key=path/to/tls.key
以上是操作示例,主要用于tls加密信息的配置。
1.2、Secret的类型
secret 有三种类型,如下:
- Opaque:它是一个比较灵活通用的类型,允许用户自定义里面的 任意数据。使用base64 编码格式,用来存储密码、密钥等;但数据也可以通过base64 –decode解码得到原始数据,所有加密性很弱
- kubernetes.io/dockerconfigjson:它是用来存储 docker 仓库的一些认证信息,例如 docker login 存储的一些信息。
- kubernetes.io/service-account-token:用于被serviceaccount引用,serviceaccout 创建时Kubernetes会默认创建对应的secret。Pod如果使用了serviceaccount,对应的secret会自动挂载到Pod目录 /run/secrets/kubernetes.io/ serviceaccount中。
1.3、使用场景
- 镜像仓库是私有的,每次拉取是需要认证的。
创建方式一:
kubectl create secret docker-registry <name> --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
创建方式二:
kubectl create secret

本文介绍Kubernetes中Secret的使用方法,包括创建不同类型的Secret、在SpringBoot项目中注入数据库账号密码,以及如何通过环境变量或Volume使用Secret。
最低0.47元/天 解锁文章
1203

被折叠的 条评论
为什么被折叠?



