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

文章目录

        • 简介
        • 总结前面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.mzph.cn/news/834140.shtml

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

相关文章

【前端】CSS基础(1)

文章目录 前言一、CSS基础1、 CSS是什么2、 CSS基本语法规范3、 代码风格3.1 样式格式3.2 样式大小写3.3 空格规范 4、 CSS引入方式4.1 内部样式表4.2 行内样式表4.3 外部样式 前言 这篇博客仅仅是对CSS的基本结构进行了一些说明,关于CSS的更多讲解以及HTML、Javasc…

iOS MRC那句话

混编时使用MRC文件需要使用这句话 -fno-objc-arc在下图中显示的位置添加

Pytorch常用的函数(九)torch.gather()用法

Pytorch常用的函数(九)torch.gather()用法 torch.gather() 就是在指定维度上收集value。 torch.gather() 的必填也是最常用的参数有三个,下面引用官方解释: input (Tensor) – the source tensordim (int) – the axis along which to indexindex (Lo…

JumpServer发布web应用

项目背景: 由于防火墙密码安全没有达到审计要求,需要加固防火墙用户安全,通过JumpServer发布防火墙登录页面,提供远程访问 认证要求: 1、密码记忆多次 2、密码大小写 3、密码字符 4、密码数字 加固前密码策略&…

详解BOM编程

华子目录 BOM编程window对象常见的window对象的属性常见的window对象的方法注意 history对象history对象的属性history对象的方法 screen 对象navigator 对象属性方法 location对象属性方法示例 BOM编程 JavaScript本质是在浏览器中运行,所以JavaScript提供了BOM&a…

初学java

注意点 1.使用关键字long的时候,在其赋值的时候要在后面加上大写或者小写的l,个人推荐大写,小写与数‘1’难区分。 2.函数的名字要与文件夹的名字相同,并且文件夹后面一定要有.java。例如这个的名字是Main,函数就得用这个&#x…

docker学习笔记(四)制作镜像

目录 第1步:编辑Dockerfile 第2步:编辑requirements.txt文件 第3步:编辑app.py文件,我们的程序文件 第4步:生成镜像文件 第5步:使用镜像,启动容器 第6步: 启动redis容器、将容器…

短信群发平台:全功能SDK短信接口解决方案

SDK短信接口介绍: 为了满足不同企业的需求,我们提供了一站式SDK短信接口解决方案。这些接口不仅功能强大,而且易于集成到现有的企业系统中,以提供更加安全、高效和便捷的服务。 1.短信验证码接口:用于用户注册、密码修…

动态代理,案例理解

动态代理:代理就是被代理者没有能力或者不愿意去完成某件事情,需要找个人代替自己去完成这件事,动态代理就是用来对业务功能(方法)进行代理的。 步骤: 1.必须有接口,实现类要实现接口&#xf…

Windows下,基于Gradle用Docker发布自己的程序

方案1: windows下打包程序,然后,上传到linux下,生成docker镜像,然后执行。 首先: 由于是采用Gradle管理的项目,打包的时候需要执行build任务。执行完成后,再build\libs目录下应该…

Python——Fastapi管理平台(打包+优化)

目录 一、配置多个表 1、后端项目改造 2、导包报错——需要修改(2个地方) 3、启动后端(查看是否有问题) 4、配置前端 二、打包——成exe文件(不包含static文件)简单 1、后端修改 2、前端修改 3、运行打包命…

Hive SQL-DML-Load加载数据

Hive SQL-DML-Load加载数据 在 Hive 中,可以使用 SQL DML(Data Manipulation Language)语句中的 LOAD 命令来加载数据到表中。LOAD 命令用于将本地文件系统或 HDFS(Hadoop 分布式文件系统)中的数据加载到 Hive 表中。 …

【ITK配准】第九期 基匹配Metric的配准样例

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享ITK配准中的基匹配Metric的配准样例,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO 基匹配Me…

idea已配置的git仓库地址 更换新的Git仓库地址 教程

文章目录 目录 文章目录 更改流程 小结 概要更改流程技术细节小结 概要 先在idea控制台走一下流程 先将本地的git仓库删除 1. 查看当前远程仓库地址: 在终端或命令行中,导航到你的项目目录,并运行以下命令查看当前的远程仓库地址&#xff…

JMeter断言介绍

JMeter是一个功能强大的性能测试工具,它不仅可以模拟用户的行为,还可以对web应用程序的响应进行检测。其中断言就是JMeter中非常实用的功能之一。 断言是用于验证服务器响应是否正确的测试元素。它会检查服务器响应中的部分或全部内容,并在响…

正点原子Linux学习笔记(七)在 LCD 上显示 png 图片

在 LCD 上显示 png 图片 21.1 PNG 简介21.2 libpng 简介21.3 zlib 移植下载源码包编译源码安装目录下的文件夹介绍移植到开发板 21.4 libpng 移植下载源码包编译源码安装目录下的文件夹介绍移植到开发板 21.5 libpng 使用说明libpng 的数据结构创建和初始化 png_struct 对象创建…

cookie、session、token

cookie 纳入标准文档,标准浏览器需要遵守的协议之一,作为标准浏览器必须支持的。 WEB应用都是基于HTTP协议,标准的HTTP协议是无状态的。 什么是无状态? 不管是谁,不管是从哪个地方发起的请求。只要你的请求&#xff08…

openssl 生成证书步骤

本地测试RSA非对称加密功能时,需要用到签名证书。本文记录作者使用openssl本地生成证书的步骤,并没有深入研究openssl,难免会有错误,欢迎指出!!! 生成证书标准流程: 1、生成私钥&am…

【Linux】Linux——Centos7安装RabbitMQ

目录 安装包准备socaterlang 安装rabbitmq安装命令启动rabbitmq,两种方式查看rabbitmq 启动后的情况配置并开启网页插件关闭防火墙或开放端口测试登录问题配置web端访问账号密码和权限添加用户,后面两个参数分别是用户名和密码.添加权限修改用户角色再次…

单片机的中断

1. 中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置 当中央处理机CPU正在处理某件事的时候外界发生紧急事件请求,要CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来中断的地方,继续原…