1、挂载应用配置文件配置集ConfigMap
当有许多应用如redis、mysql,希望将它的配置文件挂载出去,以便随时修改,可以用ConfigMap配置集
具体用法查看使用命令行操作里的 3、ConfigMap配置集实战
2、挂载应用配置文件的敏感信息Secret
Secret 对象类型用来保存敏感信息,例如使用yaml创建应用时从私有仓库拉去镜像时需要密码、OAuth 令牌和 SSH 密钥。 将这些信息放在 secret 中比放在 Pod 的定义或者 容器镜像 中来说更加安全和灵活。
具体用法查看 4、Secret配置实战
3、ConfigMap配置集实战
1、创建一个配置文件
如redis的配置文件,在其中添加相关配置内容,用于测试我们简单添加依据内容appendonly: yes
2、根据文件创建成配置集ConfigMap
配置集创建完成后,即可将源文件删除,因为配置文件已存储到了k8s的etcd中了
3、查询配置集
4、根据配置集名称查配置集详细信息
5、创建Pod应用同时挂载ConfigMap
redis-conf就是之前创建的配置集
apiVersion: v1
kind: Pod
metadata:
name: redis
spec:
containers:
- name: redis
image: redis
command:
- redis-server
- "/redis-master/redis.conf" #指的是redis容器内部的位置
ports:
- containerPort: 6379
volumeMounts:
- mountPath: /data
name: data
- mountPath: /redis-master
name: config
volumes:
- name: data
emptyDir: {}
- name: config
configMap:
name: redis-conf
items:
- key: redis.conf
path: 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、修改配置集
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配置
3、根据名称查看Secret详细信息
kubectl get secret yz-docker -oyaml
如下可看到数据被加密了
4、创建Pod应用同时使用Secret
kubectl apply -f secretdemo.yaml
,如下内容imagePullSecrets指定了Secret名称。防止直接写明文到文件里了。
apiVersion: v1
kind: Pod
metadata:
name: private-nginx
spec:
containers:
- name: private-nginx
image: yao/mynginx:v1.0
imagePullSecrets:
- name: yz-docker