实战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.comzk1.do.com(Test环境)10.4.7.11
HDSS7-12.host.comzk2.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 831 20:05 data
drwxr-xr-x. 3 root root 23 831 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做一个标准资源能集中管理配置的
在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