> 文章列表 > 轻松掌握K8S使用kubectl操作配置文件挂载ConfigMap和密钥Secret知识点05

轻松掌握K8S使用kubectl操作配置文件挂载ConfigMap和密钥Secret知识点05

轻松掌握K8S使用kubectl操作配置文件挂载ConfigMap和密钥Secret知识点05

1、挂载应用配置文件配置集ConfigMap

当有许多应用如redis、mysql,希望将它的配置文件挂载出去,以便随时修改,可以用ConfigMap配置集

具体用法查看使用命令行操作里的 3、ConfigMap配置集实战

2、挂载应用配置文件的敏感信息Secret

Secret 对象类型用来保存敏感信息,例如使用yaml创建应用时从私有仓库拉去镜像时需要密码、OAuth 令牌和 SSH 密钥。 将这些信息放在 secret 中比放在 Pod 的定义或者 容器镜像 中来说更加安全和灵活。

具体用法查看 4、Secret配置实战

3、ConfigMap配置集实战

1、创建一个配置文件

如redis的配置文件,在其中添加相关配置内容,用于测试我们简单添加依据内容appendonly: yes

轻松掌握K8S使用kubectl操作配置文件挂载ConfigMap和密钥Secret知识点05

2、根据文件创建成配置集ConfigMap

轻松掌握K8S使用kubectl操作配置文件挂载ConfigMap和密钥Secret知识点05

配置集创建完成后,即可将源文件删除,因为配置文件已存储到了k8s的etcd中了
轻松掌握K8S使用kubectl操作配置文件挂载ConfigMap和密钥Secret知识点05

3、查询配置集

轻松掌握K8S使用kubectl操作配置文件挂载ConfigMap和密钥Secret知识点05

4、根据配置集名称查配置集详细信息

轻松掌握K8S使用kubectl操作配置文件挂载ConfigMap和密钥Secret知识点05

5、创建Pod应用同时挂载ConfigMap

redis-conf就是之前创建的配置集

apiVersion: v1
kind: Pod
metadata:name: redis
spec:containers:- name: redisimage: rediscommand:- redis-server- "/redis-master/redis.conf"  #指的是redis容器内部的位置ports:- containerPort: 6379volumeMounts:- mountPath: /dataname: data- mountPath: /redis-mastername: configvolumes:- name: dataemptyDir: {}- name: configconfigMap:name: redis-confitems:- key: redis.confpath: redis.conf

执行命令 kubectl apply -f redis.yaml

“/redis-master/redis.conf” 指的是redis容器内部的位置,与创建好的配置集redis-conf对应

查询Pod状态 kubectl get pod,创建成功即可。

6、测试

可以到容器里修改/redis-master/redis.conf内容,也可以到直接修改配置集,会自动同步到容器里。

注意:对于应用本身的功能,如redis的一些应用,本身不支持配置的热更新,则需要重启才能使配置生效到应用本身中

7、修改配置集

轻松掌握K8S使用kubectl操作配置文件挂载ConfigMap和密钥Secret知识点05

4、Secret配置实战

当从私有仓库拉去镜像时,需要账户秘密,这时用Secret可以防止泄漏

1、创建Secret

命令格式

kubectl create secret docker-registry 可以自定义名称 \\--docker-server=<你的镜像仓库服务器> \\--docker-username=<你的用户名> \\--docker-password=<你的密码> \\--docker-email=<你的邮箱地址>
如:  kubectl create secret docker-registry yz-docker \\
--docker-username=111 \\
--docker-password=222 \\
--docker-email=22233@qq.com
2、查看Secret配置

轻松掌握K8S使用kubectl操作配置文件挂载ConfigMap和密钥Secret知识点05

3、根据名称查看Secret详细信息

kubectl get secret yz-docker -oyaml 如下可看到数据被加密了

轻松掌握K8S使用kubectl操作配置文件挂载ConfigMap和密钥Secret知识点05

4、创建Pod应用同时使用Secret

kubectl apply -f secretdemo.yaml,如下内容imagePullSecrets指定了Secret名称。防止直接写明文到文件里了。

apiVersion: v1
kind: Pod
metadata:name: private-nginx
spec:containers:- name: private-nginximage: yao/mynginx:v1.0imagePullSecrets:- name: yz-docker