【k8s多集群管理平台开发实践】十二、开发总结及注意事项【完结】

news2024/11/18 7:27:26

文章目录

        • 简介
        • 总结前面11章节所实现的功能:
      • 一.完善集群更多功能
        • 1.1.可以扩展更多的功能
      • 二.该系列课程代码地址
      • 三.技术栈及开发经验
        • 3.1.开发过程中所使用到的一些技术栈
      • 四.开发过程中需要注意的事项
      • 五.反馈与交流

简介

该系列文章主要是介绍了多k8s集群平台开发的一个思路,以及一些重点功能的代码实现,通过切换k8s按钮实现更改cookie clusterId的值,然后平台通过读取cookie中clusterId的值来读取对应k8s的配置文件并通过调用api-server来加载该k8s的相关配置。本系列文章只要是取了整个k8s功能中的部分重要功能,网友可以根据该思路来继续扩展出更多的功能。目前该系列文章所实现的功能均来自xkube【一款多k8s集群管理平台】git地址:https://gitee.com/eeenet/xkube ,而xkube中的功能更改完善更全面。

总结前面11章节所实现的功能:
  1. deployment—实现了读取deployment列表、创建deployment、读取yaml配置、重启deployment下的pod。
  2. pods—实现了读取pod列表、查看pod的日志,和登录pod的终端。
  3. cronjob—实现了读取cronjob的列表、创建cronjob、读取和更改cronjob的yaml配置文件。
  4. hpa—【Horizontal Pod Autoscalert】pod的水平扩缩容,实现了读取配置列表、创建hpa、读取和修改hpa的yaml配置文件。
  5. svc—实现读取service的列表、创建service服务,读取和更新service的yaml配置文件。
  6. ingress—实现读取ingress的列表、创建ingress,读取和更新ingress的yaml配置文件。
  7. configmap—实现读取configmap的列表、创建configmap,读取和更新configmap的yaml配置文件。
  8. pvc—实现读取pvc列表。
  9. pv—实现读取pv列表。
  10. storageclass—实现读取storageclass列表。
  11. event—实现根据不同的资源类型加载事件信息。
    在这里插入图片描述

一.完善集群更多功能

1.1.可以扩展更多的功能

可以在此系列代码的基础上扩展出更多的功能,例如:增加各种资源的详情页、完善statefulset、job、daemonset、secret、这些的功能,增加一些资源在各集群间的克隆迁移功能、增加一些登录及权限控制的功能等等。可以参考下图中提到的一些功能,也可以发挥想象创造出更多的功能。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

二.该系列课程代码地址

k8s集群管理平台开发实践–该系列文章中的代码地址https://gitee.com/eeenet/myk8s

三.技术栈及开发经验

3.1.开发过程中所使用到的一些技术栈

3.1 xkube中所使用到的技术栈及相关技术知识

  • golang–编程语言
  • beego–go语言下的web框架
  • layui–前端jquery框架
  • websocket–用于登录pod的ssh终端
  • aliyunSDK–CICD这部分功能用于调用阿里云的流水线的api
  • kubernetes–了解掌握k8s管理相关技术
  • client-go–k8s管理平台开发的sdk
  • echarts–在查看节点和pod的内存和cpu使用率时画曲线图
  • monaco-editor—yaml配置文件的显示和更新
  • redis–用于后台存取session及k8s集群管理平台的一些列表缓存。
  • mysql–存放用户登录信息、权限控制、cicd信息管理等
  • editor–wiki文档功能的编辑器

四.开发过程中需要注意的事项

