Kubernetes配置管理
一、Secret
- 加密数据,存储在 etcd 中,让 Pod 容器以挂载 Volume 方式进行访问
- 场景: 用户名和密码进行加密
- 一般场景的是对某个字符串进行 base64 编码 进行加密
echo -n 'admin' | base64
变量的形式挂载到 Pod
- 创建 Secret 加密数据的 yaml 文件 secret.yaml
- 使用下面命令创建一个 Pod
kubectl create -f secret.yaml
- 使用 get 命令查看
kubectl get pods
-
kubectl get secret
-
使用下面的命令,可以进入容器的内部
kubectl exec -it mypod bash
- 然后我们就可以输出我们的值,这就是以变量的形式挂载到我们的容器中
# 输出用户
echo $SECRET_USERNAME
# 输出密码
echo $SECRET_PASSWORD
- 最后如果我们要删除这个Pod ,就可以使用这个命令
kubectl delete -f secret-val.yaml
数据卷形式挂载
- 首先我们创建一个 secret-val.yaml 文件
- 然后创建Pod
# 根据配置创建容器
kubectl apply -f secret-val.yaml
# 进入容器
kubectl exec -it mypod bash
# 查看
ls /etc/foo
二、ConfigMap (cm)
ConfigMap 作用:
- 存储不加密的数据到 etcd 中
- 让 pod 以变量或者数据卷 Volume 挂载到容器中
应用场景: 配置文件
创建配置文件
创建一个配置文件,redis.properties
redis.port=127.0.0.1
redis.port=6379
redis.password=rjt123666
创建 ConfigMap
使用命令创建 configmap
kubectl create configmap redis-config --from-file=redis.properties
- 查看详细信息:
kubectl describe cm redis-config
Volume 数据卷形式挂载
- 创建一个cm.yaml
- 然后使用 cm,yaml 创建 pod
# 创建
kubectl apply -f cm.yaml
# 查看
kubectl get pods
通过命令查看输出结果
kubectl logs mypod
以变量的形式挂载
- 创建 myconfig.yaml 文件,声明变量信息,然后用它创建 configmap
然后可以创建我们的配置文件
# 创建Pod
kubectl apply -f myconfig.yaml
# 获取
kubectl get cm
然后我们创建完该pod后,我们就需要在创建一个 config-var.yaml 来使用我们的配置信息:
最后我们查看输出
kubectl logs mypod