🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Kubernetes配置管理 ## Secret Secret的主要作用就是加密数据,然后存在etcd里面,让Pod容器以挂载Volume方式进行访问 场景:用户名 和 密码进行加密 一般场景的是对某个字符串进行base64编码 进行加密 ```bash echo -n 'admin' | base64 ``` ![image-20201117212037668](https://img.kancloud.cn/2a/2b/2a2b1d0f3ad37dbb9c91c07b86be57e0_400x48.png) ### 变量形式挂载到Pod - 创建secret加密数据的yaml文件 secret.yaml ![image-20201117212124476](https://img.kancloud.cn/b9/a9/b9a9b026d5bcef16b1b45a8b76aed7b3_392x202.png) 然后使用下面命令创建一个pod ```bash kubectl create -f secret.yaml ``` 通过get命令查看 ```bash kubectl get pods ``` ![image-20201118084010980](https://img.kancloud.cn/85/f6/85f624e76e27e3a6a4c64d76056593b9_549x150.png) 然后我们通过下面的命令,进入到我们的容器内部 ```bash kubectl exec -it mypod bash ``` 然后我们就可以输出我们的值,这就是以变量的形式挂载到我们的容器中 ```bash # 输出用户 echo $SECRET_USERNAME # 输出密码 echo $SECRET_PASSWORD ``` ![image-20201118084137942](https://img.kancloud.cn/3b/78/3b78d03b51c26121c159bb8677793f70_375x81.png) 最后如果我们要删除这个Pod,就可以使用这个命令 ```bash kubectl delete -f secret-val.yaml ``` ### 数据卷形式挂载 首先我们创建一个 secret-val.yaml 文件 ![image-20201118084321590](https://img.kancloud.cn/56/4b/564b56a692b566567610b3447bf54a0b_507x401.png) 然后创建我们的 Pod ```bash # 根据配置创建容器 kubectl apply -f secret-val.yaml # 进入容器 kubectl exec -it mypod bash # 查看 ls /etc/foo ``` ![image-20201118084707478](https://img.kancloud.cn/a2/10/a2102de2ddcaa27186e6519ab1d86877_372x44.png) ## ConfigMap ConfigMap作用是存储不加密的数据到etcd中,让Pod以变量或数据卷Volume挂载到容器中 应用场景:配置文件 ### 创建配置文件 首先我们需要创建一个配置文件 `redis.properties` ```bash redis.port=127.0.0.1 redis.port=6379 redis.password=123456 ``` ### 创建ConfigMap 我们使用命令创建configmap ```bash kubectl create configmap redis-config --from-file=redis.properties ``` 然后查看详细信息 ```bash kubectl describe cm redis-config ``` ![image-20201118085503534](https://img.kancloud.cn/7c/74/7c7401cc054191117c859cfe1d7cc157_913x231.png) ### Volume数据卷形式挂载 首先我们需要创建一个 `cm.yaml` ![image-20201118085847424](https://img.kancloud.cn/f2/05/f20546d2ca24c5f2f70729e2acc8576b_926x439.png) 然后使用该yaml创建我们的pod ```bash # 创建 kubectl apply -f cm.yaml # 查看 kubectl get pods ``` ![image-20201118090634869](https://img.kancloud.cn/38/25/3825b7d671da27089e493cc7c81fc4a4_555x141.png) 最后我们通过命令就可以查看结果输出了 ```bash kubectl logs mypod ``` ![image-20201118090712780](https://img.kancloud.cn/fa/99/fa997a764ca57d81a9e63d6b8ead47b7_418x99.png) ### 以变量的形式挂载Pod 首先我们也有一个 myconfig.yaml文件,声明变量信息,然后以configmap创建 ![image-20201118090911260](https://img.kancloud.cn/51/f9/51f97d3d2d61371998b11f189929e64a_232x161.png) 然后我们就可以创建我们的配置文件 ```bash # 创建pod kubectl apply -f myconfig.yaml # 获取 kubectl get cm ``` ![image-20201118091042287](https://img.kancloud.cn/ae/af/aeaf4207affc9c088ead2a70cdfcfe56_307x76.png) 然后我们创建完该pod后,我们就需要在创建一个 config-var.yaml 来使用我们的配置信息 ![image-20201118091249520](https://img.kancloud.cn/7d/98/7d9895621ad71f17e871ebf47b6ad1cb_865x498.png) 最后我们查看输出 ```bash kubectl logs mypod ``` ![image-20201118091448252](https://img.kancloud.cn/74/7d/747d78839d1a7634c55d481689ee9da3_387x46.png)