4.1.注意事项

  • 在开发过程中注意各个集群和资源所使用的的api版本,不同的集群由于版本不同,api的版本不一样,需要判断k8s的版本号再选用合适的api版本。
  • 针对k8s集群规模比较大的情况,如果加载pod、deployment列表时,默认加载全部命名空间,需要考虑性能问题,可以默认加载指定命名空间,或者通过limit限制读取的数量,又或者通过informer的方式来读取。
  • 可能存在文章中的代码会附有代码注释,而git源码中的代码没有注释的情况。
  • 调试过程中,传递的集群ID:默认定义成ali-cluster1和ali-cluster2,名称可以自己定义,当首页设置cookie为ali-cluster1时则读取根目录下的ali-cluster1.txt【将kubeconfig配置拷贝到此文件中】,如果没有设置cookie的情况下,则读取根目录下的kubeconfig.txt中的配置。
  • 有些k8s环境需要进行独立的校验才可以使用kubectl的情况,例如aws的kubeconfig就无法正常使用,需要创建独立的BearerToken,然后再将token配置放到集群名称.txt的文件中。具体代码参考:common/k8sclient.go。
  • 开发环境所用到的各版本可以参考:go.mod

五.反馈与交流

对于k8s多集群管理平台开发有什么反馈可以在此提交:https://gitee.com/eeenet/myk8s/issues,有可以通过gitee的私信或微信进行交流:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1655812.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SF 不消费buffer

1、请求合成请求vsync MessageQueue.cpp 返回nextWakeupTime struct ArmingInfo { nsecs_t mActualWakeupTime; nsecs_t mActualVsyncTime; nsecs_t mActualReadyTime; }; 在schedule 请求vsync 时会根据算法计算出nextVsyncTime时间&#…

【matlab基础知识代码】(十二)逆矩阵与广义逆矩阵

>> Hhilb(4);H1inv(H),norm(H*H1-eye(4))H1 1.0e03 *0.0160 -0.1200 0.2400 -0.1400-0.1200 1.2000 -2.7000 1.68000.2400 -2.7000 6.4800 -4.2000-0.1400 1.6800 -4.2000 2.8000ans 2.8455e-13 矩阵维数较大,警告: 矩阵接近奇…

豆芽机置入语音芯片WTN6040-8S:开启智能生活新篇章,让豆芽制作更便捷有趣

豆芽机的开发背景: 豆芽作为一种营养丰富、味道鲜美的食品,深受广大消费者的喜爱。然而,传统的豆芽生产过程繁琐,需要耗费大量的时间和人力,且存在生产效率低、质量不稳定等问题。随着人们生活节奏的加快和对健康饮食的…

开源即时通讯IM框架 MobileIMSDK v6.5 发布

一、更新内容简介 本次更新为次要版本更新,进行了bug修复和优化升级(更新历史详见:码云 Release Notes、Github Release Notes)。 MobileIMSDK 可能是市面上唯一同时支持 UDPTCPWebSocket 三种协议的同类开源IM框架。轻量级、高…

django和vue开发的前后端分离网站怎么部署到服务器上,django和vue前后端分离网站怎么通过宝塔部署

提示:如果看完全部教程后仍然部署不成功,可以联系作者 一、提前准备 想要把django vue 前后端分离网站部署到服务器上,有一些提前准备的东西 1、备案域名(域名必须备案) 这里需要解析两个域名,一个前端&…

������森林消防泵:特点及使用场景 /恒峰智慧科技������

在大自然的怀抱中,森林是地球上最美丽的绿色家园。然而,森林火灾却时常威胁着这片美丽的家园。为了保护森林,我们有幸拥有了一支强大的森林消防泵队伍。今天,就让我们一起来了解一下这些守护者们的故事吧! &#xfffd…

从Flutter范儿的单例来看Dart的构造函数

点击上方蓝字关注我,知识会给你力量 单例模式 单例模式应该是设计模式中使用的最广泛的一种设计模式了,在Kotlin中,甚至为它单独创建了一个语法糖——object类,来快速实现单例模式,而在Dart中,并没有像Kotl…

人大金仓数据库报com.kingbase8.util.KSQLException: 致命错误: 用户 “SYSTEM“ Password 认证失败

com.kingbase8.util.KSQLException: 致命错误: 用户 “SYSTEM” Password 认证失败 解决办法: 问题在于用户权限只不足,相关配置文件在一般在 /data/sys hba.conf,修改IPV4 local connections选项中的改为trust。

