伸缩Kubernetes到2500个节点中遇到的问题和解决方法是什么

发布时间:2021-12-06 13:57:28 作者:柒染
来源:亿速云 阅读:134

这篇文章给大家介绍伸缩Kubernetes到2500个节点中遇到的问题和解决方法是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

Kubernetes自从1.6起便号称可以承载5000个以上的节点,但是从数十到5000的路上,难免会遇到问题。

遇到的问题以及如何解决

问题一:1 ~ 500个节点之后

问题:

kubectl 有时会出现 timeout(p.s. kubectl -v=6 可以显示所有API细节指令)

尝试解决:

原因:

问题二:~1000个节点的时候

问题:

尝试解决:

原因:

--etcd-servers-overrides=/events#https://0.example.com:2381;https://1.example.com:2381;https://2.example.com:2381

问题三:1000 ~ 2000个节点

问题:

尝试解决:

解決方法:

各种服务的优化

Kube masters 的高可用

一般来说,我们的架构是一个kube-master(主要的 Kubernetes 服务提供组件,上面有kube-apiserver、kube-scheduler 和kube-control-manager)加上多個slave。但是要达到高可用,要参考一下方式实现:

{
"kind" : "Policy",
"apiVersion" : "v1",
"predicates" : [
  {"name" : "GeneralPredicates"},
  {"name" : "MatchInterPodAffinity"},
  {"name" : "NoDiskConflict"},
  {"name" : "NoVolumeZoneConflict"},
  {"name" : "PodToleratesNodeTaints"}
  ],
"priorities" : [
  {"name" : "MostRequestedPriority", "weight" : 1},
  {"name" : "InterPodAffinityPriority", "weight" : 2}
  ]
}

以上为调整kubernetes scheduler范例,通过调高InterPodAffinityPriority的权重,达到我们的目的。更多示范参考范例.

需要注意的是,目前Kubernetes Scheduler Policy并不支持动态切换,需要重启kube-apiserver(issue: 41600)

调整scheduler policy造成的影响

OpenAI使用了KubeDNS ,但不久后发现——

问题:

尝试解决:

解决方法:

affinity:
 podAntiAffinity:
   requiredDuringSchedulingIgnoredDuringExecution:
   - weight: 100
     labelSelector:
       matchExpressions:
       - key: k8s-app
         operator: In
         values:
         - kube-dns
     topologyKey: kubernetes.io/hostname
新建节点时Docker image pulls缓慢的问题

问题:

尝试解决:

解决方法:

补充:source trace

// serializeImagePulls when enabled, tells the Kubelet to pull images one
// at a time. We recommend *not* changing the default value on nodes that
// run docker daemon with version  < 1.9 or an Aufs storage backend.
// Issue #10959 has more details.
SerializeImagePulls *bool `json:"serializeImagePulls"`
提高docker image pull的速度

此外,还可以通过以下方式来提高pull的速度

kubelet参数--image-pull-progress-deadline要提高到30mins docker daemon参数max-concurrent-download调整到10才能多线程下载

网络性能提升

Flannel性能限制

OpenAI节点间的网络流量,可以达到10-15GBit/s,但是由于Flannel所以导致流量会降到 ~2GBit/s

解决方式是拿掉Flannel,使用实际的网络

关于伸缩Kubernetes到2500个节点中遇到的问题和解决方法是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. Kubernetes的弹性伸缩用法
  2. Kubernetes高级进阶之弹性伸缩的困境与布局

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

kubernetes

上一篇:UML图形中UML用例图和类图怎么用

下一篇:Visio画UML图基本操作及技巧有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》