加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

容器云平台API Server卡顿题目排查

发布时间:2019-07-02 04:53:59 所属栏目:移动互联 来源:aoxiang
导读:58云计较平台是58团体架构线基于Kubernetes + Docker技能为团体内部处事开拓的一套营业实例打点平台,它具有简朴,轻量的特点及高效操作物理资源,更快的陈设和同一类型的尺度化运行情形,通过云平台,使得处事尺度化,上线流程类型化,资源操作公道化。然
副问题[/!--empirenews.page--]

58云计较平台是58团体架构线基于Kubernetes + Docker技能为团体内部处事开拓的一套营业实例打点平台,它具有简朴,轻量的特点及高效操作物理资源,更快的陈设和同一类型的尺度化运行情形,通过云平台,使得处事尺度化,上线流程类型化,资源操作公道化。然而云平台的建树进程不是一帆风顺,也不乏呈现一些题目挑衅,本文就针对云平台实际中碰着的一个题目和各人分享。

1、关于题目

1.1 题目概述

近期,许多营业同事反馈行使云平台上线存在容器陈设慢,平台回响慢的题目。通过具体的题目排查定位后,最终题目得以办理。

1.2 Kubernetes根基常识

私有云平台通过Kubernetes对容器举办编排。Kubernetes整体架构如下图所示:

容器云平台API Server卡顿题目排查

个中几个首要的模块的成果扼要描写如下:

  • etcd:用于Kubernetes的后端存储。
  • Pod:Kubernetes最根基的操纵单位,包括一个或多个细密相干的容器。
  • Replication Controller:副本节制器,用来担保Deployment可能RC中副本的数目。
  • Scheduler:Kubernetes的调治器,Scheduler监听API Server,当必要建设新的Pod时Scheduler认真选择该Pod与哪个Node举办绑定。
  • Kubelet:每个Node节点上城市有一个Kubelet认真Master下发到该节点的详细使命,打点该节点上的Pod和容器。
  • API Server:对付整个Kubernetes集群而言,API Server是通过袒露Kubernetes API的方法提供应内部组件可能外部措施挪用去完成对Kubernetes的操纵。各个组件之间也是通过API Server作为桥梁举办间接通讯,这种方法做到各个组件间充实解耦。

营业同事操纵打点平台发出建设集群哀求到集群建设完成的整个流程如下:

  1. 营业同窗操纵打点平台举办进级操纵,打点平台通过http方法向API Server发出哀求。
  2. API Server处理赏罚息争析哀求参数,将待建设的Pod信息通过API Server存储到etcd。
  3. Scheduler通过API Server的watch机制,查察到新的Pod,实举动Pod绑定Node。
  4. 颠末预选筛除不吻合节点及从待选节点中按照必然法则选出最得当的节点。
  5. 对选中的节点及Pod举办binding操纵,将相干的功效通过API Server存储到etcd。
  6. 对应Node的Kubelet历程挪用容器运行时建设容器。

2. 定位题目

2.1 题目排查

从1.2可以看到,API Server在建设Pod进程中起到很是要害的中间桥梁浸染,理会外部哀求及读写etcd。因此抉择起首从API Server历程地址宿主机的各项机能指标及日记方面举办排查,看是否有所发明。

今朝线上情形有3台主机运行API Server,以到达流量负载平衡的目标,非常时刻段网卡eth2入流量如下图所示:

容器云平台API Server卡顿题目排查

由3台API Server主机的监控数据,发明处事器A的网卡入流量远高于其它两台,声名绝大部门哀求发送到了处事器A。

通过比拟三台处事器API Server 的CPU操作率,发明处事器A的API Server历程CPU行使率一向保持在2000%(20核)上下颠簸,而其它两台处事器的API Server的CPU操作率没有高出100%(1核)。进一步证实了A的API Server历程处理赏罚了绝大大都的哀求。

查察A处事器的API Server的相干log,发明正在大量输出如下的日记:

容器云平台API Server卡顿题目排查

这个日记表现有大量哀求通过API Server到etcd查询Pod的状态。

对付Kubernetes后端的存储今朝回收5个etcd节点构成etcd集群。登岸个中一个节点(E1),发明对E1节点执行etcd操纵呼吁,好比呼吁:“etcdctl ls /registry/pods/default”,呼吁执行也会常常超时。假如你想和更多Kubernetes技能专家交换,可以加我微信liyingjiese,备注『加群』。群里每周都有环球各大公司的最佳实践以及行业最新动态。

同时比拟5台etcd节点的流量,发明有一个节点网卡入流量远高于其他四个节点,该节点(E1)的etcd历程的CPU操作率在100%阁下,明明高于剩余的4个节点CPU操作率。查察节点E1的etcd历程日记,常常看到如下报错:

容器云平台API Server卡顿题目排查

可以揣度节点E1的负载很是高,节点间同步心跳都已经超时,无法正常的相应外部的哀求了。

2.2 题目说明

颠末上述排查,首要齐集在这两个题目上:

2.2.1负载平衡计策失效

起首可以看到对Kubernetes集群的操纵哀求大部门都落在某个API Server上,导致个中一个API Server负载很高,那么有也许负载平衡计策有些题目。那就先看看当前负载平衡计策是怎样的。

当前我们租赁的是腾讯的机房,负载平衡计策回收的是TGW(Tencent Gateway)体系所自带支持的负载平衡计策。腾讯云上有关先容如下:

TGW负载平衡计策担保哀求的分摊转发,也会自动对resource server(RS)举办存活检测,每分钟会有意跳包去对接入TGW的IP Port举办探测。

关于TGW相干设置详细如下:

  1. 做域名理会:我们对必要会见到API Server的物理机都做了当地DNS,将一个牢靠域名(D)理会到一个特定的VIP(V),而该VIP就是TGW对外提供的假造IP。
  2. 设置TGW处事的RS列表:将三台API Server节点对应的物理IP插手到RS列表。

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读