情感测试
情感测试

您现在的位置: 情感测试简介_情感测试玩法 > 情感测试玩法 > 一文读懂SuperEdge分布式健康

一文读懂SuperEdge分布式健康

发布时间:2021-5-6 4:47:20   点击数:
初期白癜风能控制吗 http://baidianfeng.39.net/a_zczz/210103/8557257.html

杜杨浩,腾讯云高级工程师,热衷于开源、容器和Kubernetes。目前主要从事镜像仓库、Kubernetes集群高可用备份还原,以及边缘计算相关研发工作。

前言SuperEdge介绍

SuperEdge是基于原生Kubernetes的边缘容器管理系统。该系统把云原生能力扩展到边缘侧,很好的实现了云端对边缘端的管理和控制,极大简化了应用从云端部署到边缘端的过程。同时SuperEdge设计了分布式健康检查机制规避了云边网络不稳定造成的大量pod迁移和重建,保证了服务的稳定。

SuperEdge分布式健康检查云端组件

SuperEdge分布式健康检查功能由边端的edge-health-daemon以及云端的edge-health-admission组成:

edge-health-daemon:对同区域边缘节点执行分布式健康检查,并向apiserver发送健康状态投票结果(给node打annotation)edge-health-admission:不断根据nodeedge-healthannotation调整kube-controller-manager设置的nodetaint(去掉NoExecutetaint)以及endpoints(将失联节点上的pods从endpointsubsetsnotReadyAddresses移到addresses中),从而实现云端和边端共同决定节点状态

整体架构如下所示:

之所以创建edge-health-admission云端组件,是因为当云边断连时,kube-controller-manager会执行如下操作:

失联的节点被置为ConditionUnknown状态,并被添加NoSchedule和NoExecute的taints失联的节点上的pod从Service的Endpoint列表中移除

当edge-health-daemon在边端根据健康检查判断节点状态正常时,会更新node:去掉NoExecutetaint。但是在node成功更新之后又会被kube-controller-manager给刷回去(再次添加NoExecutetaint),因此必须添加Kubernetesmutatingadmissionwebhook也即edge-health-admission,将kube-controller-manager对nodeapiresource的更改做调整,最终实现分布式健康检查效果

在深入源码之前先介绍一下KubernetesAdmissionControllers[1]

AnadmissioncontrollerisapieceofcodethatinterceptsrequeststotheKubernetesAPIserverpriortopersistenceoftheobject,butaftertherequestisauthenticatedandauthorized.Thecontrollersconsistofthelistbelow,are

转载请注明:http://www.zmax-alibaba.com/qgwf/137131.html

网站简介 | 发布优势 | 服务条款 | 隐私保护 | 广告合作 | 合作伙伴 | 版权申明 | 网站地图

当前时间: