本文主要介绍k8s云平台(k8s集群升级),下面一起看看k8s云平台(k8s集群升级)相关资讯。
背景一般来说,集群的稳定性决定了一个平台的服务质量和公众口碑。当一个平台管理相当数量的kub-project/kubeprober官网地址:
kub:。
支持大规模集群和多集群管理,在管理端配置集群与诊断项的关系,统一查看所有集群的诊断结果;
云原生核心逻辑由运营商实现,提供完整的kubernetes api兼容性;
对自定义检验项目的可扩展支持。
其核心架构如下:
与监控系统不同的是,kubeprober是从巡视检查的角度来验证集群的功能是否正常。作为前向链接,监控无法覆盖系统中的所有场景。即使系统中各环境的监测数据正常,也不能保证系统100%可用。因此,我们需要一个工具从反方向证明系统的可用性,从而基本上先于用户找到集群中不可用的点,比如:
集群中的所有节点是否都可以调度,是否有特殊污点等。pod能否正常创建、销毁、验证从kubernetes、kubelet到dock测试连接,验证kube-proxy的链接是否正常;解析内部或外部域名以验证coredns是否正常工作;访问入口域名,验证集群中的入口组件是否正常工作;创建并删除一个命名空间,以验证相关的webhook是否正常工作;对etcd进行put/get/delete操作,验证etcd是否正常运行;通过mysql-client的操作验证mysql是否正常运行;模拟用户登录和操作业务系统,验证业务主要流程是否正常;检查每个环境的证书是否过期;云资源的到期检查;.....组件介绍kubeprober将作为一个整体来实现核心逻辑,remotedialer用于维护被管集群和管理集群之间的心跳链路,被管集群通过rbac赋予probe-agent所需的最小权限,并通过心跳链路实时上报被管集群的元信息和访问apiserver的令牌,从而实现在管理集群中操作被管集群相关资源的功能。
probe-master运行在管理集群上的操作员维护两个crd:一个是集群,用于管理被管理的集群;另一个是probe,用于管理内置和用户编写的诊断项目。probe-master通过watch的两个crd向被管集群推送最新的诊断配置,同时probe-master提供了查看被管集群诊断结果的界面。
probe-agent是运行在被管理集群上的一个操作符,它维护着两个crd:一个是与probe-master完全一致的probe,probe-agent根据probe的定义执行集群的诊断项;另一个是probestatus,用来记录每个探针的诊断结果。用户可以在受管集群中使用它。通过kubectl get probestatus检查该集群的诊断结果。
probekubepro中运行的诊断计划是什么?我们称之为探针,探针是诊断项目的集合。我们建议将统一场景中的诊断项作为探针运行,探针代理组件将观察探针资源,执行探针中定义的诊断项,并将结果写入probestatus的资源中。
我们期望一个输出能够清晰的看到集群当前的运行状态,所以我们建议所有的probe都要尽可能的属于应用、中间件、kubernetes、基础设置这四个场景,这样我们在显示状态的时候就可以清晰的、自上而下的看到系统的哪一级导致了问题。
目前探头比较少,还在不断完善中,希望和大家一起打造。欢迎粉丝共建:定制探针
相比其他诊断工具,社区里已经有kuberhealthy和kubeeye在做kubernetes聚类诊断。
kuberheathy为您提供了一个清晰的框架,让您轻松编写自己的诊断项目,crd诊断项目,并轻松使用kubernetes对单个kubernetes进行体检。
kubeeye也是针对单个集群的。主要通过调用kubernetes的event api和node-problem-detector来检测集群控制平面和各种节点问题,同时也支持用户自定义的诊断项目。
事实上,kubeprober所做的是诊断kubernetes集群,并提供一个框架来编写自己的诊断项。此外,kubeprober主要解决大规模kubernetes集群的诊断问题。通过集中化的思想,将集群和诊断项抽象到crd中,可以在中央kubernetes集群中管理其他kubernetes诊断项的配置和收集诊断结果,也将解决未来大规模kubernetes集群的运维问题。
如何使用kubeprober主要解决大规模kubernetes集群的诊断问题。通常,我们选择一个集群作为主集群,部署probe-master,其他集群作为被管理集群,部署probe-agent。详细说明请参考官方文件。
可视化kubeprober根据探针策略在多集群中执行诊断。损坏的项目将产生大量诊断事件。因此,直观地显示这些诊断项目尤为重要。此时,如果有一个全局仪表盘,统一查看和分析大规模集群的海量诊断项,将更有利于我们掌握这些集群的运行状态。
kubeprober支持将诊断事件写入influxdb,并通过grafana配置图统一显示诊断结果。例如,我们将错误事件统一显示为最高优先级。
同时,我们还可以通过展开probe-agent报告的集群信息来显示详细的集群列表:
结论随着数字化的逐步发展,企业的it架构变得越来越复杂。如何在复杂的环境下保证业务的连续性和稳定性?相信这是每个it从业者都会面临的问题。如果您对稳定性或kuberprober项目感兴趣,请联系我们进行深入讨论。同时也欢迎开源爱好者参与,共同打造一款大型的kubernetes集群管理神器。为kubeprober做贡献
我们致力于解决社区用户在实际生产环境中的反馈问题和需求。如有任何问题或建议,欢迎关注【尔大尔大】官方账号并给我们留言,加入erda用户群参与交流或在github上与我们讨论!
标签:
正常聚类
了解更多k8s云平台(k8s集群升级)相关内容请关注本站点。