首页 > 其他 > 详细

记一次升级centos7内核导致k8s pod无法启动问题

时间:2020-12-29 22:59:54      阅读:82      评论:0      收藏:0      [点我收藏+]
背景
我的k8s环境由于是搭建在vmwara的虚拟机上的,所以不知道是不是这个原因,节点会经常卡住,经过网上搜索决定升级centos内核。初始内核是自带的3.1,升级完内核后发现k8s的pod无法启动。
1、查看pod日志提示如下:

            unable to find a keyring on /etc/ceph/ceph.client.kube.keyring,/etc/ceph/ceph.keyring

` 2、开始以为ceph出问题了,去ceph主机查看

            ceph -s 
            ceph health

` 3、发现返回结果都是健康状态,又去检查k8s的secret

            [root@master redis]# kubectl -n ceph get secrets ceph-secret  -o jsonpath=‘{.data.key1}‘  | base64 --decode
AQAgaZxdyNlWHBAAJdXA8CLWCZ2R2vqr0XKgRg==
[root@master redis]# kubectl -n ceph get secrets ceph-admin-secret  -o jsonpath=‘{.data.key}‘  | base64 --decode
AQBHY5xdCtScFhAAKdsJGaZtRKXDHNlkkQz7xw==
ceph auth get client.admin 2>&1 |grep "key = " |awk ‘{print  $3‘} |xargs echo -n > /tmp/key
kubectl create secret generic ceph-admin-secret --from-file=/tmp/key --namespace=ceph --type=kubernetes.io/rbd
ceph auth get-key client.kubernetes > /tmp/key1

` 4、对比了secret和ceph的值,发现内容是一样的。应该也不是secret的问题,再仔细查看pod日志,提示我查看dmesage信息

            [52184.040266] libceph: mon0 10.1.6.190:6789 feature set mismatch, my 106b84a842a42 < server‘s 40106b84a842a42, missing 400000000000000
[52184.044957] libceph: mon0 10.1.6.190:6789 missing required protocol features

` 5、网上查了一下内核版本和ceph的某些特性不支持,需要关闭这些特性,或者升级内核到4.5以后,而我只升级到4.4,首先尝试使用最简单的方法,在ceph主机关闭这些特性,如果还不行,就得再次升级内核,死马当活马医吧。

            ceph osd crush tunables hammer

使用上面这句命令关闭特性后果然pod可以启动了。至于为什么我原来3.1的就没有报错,升级到4.4反而会报错,这个就有待研究了。其中我也把ceph所在的主机内核也给升级了,没用。

记一次升级centos7内核导致k8s pod无法启动问题

原文:https://blog.51cto.com/riverxyz/2576633

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!