apiserver重启、响应慢、etcd选主频繁、k8s系统组件重启次数多解决方法原创
金蝶云社区-lrc
lrc
2人赞赏了该文章 476次浏览 未经作者许可,禁止转载编辑于2024年05月14日 16:36:04

现象:

  • controller/operator类组件容器重启次数多

  • apiserver经常重启、6443/443端口响应慢

  • kubectl命令响应慢,偶尔超时

  • etcd日志出现形如"took too long"的关键字

  • 部分特征截图如下:

    图片.png

    图片.png

原因:

  1. 磁盘读写性能不足(系统故障/天生)

  2. etcd历史数据量过大

  3. etcd更新超时,触发etcd选主,进一步触发apiserver短暂不可用,apiserver健康检查超时导致容器重启,最终造成全部依赖apiserver的系统组件,包含其他controller/operator类组件访问apiserver超时,容器重启。

解决方案:

  • 针对磁盘读写性能:排除系统故障,使用fio进行测试,更换读写性能更好的磁盘等。

  • 针对etcd历史数据量过大:执行`etcdctl defrag`数据清理操作。

    命令示例如下:

    ETCDCTL_API=3 etcdctl --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/peer.crt --key=/etc/kubernetes/pki/etcd/peer.key --endpoint=https://10.200.192.111:2379,https://10.200.192.112:2379,https://10.200.192.113:2379  defrag

    图片.png

    图片.png

  • 针对k8s组件:优化配置,增加系统宽容度,避免频繁选主。

    修改kube-controller-manager和kube-scheduler组件参数(每台master都要执行)

    命令示例如下:

    vi /etc/kubernetes/manifests/kube-controller-manager.yaml

    vi /etc/kubernetes/manifests/kube-scheduler.yaml

    图片.png

    修改etcd参数(每台master都要执行)

    命令示例如下:

    vi /etc/kubernetes/manifests/etcd.yaml

    图片.png

图标赞 2
2人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!