day4------k8s实战dubbo集群的日常维护以及configmap操作(5)
实战dubbo集群的日常维护生产中可能在停止多余的consumer的时候要让它优雅的停止,就是做玩一些事情后在停止模拟在开发中使用新的功能去gitee上更改源代码提交后会有一个commitd的id好你把它拷贝出来,等下要用16ef148d312d5e88bdbb5b9f23625a0bdcfa4b2f然后在去重新构建填写前8位就行这个会很快就好了这个时候可以去harbor应该有了一个新构建的镜像了
实战dubbo集群的日常维护
生产中可能在停止多余的consumer的时候要让它优雅的停止,就是做玩一些事情后在停止
模拟在开发中使用新的功能
去gitee上更改源代码
提交后会有一个commitd的id好你把它拷贝出来,等下要用
16ef148d312d5e88bdbb5b9f23625a0bdcfa4b2f
然后在去重新构建
填写前8位就行
这个会很快就好了
这个时候可以去harbor应该有了一个新构建的镜像了
然后去dashboard里面把镜像更新下
16ef148d_191201_1630
让它自己滚动更新就可以了
上面 步骤中我好像填错了一个单词,把consumer写成了sonsumer你在镜像中拉对应的就可以了。然后去刷新页面
如果你要是回滚也是很简单的在dashboard上执行把原来的代码放上去就行了
回顾之前的图,画的地方我们都应做了
但是ops还没有去做的呢
扩容,缩容,就是指接在dashboard上点点就行了,这里不在写
实战k8s集群毁灭性测试
说明:这个不做,想做了,参照下面步骤自己做
1、首先把dubbo的提供端和消费端,都整成两份,保证高可用性
滚动发布::就是先起来一份,然后在挑一个起来一个,在挑在起
蓝绿发布::就是比如你原来有2份,先起来两份,然后在把原来的2份驱逐
2、这个时候发现有一台物理机挂掉了
比如执行halt,,如图
halt ----指的是关闭系统 相当于shutdown
这个时候导致的结果就是首先,客户端执行的时候会有转圈,会短暂的出现gateway timeout
dashboard会出现503现象
3、发现有宿主机离线的情况
首先需要把离线的宿主机给删掉
kubectl delete node hdss7-21.host.com
删完后k8s会有治愈机制,客户端能刷新出来了,会出现一会时间的错
dashboard也会恢复了,这个
为什么要删掉呢》因为不删掉,k8s会认为是短暂不可达,导致客户端异常
4、另外还有做一件事情就是在11上把负载均衡去掉
不去掉的话,会出现一下能刷出来一下刷不出来
vi /etc/nginx/nginx.conf
vi /etc/nginx/conf.d/od.con.conf
重启启动下,或加载下
nginx -s reload
在去刷的时候就能正常刷出来了,
这个其实是可以写出来一个脚本,就是探测到有节点一次,就把这些事情给自动执行下
5、恢复操作
配置中心概述
·配置其实是独立于程序的可配变量,同一份程序在不同配置下会有不同的行为,
常见的配置有连接字符串,应用配置和业务配置等。
·配置有多种形态,下面是一些常见的:
· 程序内部hardcode,这种做法是反模式,一般我们不建议!
· 配置文件,比如Spring应用程序的配置一般放在application.properties文件中。
· 环境变量,配置可以预置在操作系统的环境变量里头,程序运行时读取。
· 启动参数,可以在程序启动时一次性提供参数,例如java程序启动时可以通过java -D方式配启动参数。
· 基于数据库,有经验的开发人员会把易变配置放在数据库中,这样可以在运
行期灵活调整配置。
环境变量和启动参数以及基于数据库是最新比较常用的方法,也是开发云原生比较常用的方法
·配置管理的现状:
配置散乱格式不标准(xml、ini、conf、yaml...)
主要采用本地静态配置,应用多副本集下配置修改麻烦
易引发生产事故(测试环境、生产环境配置混用)
配置缺乏安全审计和版本控制功能(config review)
·不同环境的应用,配置不同,造成多次打包,测试失效
·配置中心是什么?
· 顾名思义,就是集中管理应用程序配置的“中心”。
易发生生产事故
如果在你测试环境上的数据跑到了生产环境上了应该怎么办呢,需要把生产环境上的脏数据给清楚掉。。
应用多副本集下配置修改麻烦,这个可以用ansible去执行比较简单些了
常见配置中心的种类
·常见的配置中心有:
XDiamond:全局配置中心,存储应用的配置项,解决配置混乱分散的问题。名字来源于淘宝的开源项目diamond,前面加上一个字母X以示区别。
Qconf: QConf是一个分布式配置管理工具。用来替代传统的配置文件,使得
配置信息和程序代码分离,同时配置变化能够实时同步到客户端,而且保证用户高效读取配置,这使的工程师从琐碎的配置修改、代码提交、配置上线流程中解放出来,极大地简化了配置管理工作。
. Disconf:专注于各种「分布式系统配置管理」的「通用组件」和「通用平台」,
提供统一的「配置管理服务」
SpringCloudConfig: Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。
. K8S ConfigMap: K8S的一种标准资源,专门用来集中管理应用的配置。
. Apollo:携程框架部门开源的,分布式配置中心。
. K8S ConfigMap: K8S的一种标准资源,专门用来集中管理应用的配置。
. Apollo:携程框架部门开源的,分布式配置中心。
apollo 是基于springClould这个配置中心实现的,所以要交付springClould微服务
Configmap使用详解
1、改为了实验顺利,先把几个服务关掉
把app命名空间下的配置都scale为0
把infra里面的dabbo-monitor也先关掉
2、拆分环境
为什么要拆分呢。。因为要分测试环境和生产环境了
主机名 | 角色 | ip |
---|---|---|
HDSS7-11.host.com | zk1.do.com(Test环境) | 10.4.7.11 |
HDSS7-12.host.com | zk2.do.com(Prod环境) | 10.4.7.12 |
1首先把21上的zk给停止掉
注意一点哦。。如果你远来装的有zk但是重启了服务器,可能它自己不会自动起来,去检查下比较好
[root@hdss7-21 zookeeper]# bin/zkServer.sh stop
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
[root@hdss7-21 zookeeper]#
[root@hdss7-21 zookeeper]# ps aux |grep zoo
root 120923 0.0 0.0 112708 976 pts/1 S+ 11:49 0:00 grep --color=auto zoo
[root@hdss7-21 zookeeper]#
2然后到11和12上也把zk停止掉,另外把myid也删掉,让它不能成为集群了
[root@hdss7-12 ~]# cd /opt/zookeeper
[root@hdss7-12 zookeeper]# ps aux |grep zoo
root 6729 0.0 0.0 112708 976 pts/1 S+ 11:50 0:00 grep --color=auto zoo
root 6887 0.1 1.7 5643616 141508 ? Sl Sep03 4:43 /usr/java/jdk/bin/java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /opt/zookeeper/bin/../zookeeper-server/target/classes:/opt/zookeeper/bin/../build/classes:/opt/zookeeper/bin/../zookeeper-server/target/lib/*.jar:/opt/zookeeper/bin/../build/lib/*.jar:/opt/zookeeper/bin/../lib/slf4j-log4j12-1.7.25.jar:/opt/zookeeper/bin/../lib/slf4j-api-1.7.25.jar:/opt/zookeeper/bin/../lib/netty-3.10.6.Final.jar:/opt/zookeeper/bin/../lib/log4j-1.2.17.jar:/opt/zookeeper/bin/../lib/jline-0.9.94.jar:/opt/zookeeper/bin/../lib/audience-annotations-0.5.0.jar:/opt/zookeeper/bin/../zookeeper-3.4.14.jar:/opt/zookeeper/bin/../zookeeper-server/src/main/resources/lib/*.jar:/opt/zookeeper/bin/../conf::/usr/java/jdk/lib:/usr/java/jdk/lib/tools.jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /opt/zookeeper/bin/../conf/zoo.cfg
[root@hdss7-12 zookeeper]# bin/zkServer.sh stop
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
[root@hdss7-12 zookeeper]# ps aux |grep zoo
root 8707 0.0 0.0 112708 972 pts/1 S+ 11:51 0:00 grep --color=auto zoo
[root@hdss7-12 zookeeper]# cd /data/zookeeper/
[root@hdss7-12 zookeeper]# ll
total 8
drwxr-xr-x. 3 root root 4096 Sep 5 11:51 data
drwxr-xr-x. 3 root root 4096 Aug 31 20:06 logs
[root@hdss7-12 zookeeper]# cd data/
[root@hdss7-12 data]# ll
total 176
-rw-r--r--. 1 root root 2 Aug 31 20:00 myid
drwxr-xr-x. 2 root root 4096 Sep 5 09:39 version-2
-rw-r--r--. 1 root root 166849 Sep 5 11:47 zookeeper.out
[root@hdss7-12 data]# rm -rf ./*
[root@hdss7-12 data]# ll
total 0
[root@hdss7-12 data]# cd ../logs/
[root@hdss7-12 logs]# ll
total 4
drwxr-xr-x. 2 root root 4096 Sep 3 19:28 version-2
[root@hdss7-12 logs]# rm -rf ./*
[root@hdss7-12 logs]# ll
total 0
在11上可以自己把zk给杀掉
[root@hdss7-11 zookeeper]# pwd
/opt/zookeeper
[root@hdss7-11 zookeeper]# ps aux |grep zoo
root 1662 0.0 0.0 112724 988 pts/1 S+ 11:59 0:00 grep --color=auto zoo
root 26361 0.1 2.6 4571812 102356 ? Sl 9月03 3:20 /usr/java/jdk/bin/java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /opt/zookeeper/bin/../zookeeper-server/target/classes:/opt/zookeeper/bin/../build/classes:/opt/zookeeper/bin/../zookeeper-server/target/lib/*.jar:/opt/zookeeper/bin/../build/lib/*.jar:/opt/zookeeper/bin/../lib/slf4j-log4j12-1.7.25.jar:/opt/zookeeper/bin/../lib/slf4j-api-1.7.25.jar:/opt/zookeeper/bin/../lib/netty-3.10.6.Final.jar:/opt/zookeeper/bin/../lib/log4j-1.2.17.jar:/opt/zookeeper/bin/../lib/jline-0.9.94.jar:/opt/zookeeper/bin/../lib/audience-annotations-0.5.0.jar:/opt/zookeeper/bin/../zookeeper-3.4.14.jar:/opt/zookeeper/bin/../zookeeper-server/src/main/resources/lib/*.jar:/opt/zookeeper/bin/../conf::/usr/java/jdk/lib:/usr/java/jdk/lib/tools.jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /opt/zookeeper/bin/../conf/zoo.cfg
[root@hdss7-11 zookeeper]# kill -9 26361
[root@hdss7-11 zookeeper]# ps aux |grep zoo
root 1718 0.0 0.0 112724 988 pts/1 S+ 11:59 0:00 grep --color=auto zoo
[root@hdss7-11 zookeeper]# cd /data/zookeeper/
[root@hdss7-11 zookeeper]# ll
总用量 0
drwxr-xr-x. 3 root root 84 8月 31 20:05 data
drwxr-xr-x. 3 root root 23 8月 31 20:05 logs
[root@hdss7-11 zookeeper]# cd data/
[root@hdss7-11 data]# rm -rf ./*
[root@hdss7-11 data]# cd ../logs/
[root@hdss7-11 logs]# rm -rf ./*
[root@hdss7-11 logs]#
3去修改配置
11上,,删掉下面的三行不然它组成集群了
[root@hdss7-11 logs]# cd /opt/zookeeper/conf/
[root@hdss7-11 conf]# vi zoo.cfg
[root@hdss7-11 conf]# cat zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/logs
clientPort=2181
[root@hdss7-11 conf]#
12上
[root@hdss7-12 logs]# cd /opt/zookeeper/conf/
[root@hdss7-12 conf]# vi zoo.cfg
[root@hdss7-12 conf]# cat zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/logs
clientPort=2181
[root@hdss7-12 conf]#
4启动zookeeper
[root@hdss7-12 conf]# cd /opt/zookeeper
[root@hdss7-12 zookeeper]# bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@hdss7-12 zookeeper]# ps aux |grep zoo
root 45694 4.3 0.6 4839716 51748 pts/1 Sl 12:04 0:00 /usr/java/jdk/bin/java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /opt/zookeeper/bin/../zookeeper-server/target/classes:/opt/zookeeper/bin/../build/classes:/opt/zookeeper/bin/../zookeeper-server/target/lib/*.jar:/opt/zookeeper/bin/../build/lib/*.jar:/opt/zookeeper/bin/../lib/slf4j-log4j12-1.7.25.jar:/opt/zookeeper/bin/../lib/slf4j-api-1.7.25.jar:/opt/zookeeper/bin/../lib/netty-3.10.6.Final.jar:/opt/zookeeper/bin/../lib/log4j-1.2.17.jar:/opt/zookeeper/bin/../lib/jline-0.9.94.jar:/opt/zookeeper/bin/../lib/audience-annotations-0.5.0.jar:/opt/zookeeper/bin/../zookeeper-3.4.14.jar:/opt/zookeeper/bin/../zookeeper-server/src/main/resources/lib/*.jar:/opt/zookeeper/bin/../conf::/usr/java/jdk/lib:/usr/java/jdk/lib/tools.jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /opt/zookeeper/bin/../conf/zoo.cfg
root 46408 0.0 0.0 112708 976 pts/1 S+ 12:05 0:00 grep --color=auto zoo
[root@hdss7-12 zookeeper]#
查看下它自己是standalone模式
[root@hdss7-12 zookeeper]# bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Mode: standalone
[root@hdss7-12 zookeeper]#
[root@hdss7-11 conf]# cd /opt/zookeeper
[root@hdss7-11 zookeeper]# bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@hdss7-11 zookeeper]# ps aux |grep zoo
root 3606 5.7 1.2 3769852 47064 pts/1 Sl 12:06 0:00 /usr/java/jdk/bin/java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /opt/zookeeper/bin/../zookeeper-server/target/classes:/opt/zookeeper/bin/../build/classes:/opt/zookeeper/bin/../zookeeper-server/target/lib/*.jar:/opt/zookeeper/bin/../build/lib/*.jar:/opt/zookeeper/bin/../lib/slf4j-log4j12-1.7.25.jar:/opt/zookeeper/bin/../lib/slf4j-api-1.7.25.jar:/opt/zookeeper/bin/../lib/netty-3.10.6.Final.jar:/opt/zookeeper/bin/../lib/log4j-1.2.17.jar:/opt/zookeeper/bin/../lib/jline-0.9.94.jar:/opt/zookeeper/bin/../lib/audience-annotations-0.5.0.jar:/opt/zookeeper/bin/../zookeeper-3.4.14.jar:/opt/zookeeper/bin/../zookeeper-server/src/main/resources/lib/*.jar:/opt/zookeeper/bin/../conf::/usr/java/jdk/lib:/usr/java/jdk/lib/tools.jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /opt/zookeeper/bin/../conf/zoo.cfg
root 3689 0.0 0.0 112724 988 pts/1 S+ 12:06 0:00 grep --color=auto zoo
[root@hdss7-11 zookeeper]# bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Mode: standalone
[root@hdss7-11 zookeeper]#
3、准备资源配置清单(dubbo-monitor)
在运维主机200上
我们把dubbo所要用到的配置文件抽象成了k8s一个标准资源,这个资源叫configmap
[root@hdss7-200 dubbo-consumer]# cd /data/k8s-yaml/dubbo-monitor/
[root@hdss7-200 dubbo-monitor]# vi cm.yaml
[root@hdss7-200 dubbo-monitor]# vi dp2.yaml
[root@hdss7-200 dubbo-monitor]# ll
total 20
-rw-r--r-- 1 root root 621 Sep 5 12:12 cm.yaml
-rw-r--r-- 1 root root 1143 Sep 5 12:15 dp2.yaml
-rw-r--r-- 1 root root 932 Sep 5 12:13 dp.yaml
-rw-r--r-- 1 root root 265 Sep 3 19:23 ingress.yaml
-rw-r--r-- 1 root root 186 Sep 3 19:22 svc.yaml
[root@hdss7-200 dubbo-monitor]# cat cm.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: dubbo-monitor-cm
namespace: infra
data:
dubbo.properties: |
dubbo.container=log4j,spring,registry,jetty
dubbo.application.name=simple-monitor
dubbo.application.owner=OldboyEdu
dubbo.registry.address=zookeeper://zk1.od.com:2181
dubbo.protocol.port=20880
dubbo.jetty.port=8080
dubbo.jetty.directory=/dubbo-monitor-simple/monitor
dubbo.charts.directory=/dubbo-monitor-simple/charts
dubbo.statistics.directory=/dubbo-monitor-simple/statistics
dubbo.log4j.file=/dubbo-monitor-simple/logs/dubbo-monitor.log
dubbo.log4j.level=WARN
[root@hdss7-200 dubbo-monitor]# cat dp2.yaml
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: dubbo-monitor
namespace: infra
labels:
name: dubbo-monitor
spec:
replicas: 1
selector:
matchLabels:
name: dubbo-monitor
template:
metadata:
labels:
app: dubbo-monitor
name: dubbo-monitor
spec:
containers:
- name: dubbo-monitor
image: harbor.od.com/infra/dubbo-monitor:latest
ports:
- containerPort: 8080
protocol: TCP
- containerPort: 20880
protocol: TCP
imagePullPolicy: IfNotPresent
volumeMounts:
- name: configmap-volume
mountPath: /dubbo-monitor-simple/conf
volumes:
- name: configmap-volume
configMap:
name: dubbo-monitor-cm
imagePullSecrets:
- name: harbor
restartPolicy: Always
terminationGracePeriodSeconds: 30
securityContext:
runAsUser: 0
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
revisionHistoryLimit: 7
progressDeadlineSeconds: 600
[root@hdss7-200 dubbo-monitor]#
[root@hdss7-200 dubbo-monitor]# mv dp.yaml dp.yaml.yuan.bak
[root@hdss7-200 dubbo-monitor]# ll
total 20
-rw-r--r-- 1 root root 621 Sep 5 12:12 cm.yaml
-rw-r--r-- 1 root root 1143 Sep 5 12:15 dp2.yaml
-rw-r--r-- 1 root root 932 Sep 5 12:13 dp.yaml.yuan.bak
-rw-r--r-- 1 root root 265 Sep 3 19:23 ingress.yaml
-rw-r--r-- 1 root root 186 Sep 3 19:22 svc.yaml
[root@hdss7-200 dubbo-monitor]#
[root@hdss7-200 dubbo-monitor]# mv dp2.yaml dp-cm.yaml
这里有一个很好玩的工具就是vimdiff可以直接在线比对两个文件的有什么不同
4、应用资源配置清单
[root@hdss7-21 ~]# kubectl apply -f http://k8s-yaml.od.com/dubbo-monitor/cm.yaml
configmap/dubbo-monitor-cm created
[root@hdss7-21 ~]#
你可以到dashboard上看infra命令空间下配置文件应该给你列出来了,也就是配置文件的内容变成了k8s的一种标准资源叫configmap
[root@hdss7-21 ~]# kubectl apply -f http://k8s-yaml.od.com/dubbo-monitor/dp-cm.yaml
deployment.extensions/dubbo-monitor configured
[root@hdss7-21 ~]#
应用后可以去看下doshboard的日志看什么情况,可以看到日志,他已经不让你输出从定向了,还可以去执行下一些命令
bash-4.3# cd /dubbo-monitor-simple/
bash-4.3# ls
bin conf lib logs
bash-4.3# cd conf/
bash-4.3# ls -l
total 0
lrwxrwxrwx 1 root root 23 Sep 5 04:42 dubbo.properties -> ..data/dubbo.properties
bash-4.3# cat dubbo.properties
dubbo.container=log4j,spring,registry,jetty
dubbo.application.name=simple-monitor
dubbo.application.owner=OldboyEdu
dubbo.registry.address=zookeeper://zk1.od.com:2181
dubbo.protocol.port=20880
dubbo.jetty.port=8080
dubbo.jetty.directory=/dubbo-monitor-simple/monitor
dubbo.charts.directory=/dubbo-monitor-simple/charts
dubbo.statistics.directory=/dubbo-monitor-simple/statistics
dubbo.log4j.file=/dubbo-monitor-simple/logs/dubbo-monitor.log
dubbo.log4j.level=WARN
bash-4.3#
主要就是说明了configmap作为了一个卷挂载到了容器里面
备注;: 直接重启下pod或者执行下面的操作
若是发现容器无法起来的情况执行下面的操作就行了
[root@hdss7-200 dubbo-monitor]# mv dp.yaml.yuan.bak /tmp/
[root@hdss7-200 dubbo-monitor]# cd /tmp/
[root@hdss7-200 tmp]# mv dp.yaml.yuan.bak dp.yaml
[root@hdss7-200 tmp]# cd -
/data/k8s-yaml/dubbo-monitor
[root@hdss7-200 dubbo-monitor]# mv dp-cm.yaml dp.yaml
[root@hdss7-200 dubbo-monitor]#
重启应用资源配置清单或重启pod
[root@hdss7-21 ~]# kubectl apply -f http://k8s-yaml.od.com/dubbo-monitor/dp-cm.yaml
deployment.extensions/dubbo-monitor configured
[root@hdss7-21 ~]#
5、观察下damo-monitor在浏览器的变化
你会发现damo-monitor变成了simple-monitor了,在看status,,看它现在是连接的zk1.monitor现在要让它连接zk2应该怎么做呢
6、切换到zk2,很简单去dashborad上更改下配置就行了,然后重启下pod就行了
注意一下,若是pod起不来了,不要着急,在重启下pod试试,因为有可能资源不够导致的起不来了,也正常
这里有一个很有意思的事情,如果你的有一台主机挂掉了比如21,这个时候可能出现pod起来也是正常的,但是刷新demo-monitor的时候一会出来一会不出来,这个是可能是你21上的iptables的规则发生了变化
规则没有优化导致的
优化规则的方法,,还有所有的组件都是需要重启下启动下,并保证运行正常,网络规则也要正常如下图,还有一个很重要的就是etcd可能出现了问题了,你需要把规则从新搞定下
并且加上两条规则,加上之后才能实现重启
需要在主节点执行添加规则的命令
还有iptables规则是从上到下依次配置的匹配到了就不在向下执行了
在这里插入图片描述
之前的方法是是执行命令iptables-save > /etc/sysconfig/iptables 这样的情况会出现机器已重启没有保存住规则
需要用下面的方法让他保存住
7、了解下configmap的配置
看上图,首先我们声明了一个volumes,也就在先声明了一个卷,卷的名称是configmap-volume,,卷的类型是configmap其所对应的容器名称是dubbo-monitor-cm,,下面的那个420代表的是自读模式
看上图挂载的时候使用的是volumeMounts去挂载到容器containers里面,它的名字是configmap-volume 也就是上上面那个图的一个name
然后看下图,它挂载的路径就是/dubbo-monitor-simple/conf
然后你可以进入pod看下挂载情况
8、先将dubbo-demo-service给起来一个
然后进去pod可以看到一个jar包,因为现在是硬编码,编辑到这个jar包里面了,所以生产环境中configmap做一个标准资源能集中管理配置的
更多推荐
所有评论(0)