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

有些客户在使用iManager for K8S 云套件的产品的时候,偶尔会遇到机器异常重启的情况,比如说服务器断电,重启后可能会出现云套件启动异常的情况,比如说keycloak启动不了,一直抛出异常导致服务无法正常使用。本篇文章就结合实际案例来给大家详解如何处理这种情况。
问题现象:iManager能够正常登录访问,但是站点中的云套件无法正常访问,查看容器组发现keycloak一直在抛错无法正常启动。排错步骤如下:
步骤一
如果有k8s dashboard ui界面的客户可以通过ui界面进行排查,如果没有就可以通过命令来进行操作

//查看icloud-native-4命名空间下所有pods的状态,这里的“4”要根据实际的id值来替换,后续内容涉及到此值都要根据实际的值进行替换
kubectl get pods -n icloud-native-4  -o wide 
//正常的pod状态为running,运行数/副本数为相同的则状态正常,如果是0/1或者1/2这种就是不正常的

在本案例中输出结果为keycloak容器组异常,状态为0/1
步骤二
尝试恢复容器状态

//方法一,直接删除异常pod,pod会自动重建
kubectl delete pod keycloak -n icloud-native-4
//方法二,伸缩异常pod的副本数
kubectl scale sts keycloak --replicas=0 -n icloud-native-4
//待状态变为0/0后伸缩为1
kubectl scale sts keycloak --replicas=1 -n icloud-native-4

如果两种方法都不管用,keycloak状态依然为0/1,那么就应该查看日志以辅助解决

kubectl logs keycloak -n icloud-native-4

在这里插入图片描述
从日志中能看出keycloak在操作数据库的时候报错数据库被锁(Lock owned during cleanup),keycloak连接的数据为keycloak-postgresql,尝试重启keycloak-postgresql

//重启keycloak-postgresql
kubectl delete pod keycloak-postgresql -n icloud-native-4

重启后可能还是一样的报错,继续下一步
步骤三
清空keycloak-postgresql挂载,重启keycloak-postgresql

  1. 找到keycloak-postgresql的实际挂载目录
//查询命名空间下的pvc 找到kc-pg的pv,输出keycloak-postgresql的pvc名称
kubectl get pvc -n icloud-native-4|grep keycloak-postgresql
//使用keycloak-postgresql的pvc名称查看实际目录
kubectl describe pv pvc-92266626-5aac-4899-9a54-a90d777bc84b
  1. 找到keycloak-postgresql的挂载目录后,将目录里的内容备份,将keycloak-postgresql伸缩为0,可以在UI界面【部署】找到keycloak-postgresql,设置伸缩0,也可以使用命令
kubectl scale deployment keycloak-postgresql --replicas=0 -n icloud-native-4
  1. 清空keycloak-postgresql的挂载目录,伸缩为1
kubectl scale deployment keycloak-postgresql --replicas=1 -n icloud-native-4
  1. 清空keycloak-postgresql的挂载目录会导致云套件的用户,角色,服务实例授权被清空,所以后续需要重新设置新增的用户,角色,重新对服务实例进行授权。
    操作完以上步骤后,待keycloak-postgresql,keycloak启动,状态恢复正常,pods列表显示iserver-gateway和iserver-servicelist无法正常启动。以上就是该案例的解决步骤,如果按照这些步骤还没有正常恢复的话,可以在文章下方给我们留言也可以拨打4008900866联系我们的iManager支持人员协助解决。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值