博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
kubernetes redis pod CrashLoopBackOff修复心得
阅读量:5977 次
发布时间:2019-06-20

本文共 2556 字,大约阅读时间需要 8 分钟。

前言

实验环境的kubernetes服务器物理机突然断电,重启后helm 部署的harbor出现了启动故障,首先查看harbor 相关容器运行状态:

kubernetes redis pod CrashLoopBackOff修复心得

解决方法

前面两个CrashLoopBackOff的容器,可以的使用命令删除容器,就可以解决,关键的是redis 容器,删除是解决不了的。

kubernetes redis pod CrashLoopBackOff修复心得
使用命令查看容器的日志。

[root@master ~]# kubectl logs hub-redis-master-0 Bad file format reading the append only file: make a backup of your AOF file, then use ./redis-check-aof --fix 

简单理解:文件格式损坏,做个备份,使用命令修复。

关键问题是pod启动不起来,不能直接进去修复,所以关键问题还是让redis的容器启动起来,想让pod起来就必须不让容器加载之前的appendonly.aof文件,找到appendonly.aof重命名,让redis容器重新生成appendonly.aof。

查找appendonly.aof

接着查看容器的描述:

# kubectl describe po hub-redis-master-0

kubernetes redis pod CrashLoopBackOff修复心得

可以获取到需要的信息:

/bitnami/redis/data   #aof在容器上的路径Volumes:   #redis pod的pvc信息  redis-data:    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)    ClaimName:  redis-data-hub-redis-master-0

确认redis 容器使用的 pv,获取pv的创建信息:

[root@master ~]# kubectl get pv | grep redispv006      100Gi      RWO            Recycle          Bound     default/redis-data-hub-redis-master-0 [root@master ~]# kubectl describe pv pv006Name:            pv006Labels:          
Annotations: kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"v1","kind":"PersistentVolume","metadata":{"annotations":{},"name":"pv006","namespace":""},"spec":{"accessModes":["ReadWriteOnce"],"capac... pv.kubernetes.io/bound-by-controller=yesFinalizers: [kubernetes.io/pv-protection]StorageClass: Status: BoundClaim: default/redis-data-hub-redis-master-0Reclaim Policy: RecycleAccess Modes: RWOCapacity: 100GiNode Affinity:
Message: Source: Type: NFS (an NFS mount that lasts the lifetime of a pod) Server: 192.168.2.4 Path: /volume1/harbor/nfs6 ReadOnly: falseEvents:

这里可以找到nfs对应的路径,直接进入nfs服务器对应路径下重命名appendonly.aof,redis的pod就立即启动状态为running了,接下来就是修复appendonly.aof。

kubernetes redis pod CrashLoopBackOff修复心得

修复appendonly.aof

进入到容器:

[root@master ~]# kubectl exec -it hub-redis-master-0 bashI have no name!@hub-redis-master-0:/$ ls /bitnami/redis/data/appendonly.aof      appendonly.bak.aof  dump.rdb

修复

redis-check-aof --fix /bitnami/redis/data/appendonly.bak.aof0x           10f69: Expected prefix '*', got: 'AOF analyzed: size=10316900, ok_up_to=69481, diff=10247419This will shrink the AOF from 10316900 bytes, with 10247419 bytes, to 69481 bytesContinue? [y/N]: ySuccessfully truncated AOF

现在就可以把正在使用的appendonly.aof 重命名,把修复后的aof命名为appendonly.aof ,删除容器,kubernetes自动重新创建redis容器,如果其它容器还是CrashLoopBackOff,这可能是redis没有启动导致的,redis修复好后,删除CrashLoopBackOff的容器,kubernetes自动重新建立就可以了。

转载于:https://blog.51cto.com/m51cto/2344375

你可能感兴趣的文章
四、物理优化(2)索引视图
查看>>
【沟通之道】头脑风暴-女人的心思你别猜
查看>>
钱趣多风控新举措:源头选择与物理隔离
查看>>
puppet最新源码包安装学习笔记
查看>>
烂泥:kickstart无人值守安装CentOS6.5
查看>>
Windows Phone 8 开发资源汇总
查看>>
互联网趋势关键词:交流,为价值付费,资源整合
查看>>
阿里钉钉,马云旗下的又一个千亿美金产品?
查看>>
Oracle 11gR2学习之三(创建用户及表空间、修改字符集和Oracle开机启动)
查看>>
熟练掌握Word2003中的突出显示功能
查看>>
编码过程中的问题总结
查看>>
网页与APP中那些优美的登陆表单
查看>>
快速幂取模模板
查看>>
Git:配置
查看>>
神经系统知识普及
查看>>
Spring可扩展Schema标签
查看>>
c++ STL unique , unique_copy函数
查看>>
http://miicaa.yopwork.com/help/overall/
查看>>
浅谈关于特征选择算法与Relief的实现
查看>>
mybatis-spring 项目简介
查看>>