1.在生成环境中,相同集群的应用配置是一样的,如果要修改其中一个配置,就需要修改所有节点的配置,.
K8S中通过ConfigMap可以统一下发变量和配置文件.
以tomcat为例,先在pod中安装tomcat:
[root@centos-7c556897c8-pxj9b /]# yum install tomcat
安装完成之后配置文件在:
[root@centos-7c556897c8-pxj9b tomcat]# pwd
/etc/tomcat
[root@centos-7c556897c8-pxj9b tomcat]# ll
total 216
drwxrwxr-x 3 root tomcat 23 Jan 27 09:15 Catalina
-rw-r--r-- 1 root tomcat 13443 Aug 7 2017 catalina.policy
-rw-r--r-- 1 root tomcat 6496 Aug 7 2017 catalina.properties
drwxr-xr-x 2 root tomcat 20 Jan 27 09:15 conf.d
-rw-r--r-- 1 root tomcat 1394 Aug 7 2017 context.xml
-rw-r--r-- 1 root tomcat 547 Aug 7 2017 log4j.properties
-rw-r--r-- 1 root tomcat 3288 Aug 7 2017 logging.properties
-rw-r--r-- 1 root tomcat 6613 Aug 7 2017 server.xml
-rw-r----- 1 root tomcat 2418 Aug 7 2017 tomcat-users.xml
-rw-r--r-- 1 root tomcat 1651 Aug 7 2017 tomcat.conf
-rw-r--r-- 1 root tomcat 167655 Aug 7 2017 web.xml
下面我们对log4j.properties和server.xml进行统一配置.
先将pod保存成镜像.
1.找到pod所在的节点:
[root@node-1 ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
centos-7c556897c8-pxj9b 1/1 Running 0 4d23h 192.168.1.43 node-2 <none> <none>
2.进入节点进行镜像保存
[root@node-2 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cfe0858884de 22872cc86f9c "/bin/bash -c -- 'wh鈥 5 days ago Up 5 days k8s_centos_centos-7c556897c8-pxj9b_default_1db8f14a-3900-4826-beab-10b1f170c240_0
a7eaf04cdd29 registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 5 days ago Up 5 days k8s_POD_centos-7c556897c8-pxj9b_default_1db8f14a-3900-4826-beab-10b1f170c240_0
1f21ee9bada9 ff281650a721 "/opt/bin/flanneld -鈥 5 days ago Up 5 days k8s_kube-flannel_kube-flannel-ds-amd64-ngv5r_kube-system_0af8bd3f-2ede-4d7e-973f-babfb621d32d_7
896928f1e17d c21b0c7400f9 "/usr/local/bin/kube鈥 5 days ago Up 5 days k8s_kube-proxy_kube-proxy-mt2xz_kube-system_7298b76b-ecfb-459f-adc0-8d8e0647d0ec_6
0ecb8fdd8d05 registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 5 days ago Up 5 days k8s_POD_kube-flannel-ds-amd64-ngv5r_kube-system_0af8bd3f-2ede-4d7e-973f-babfb621d32d_7
665a883cbf77 registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 5 days ago Up 5 days k8s_POD_kube-proxy-mt2xz_kube-system_7298b76b-ecfb-459f-adc0-8d8e0647d0ec_7
[root@node-2 ~]# docker commit --author "dingyz" --
--author --change --help --message --pause=false
[root@node-2 ~]# docker commit --author "dingyz" --message "centos7.4-tomcat" cfe0858884de centos:7.4-tomcat
sha256:4a8deb9c9d407ae7f8589a14d468a8f856e098ba80f1487d49b5daa645cb5280
[root@node-2 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7.4-tomcat 4a8deb9c9d40 11 seconds ago 434MB
centos centos7.4.1708.net-tools 22872cc86f9c 5 days ago 236MB
registry.cn-hangzhou.aliyuncs.com/dingyz/centos 7.4.net-tools 22872cc86f9c 5 days ago 236MB
centos latest 470671670cac 9 days ago 237MB
nginx latest c7460dfcab50 2 weeks ago 126MB
mysql 5.7 db39680b63ac 4 weeks ago 437MB
mysql latest ed1ffcb5eff3 4 weeks ago 456MB
registry.aliyuncs.com/google_containers/kube-proxy v1.16.0 c21b0c7400f9 4 months ago 86.1MB
registry.aliyuncs.com/google_containers/coredns 1.6.2 bf261d157914 5 months ago 44.1MB
centos centos7.4.1708 9f266d35e02c 10 months ago 197MB
registry.cn-hangzhou.aliyuncs.com/dingyz/centos 7.4.base 9f266d35e02c 10 months ago 197MB
registry.cn-hangzhou.aliyuncs.com/userdefine/centos 7.4.base 9f266d35e02c 10 months ago 197MB
quay-mirror.qiniu.com/coreos/flannel v0.11.0-amd64 ff281650a721 12 months ago 52.6MB
registry.aliyuncs.com/google_containers/pause 3.1 da86e6ba6ca1 2 years ago 742kB
kubeguide/tomcat-app v1 a29e200a18e9 3 years ago 358MB
nginx 1.7.9 84581e99d807 5 years ago 91.7MB
[root@node-2 ~]#
可以将镜像导出到其他节点,获取上传到云仓库,让其他节点也可以进行部署.
[root@node-2 ~]# docker save -o ./centos7.4-tomcat.tar centos:7.4-tomcat
[root@node-2 ~]#
[root@node-2 ~]# ls
anaconda-ks.cfg centos7.4-tomcat.tar Desktop Documents Downloads initial-setup-ks.cfg logstash-7.4.2.tar.gz metricbeat-7.4.2-linux-x86_64.tar.gz Music Pictures Public Templates Videos
[root@node-2 ~]# scp centos7.4-tomcat.tar root@10.46.235.205:/root
[root@node-3 ~]# ls
anaconda-ks.cfg centos7.4-tomcat.tar Desktop Dockerfile