在上一篇监控问题排查的文章中,笔者分析了 KubeSphere 3.1.0 集成 KubeEdge 中的边际监控原理和问题排查思路,在介绍 EdgeWatcher 组件时提到了“边际节点的内网 IP 需求集群内仅有”这样的束缚条件。本文就来深化分析一下这个问题,并尝试给各位边际开发者供给一些处理的建议和思路。

正常场景

在边际节点参加云端集群时,需求指定 “Nod数据结构严蔚敏e Name” 和 “Internal IP”,望文生义,便是边际节数据结构教程第5版李春葆答案点的节点称谓和内网 I监控装置流程P 地址。这儿的内网 IP 地址便是本文的主题,该地址需求在集群内仅有。

KubeSphere 在 EdgeWatcher 中供给了用户指定的内运维是做什么的网 IP是否被占用的验证功用。验证失利(IP 已被占用)的情况下,则不会为该边际节点供给参加集群的命令行输出。下面两张图展现了验证成功和失利的场景。

验证成功:

KubeSphere 边际节点 IP 抵触的分析和处理思路共享

验证失利:

KubeSphere 边际节点 IP 抵触的分析和处理思路共享

能够说数据结构与算法分析,KubeSphere 在这一点上现已做的十分用心了,给用户供给了 UI 的 “Validat运维工程师有出路吗e” 按钮和后台 API,不管是直接命令行参数运用仍是依据 KubeSphere 的二次开发都会监控他人微信聊天记录十分方便。

不合法场景

在上一节中展现了内网 IP 被占用的成果便是不能参加集群,因为该 IP 现已被注册在了 EdgeWatcher 中,不能再被其他边际节点运用。

那么假设一个 IP 还没有被注册到 EdgeWatcher 中,也便是边际节点没有被实在接入集群时,仍是能够跳过这一步验证,将相同内网 IP 的两个边际节点参加同一个集群中,制造这个不合法的运用场景。

这个不合法场景带来的问题便是:相同 IP 的“较早websocket是什么意思参加集群”的边际节点在 logs exec 和 metrics 的功用上都会失效。即下图的运维功用都是没有数据的。

KubeSphere 边际节点 IP 抵触的分析和处理思路共享

之前,笔者也在 KubeSphere 的开发命令行如何切换到d盘者社区提websocket菜鸟教程过这个问题,一起也和担任命令行窗口快捷键边际模块的社区开发者运维工程师面试题有过沟通,确认了在 KubeSphere 的产品设计上,内网 IP 需求管理员或许用户自行按需进行规划,保证不重复。

潜在问题

私有安置的场景下,做到 IP 的统一规划是比较简略的。那么假设根监控据 KubeSph数据结构与算法ere 的边际处理计划在公有云场景中会怎样样呢?

公有云用户不受规划束缚,一起并发量比较大,呈现“相数据结构知识点总结同 IP 参加集群监控眼”这个问题的概率会十分大。最终会导致部分用户的 logs exec 和 metrics 功用失效,大运维工程师面试题量问题工单随之而来,用户黏度下降。所以公有云场景下,这个问题是必需求处理的,下面我们就详细分析一下问题的根本原监控摄像头软件app下载因和处理思路。

根本原因

处理问题前,要把问题产生的根本原因摸清楚数据结构课程设计,这样才华有的放矢地去处理和处理问题。

在上一篇文章中,其实也简明介绍了 metrics 数据获取在 KubeEdge 边际场景下的结束原理:kube-apiserver 上的 iptables 转发给云端的 Cloudcore,Cloudcore 经过和 Edgecore 之间的 WebSocket 通道向边际端进行监控他人微信聊天记录音讯和数据传运维是做什么的递。

logs 和 exec 功用的结束原理与 metrics 是数据结构严蔚敏一样的。下面这张图简明的描绘了这几项功用在 KubeEdge运维工程师考什么证书 下的工作流程。

KubeSphere 边际节点 IP 抵触的分析和处理思路共享

结合上面这张图的 cloudcore (KubeEdge 云端组件)的赤色部分,来解释一下为什么内网 IP数据结构题库 需求集命令行群内仅有。

边际节点(edgecore,即 K命令行进入指定目录ubeEdge 边际组件命令行窗口快捷键)在连接到云运维方与学者沟通的途径是端集群时,和云端之间会建立一个 we命令行进入指定目录bsocket 通道。云端为了后续经过该 websocket 通道和边际节点通讯,需求将这个通道作为 session 保存在云端。体现在数据结构上便是一个“内网 IP”运维岗位是干什么的为 key,session (w监控摄像头ebsocket 通道)为 value 的 map。

看到这儿,各位开发者应该就很简略理解了,命令行窗口怎样翻开假设内网 IP 相同,则会掩盖较早参加集群的边际节点的 session 记载。这时云端去查找“被掩盖了 session 的边际节点”上 POD 的监控和运维数据,肯定是找不到的。

问题的根本原因找到了,处理的思路也就比较明确了,下一末节笔者简略论说下这个问题的处理思路。

下图监控是在 KubeEdge 的边际场景下,logs 功用的时序图,感兴趣的开发者能够进一步了解。

KubeSphere 边际节点 IP 抵触的分析和处理思路共享

处理思路

上一节收拾清楚了根本原因,处理思路也就比较清楚明晰。本着非侵入式的改造准则,尽量少改动 KubeSphere 和 KubeEdge,对上层事务逻辑进行增强和扩展是笔者心目中的最佳挑选。

已然根本原因是 IP 抵触导致 session 被掩盖,那就很自然的想到供给集群内不重复 IP 的分配服务,也便是常说的 IPAM监控眼。在云端的事务逻辑层引入 IPAM 服务,为用户边际节点供给集群内仅有的运维是做什么的 IP 分配才华。

一起还需运维宝求重视一点的是,IPAM 服务分配出来的仅有 IP 归于内部结束,不能当作 “Internal IP” 展现给用户。用户看到的边际节点内网 IP 地址仍然是用户自行规命令行重启电脑划和填写的 IP,只不过改造后的内网 I数据结构有哪些P 不再命令行参数作为 session 的 key,也不再需求进行抵触查验,只在页面上展现便利用户查找,前进产数据结构有哪些品的易用性。

下面便是该思路下的节点参加流程图,供各位开发者参阅。

KubeSphere 边际节点 IP 抵触的分析和处理思路共享

依据上面的运维工程师是干什么的流程图,笔者也大概罗列一下上述处理计划,需求修改的点:

  1. 新建集群内 IPAM 服务,供给分配,收回 IP 等功用,留心并发处理。
  2. 新建事务层数据结构与算法节点服务,供给节点称谓,展现用 IP,仅有 IP 等耐久化才华。
  3. 修改 keadm 和 edgecore,支持 node IP 可选
  4. 修改 cloudcore,在节点注册时经过节点称谓查询仅有 IP,作为 Internal IP 注册节点。
  5. 在事务层北向接口躲藏仅有 IP(K8s 上的 internal IP),替换成用户输入的展现 IP。

跋文

经过对现象和原理的分析,我们数据结构c语言版提出了在公有云环境websocket服务器下依据 KubeSphere 的边际节点 IP 抵触问题的处理计划websocket菜鸟教程。限于笔者的技能才华websocket完成1对1聊天,有或命令行链接mysql设置端口许还存在着更为简略有用的处理办法,欢迎各位开发者提出宝贵意见,让我们一起把依据 KubeSWebSocketphere 的边际处理计划做大做强。

本文由博客一文多发渠道 OpenWrite 发布!