第1章 信息系统综合知识 1.1 信息的定义和属性

第1章 信息系统综合知识 1.1 信息的定义和属性 1.1.1 信息的基本概念 控制论创始人维纳认为:信息就是信息,既不是物质也不是能量。 信息论的奠基者香农认为:信息就是能够用来消除不确定性的东西。 其他流行说法:信息是事先不…

回归的无分布预测推理

摘要 我们利用保形推理,开发了回归中无分布预测推理的一般框架。所提出的方法允许使用回归函数的任何估计量构建响应变量的预测带。所得的预测带在标准假设下保留了原始估计量的一致性,同时保证了有限样本边际覆盖,即使这些假设不成立。我们…

代码随想录算法训练营第二十一天:树树树

代码随想录算法训练营第二十一天:树树树 ‍ 513.找树左下角的值 力扣题目链接​**(打开新窗口)** 给定一个二叉树,在树的最后一行找到最左边的值。 示例 1: ​​ 示例 2: ​​ #算法公开课 《代码随想录》算法视频公开课…

Spring底层入门(七)

1、异常处理 在DispatcherServlet中,doDispatch(HttpServletRequest request, HttpServletResponse response) 方法用于进行任务处理: 在捕获到异常后没有立刻进行处理,而是先用一个局部变量dispatchException进行记录,然后统一由…

【GaussTech速递】数据库技术解读之细粒度资源管控

背景 对数据库集群内资源管控与资源隔离一直是企业客户长久以来的诉求。华为云GaussDB作为一款企业级分布式数据库,一直致力于满足企业对大型数据库集群的管理需要。 数据库可以管理的资源有计算资源与存储资源,计算资源包括CPU、内存、IO与网络&#…

FastAPI vs Flask: 选择最适合您的 Python Web 框架

文章目录 1. 简介2. 安装和设置3. 路由和视图4. 自动文档生成5. 数据验证和序列化6. 性能和异步支持结论 在 Python Web 开发领域,FastAPI 和 Flask 是两个备受欢迎的选择。它们都提供了强大的工具和功能,但是在某些方面有所不同。本文将比较 FastAPI 和…

error LNK2001: 无法解析的外部符号 “__declspec(dllimport) public: __cdecl ......

运行程序时,报如上图所示错误,其中一条是: ReflectionProbe.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __cdecl osg::Object::Object(bool)" (__imp_??0ObjectosgQEAA_NZ) 报这个错误一般是因为…

前端Web如何实现将一个 ECharts 动效保存为一张 GIF 动图?

前端Web如何实现将一个 ECharts 动效保存为一张 GIF 动图? 博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!…

[Cpp]类和对象 | 实现日期类

标题:[Cpp]类和对象 | 实现日期类 水墨不写bug 正文开始: 类和对象是Cpp面向对象编程区别于C的面向过程编程的重要的一部分,因此打好坚实的类和对象的基础对于深入学习Cpp语言是比较明智的。 本文通过实现简单的日期类来加深对类和对象的理解…

【算法】-- 二分查找详注

引入 二分查找,也称为折半查找;首先,二分查找是一种基于有序数组中查找特定元素的算法,所以它会因为数组的一些特性而受限。它的工作原理是不断将要查找的区间分成两部分,然后确定目标值可能存在的区间,直…

VUE 或 Js封装通用闭包循环滚动函数

1、vue3 闭包滚动函数的使用 js 调用也基本雷同 // 滚动Tab组件const scoreTabRef ref()// 滚动的选项const scrollOption ref({// 滚动的Dom元素scrollDom: null,// 滚动的时间间隔scrollInterval: 1500,// 滚动的距离scrollSep: 100,// 滚动历时时间scrollDuration: 10…

视频汇聚边缘网关EasyCVR硬件设备无法访问域名,解析失败该如何处理?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。视频汇聚融合管理平台EasyCVR既具备传统安防视…