xxggmmxx 发表于 2018-1-5 09:47:44

[经验交流] 影响 kubernetes 稳定性的因素

  使用k8s已有近一年的时间,版本从1.2到1.5、1.6、1.7,期间出现并解决了不少问题,下面是我总结的影响k8s集群稳定性的因素:
1. 安装环境
  *kubelet版本最好与kube-apiserver、kube-controller-manager、kube-scheduler匹配;
  *docker版本必须符合k8s的要求(当前是1.12);
  *在xfs文件系统上使用docker overlay storage 请用下述命令重新格式化分区:mkfs.xfs -n ftype=1
2. 持久化存储
  *除非硬件和网络性能足够,否则不要使用分布式存储,比如:glusterfs、ceph,否则,分布式存储的延迟和多节点数据不同步会严重影响k8s集群的稳定;
  *可选择单节点的NFS4或者专业存储设备;
3. docker 镜像服务
  *确保 docker registry 足够的稳定性和高性能(这一点往往不容易达到);
  *部署容器前,提前pull镜像,并把部署文件的ImagePullPolicy设为IfNotPresent;
4. k8s的配置
  k8s的配置错误或者冲突也会造成集群的不稳定,但这方面的问题往往比较隐蔽、不容易找出。
  *kube-controller-manager的node-monitor-grace-period 不能过短,否则k8s node会不断出现NotReady的错误;
  *...
5. etcd
  etcd是k8s核心组件之一,存储k8s的api对象,它对磁盘和网络性能很敏感,建议按照官方说明配置如下:
  *使用SSD代替普通磁盘
  *使用1G以上的网络
  *使用多节点(3个或5个)的集群
附:k8s故障排查方法
  *建立k8s和容器监控,及时发现问题;
  *出现问题后查看日志、找出原因:kube-apiserver、kube-controller-manager、kube-scheduler、其它容器的日志,以及/var/log/messages
  *使用google查询解决方案
页: [1]
查看完整版本: [经验交流] 影响 kubernetes 稳定性的因素