• SuperMap 云原生常见问题解决办法-consul启动异常


    在iManager for K8S产品中,如果创建了云套件站点,会有三个consul的服务,consul在云套件中充当的角色是服务发现,服务注册,以及配置共享。如果consul服务失效,云套件的整体服务将不能正常运行。客户在使用云套件产品过程中,如果出现非正常重启K8S或者云套件服务,可能会导致consul不能正常启动。今天我们也以一个实际的例子来给大家讲解下如何解决这类问题。
    问题现象:云套件无法访问,查看k8s dashboard ui界面(如果安装的是我们提供的离线安装包的话,可以访问31234端口),找到云套件icloud-native-*命名空间,容器组中consul异常,一直在重启,时而正常时而重启,循环往复。
    步骤一,查看consul日志
    在这里插入图片描述
    报错为找不到consul的节点。一般consul异常的原因为nfs文件locked,导致consul无法正常启动,可以重启nfs解决,此方式能解决90%的consul异常问题。

    systemctl restart nfs
    
    • 1

    如果重启nfs依然无法解决问题,依然报选主错误,那就是consul集群重启后找不到之前的节点ip导致选主失败
    步骤二
    找到consul的挂载pvc目录,在容器组中找到consul-server-0,选择查看详细信息,查看pvc挂载
    在这里插入图片描述
    在这里插入图片描述
    这个路径就是nfs中的实际路径,在nfs服务器上,找到这个目录
    步骤三
    在consul-server-0的挂载目录创建peer.json文件。通过上一步找到consul-server-0的挂载目录后,可以在目录中找到一个peers.info文件,里面有peers.json的说明。
    在这里插入图片描述
    我们以说明中的第二种方式,在同级目录中创建一个peers.json文件。内容以peers.info的第二种方式为模板。
    address为consul的三个pod的ip,可以在pod详细页面查看到,分别填入三个consul的address
    pod页面可以看到该pod的容器IP
    id可以在三个consul-server-*的pvc下,node-id文件中,找到后分别填入
    在这里插入图片描述
    步骤四
    将peer.json填写好后保存,从consul-server-0开始,通过pod页面的命令行运行,执行

    consul leave
    
    • 1

    在这里插入图片描述
    执行后等容器自动重启,然后在consul-server-1,consul-server-2依次执行
    切记:一定要在consul-server-*的pod命令行中执行该命令重启,如果通过删除pod的方式重启会导致容器的IP再次改变而consul集群会继续找不到对应的节点ip
    依次执行consul leave命令待容器重启后,consul集群将恢复正常,云套件也会正常启动。
    该问题的参考资料可以查看consul的官方文档说明
    以上就是云套件中consul启动异常的解决方法,如果您按照文档操作还是没有解决问题,可以在文章下方给我们留言或者是通过4008900866联系我们的iManager产品支持工程协助您解决。

  • 相关阅读:
    信号发送与处理-上
    Java并发编程—synchronized
    【混合编程】C/C++调用Fortran的DLL
    AOT漫谈专题(第五篇): 如何劫持.NET AOT编译器 进行源码级调试
    codeforces:A. Writing Code【三维dp + 优化一维】
    通达信吊灯止损指标公式,根据波动幅度自动调整止盈止损
    使用js怎么设置视频背景
    HBase基本操作及命令示例
    Java23种设计模式之第三弹-工厂模式
    【SWAT水文模型】SWAT水文模型建立及应用第六期:参数敏感性分析
  • 原文地址:https://blog.csdn.net/supermapsupport/article/details/128019503