记录下K8s中coredns的 CrashLoopBackOff的问题解决

今天将K8s启动后,用kubectl get pod -n kube-system查看节点,发现两个coredns都处在CrashLoopBackOff状态,记录下解决方案

先查看自己的coredns版本,低版本CoreDNS(1.4及之前的版本)存在的以下两个问题,影响了ACK 1.16以前版本集群内域名解析服务的稳定性:

  • 因为CoreDNS需要通过watch apiserver拿到Service数据,所以health插件会检查CoreDNS与apiserver的连通性。如果连通性不正常(如网络抖动、apiserver重启等情况),健康检查接口会报错。CoreDNS在3次健康检查失败后会重启,重启过程中将导致服务不可以用。
  • CoreDNS会受到klog缺陷的影响:CoreDNS与apiserver断连后,klog尝试向一个不存在的目录/tmp写错误日志,此行为会失败并进一步导致CoreDNS不可用。
kubectl get deployment coredns -n kube-system -o jsonpath="{.spec.template.spec.containers[0].image}"

可以查看coredns的版本

升级步骤

变更CoreDNS配置项
# 打开编辑。
kubectl edit configmap/coredns -n kube-system

# 替换proxy字段为forward
# 保存并退出
变更CoreDNS应用
# 打开编辑。
kubectl edit deployment/coredns -n kube-system

# 变更镜像版本到1.6.2
# 保存并退出

完成后再次使用kubectl get deployment coredns -n kube-system -o jsonpath="{.spec.template.spec.containers[0].image}"查看coredns的版本,现在可以看到版本变为1.6.2

依然出错

在我将上面步骤执行完成后,出现更奇怪的错误,本来两个coredns都不能运行,现在只有一个不能运行,另一个可以运行,我开始在网上查找解决方法,发现都是关闭防火墙,清空防火墙的规则,这些我跟着试,发现还是不行,我开始看两个节点的区别

NoReady的pod
Ready的pod

原来上述清空防火墙规则,关闭防火墙要在pod的相应节点上进行,我重新在k8s-node04上执行命令

systemctl disable firewalld
systemctl stop firewalld
systemctl reboot
systemctl stop kubelet
systemctl stop docker

iptables -P FORWARD ACCEPT
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
ip6tables -t nat -F
ip6tables -t mangle -F
ip6tables -F
ip6tables -X
ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT


$ systemctl stop kubelet
$ systemctl stop docker
$ iptables --flush
$ iptables -tnat --flush
$ systemctl start kubelet
$ systemctl start docker
coredns正常运行
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
Theme Argon
本网站自 2020-12-24 12:00:00 起已运行