ConfigMap:
概念:是在POD中映射(文件/目录)的一种方式,允许你将配置文件和镜像分离使得容器化程序具有可移植性。
作用:在日常工作中经常修改各种配置文件的参数,数据库地址,用户密码等,这些在容器内非常麻烦,POD在重启或者迁移的时候又恢复到初始的状态,使用configmap可以解决这样问题。
定义 ConfigMap
–获取 httpd.conf ,并作出相应的修改
–创建 configmap
kubectl create configmap 名称 –from-file=文件路径
例如:kubectl create configmap my-httpd –from-file=httpd.conf
–查看configmap
kubectl get configmap my-httpd(名称)
使用Configmap
创建http应用中使用configmap映射配置文件
–configmap映射文件到文件或者目录
–如果目标目录存在就覆盖,不存在就创建出来
kubectl create configmap my-config –from-file=目录下所有文件/
案例:
[root@master ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-6fd9bb68bd-5sn22 1/1 Running 1 9h
[root@master ~]# kubectl cp nginx-6fd9bb68bd-5sn22:/usr/local/nginx/conf/nginx.cong ./ //拷贝容器里面的配置文件到当前路径
[root@master ~]# kubectl create configmap nginx-conf –from-file=nginx.conf //创建
[root@master ~]# kubectl get configmap //查看configmap
NAME DATA AGEvim
nginx-conf 1 11s
[root@master ~]# kubectl get configmap nginx-conf -o yaml //查看详细信息
[root@master ~]# kubectl edit configmap nginx-conf //修改详细信息
[root@master ~]#
—
apiVersion: extensions/v1beta1 #当前格式的版本
kind: Deployment #当前创建资源的类型, 当前类型是Deployment
metadata: #当前资源的元数据
name: nginx #当前资源的名字 是元数据必须的项
spec: #是当前Deployment的规格说明
replicas: 3 #指当前创建的副本数量 默认不填 默认值就为‘1’
template: #定义pod的模板
metadata: #当前pod的元数据
labels: #至少顶一个labels标签,可任意创建一个 key:value
app: nginx #标签名
spec: #当前pod的规格说明
containers: #容器
– name: nginx #是容器的名字容器名字是必须填写的
image: repo1:5000/myos:nginx #镜像的地址
stdin: true #交互式输入相当于 -I参数
tty: true #打开终端相当于 -t参数
volumeMounts:
– mounthPath: /usr/loacl/nginx/conf/ngin.conf #映射目录或者完全路径
name: nginx-config #引用的configmap的名称
subPath: nginx.conf #映射的文件名
volumes:
– name: nginx-config #引用的configmap的名称
configMap:
name: nginx-conf
暂无评论