k8s

记一次pod删除没有自动生成的问题解决

背景

访问wordpress报错连接数据库失败,查看pod状态是CrashLoopBackOff。
查看pod日志报错,livenessprobe和readnessprobe失败。

解决

1.删除wordpress-db的pod,发现pod没有自动生成。查看pv,pvc状态正常。查看controller-manager日志报错:webhook-service的证书过期。

2.想起来之前配置过apiserver的准入控制webhook。
https://wghdr.top/archives/335 中的准入控制webhook部分。
删除webhook-demo的ns,查看controller-manager日志报错:

3.还原apiserver配置文件和kube-config,等待apiserver重启。重启后,controller-manager日志报错没变,且apiserver的pod也没有了,但进程还在。(这里也测试过删除controller-manager的pod,也没有自动生成)

4.查看mutatingwebhookconfigurations。

kubectl get mutatingwebhookconfigurations

file

kubectl get mutatingwebhookconfigurations -o yaml

file

5.删除demo-webhook的mutatingwebhook。

k delete mutatingwebhookconfigurations demo-webhook

6.查看pod已自动生成。

file
file

原因

由于demo-webhook的mutatingwebhook的resources是pods,operations是CREATE,所以在创建pod时会自动添加这个准入插件到pod上,只有所有的adminssion-plugin都通过pod才能生成。
所以不删除demo-webhook的话,重新生成证书也可以解决的。我是因为不需要这个demo了,就删掉了。

PS:要记得你自己干过什么。。。

分类: k8s
0 0 投票数
文章评分
订阅评论
提醒
guest

0 评论
最旧
最新 最多投票
内联反馈
查看所有评论

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部
0
希望看到您的想法,请您发表评论x