本发明属于计算机运维,具体涉及一种应用于k8s的tui应用管理操作方法。
背景技术:
1、kubernetes,通常简称为k8s,是一个开源的容器编排平台,旨在自动化部署、扩展和管理容器化应用程序。其提供了一种简便的方式来部署和运行分布式系统,确保应用程序的高可用性和可扩展性。通过 kubernetes,开发人员和运维团队可以更加高效地管理容器化的工作负载,从而提高整体的开发和运维效率。kubernetes 的核心功能包括自动部署、扩展和负载均衡容器化应用程序。通过定义和管理容器的生命周期来实现这些功能,确保应用程序在集群中的各个节点上高效运行。
2、kubernetes 的架构设计非常灵活,支持多种不同的部署环境,包括物理机、虚拟机和云平台。它通过一组声明式的 api 来管理集群资源,使得用户可以轻松地定义和修改应用程序的状态。kubernetes 还提供了丰富的插件和扩展机制,允许用户根据自己的需求定制和扩展功能。
3、在现有的相关技术领域中,kubernetes 采用了一种故障排除方式来确保系统的稳定性和可靠性。这种故障排查方式主要通过以下几个方面来实现:
4、首先,kubernetes 利用其强大的调度机制,将容器分布在不同的节点上,从而避免单点故障。当某个节点发生故障时,系统会自动将该节点上的容器迁移到其他健康的节点上,确保服务的持续运行。
5、其次,kubernetes 通过健康检查机制来实现故障排除。每个容器都会定期进行健康检查,如果某个容器无法通过健康检查,系统会自动将其重启或重新调度到其他节点上。这样可以有效地排除因容器内部故障导致的服务中断问题。
6、此外,kubernetes 还支持滚动更新和回滚功能,进一步增强了系统的稳定性和可靠性。在进行应用更新时,kubernetes 会逐步替换旧版本的容器,确保新旧版本之间的平滑过渡。如果在更新过程中出现问题,系统可以快速回滚到旧版本,从而避免因更新导致的故障。
7、最后,kubernetes 还提供了丰富的监控和日志功能,帮助管理员及时发现和排除故障。通过实时监控各个容器和节点的状态,管理员可以快速定位问题并采取相应的措施,从而确保系统的稳定运行。
8、kubernetes 通过多种故障排查方式,如节点调度、健康检查、滚动更新和回滚以及监控和日志功能,确保了系统的高可用性和稳定性。这些机制共同作用,使得kubernetes 成为一个强大且可靠的容器编排平台。
9、在当前的行业现状中,排障人员面临着诸多挑战。首先,他们必须对整个系统有深入的理解和熟悉,这不仅仅包括系统的架构和组件,还包括各个部分之间的相互作用和依赖关系。其次,排障人员还需要具备解读日志文件的能力,这意味着他们必须能够从大量的日志信息中提取出关键信息,以便准确地识别问题所在。这要求排障人员具备较高的技术水平和丰富的经验,因为他们必须能够理解系统日志中的各种信息,包括错误代码、警告信息和系统状态等。
10、尽管排障的基本思路通常是固定的,但在实际操作中,仍然需要人工一步一步地进行检查和处理。这意味着排障工作需要耐心和细致,每一步都不能马虎,以确保问题能够被彻底解决,避免遗漏或错误。排障人员需要仔细分析日志文件,检查系统配置,验证网络连接,甚至可能需要与开发人员合作,以确保问题的根本原因被找到并解决。
11、现有的操作方式至少具有如下不足之处:
12、1. 排障过程中需要投入大量的人力资源。由于问题的复杂性和多样性,有时候很容易忽略一些细节。如果问题早先已经交由其他人处理过,再次排查时可能需要重新梳理一遍,这无疑增加了工作量和时间成本。
13、2. 在处理问题时,排障人员需要输入大量的命令,并且对日志进行详细的分析。很多时候,这些命令和日志信息非常复杂,需要其他人员进行配合和支持。这不仅增加了沟通成本,还可能导致信息传递不准确,从而影响排障效率和准确性。
14、3. 命令不容易记忆,很多时候不能灵活运用。由于系统命令繁多且复杂,排障人员在实际操作中可能会遇到记忆困难,导致无法迅速找到合适的命令来解决问题。这种情况会增加排障时间,降低工作效率,甚至可能导致问题无法及时解决,影响整个系统的稳定性和可靠性。
技术实现思路
1、鉴于目前针对k8s故障排查的方法存在缺陷,本发明提出了一种k8s的tui应用管理排障工具操作方法,旨在解决现有技术中排查故障时需耗费大量人力资源、排查效率低下以及准确性不足等问题。本发明提供了一种专门的故障排查工具供运维人员使用,该工具具备友好的操作界面,适用范围广泛,便于相关人员迅速进行故障排查。
2、为实现上述目的,本发明采用的技术方案为:一种应用于k8s的tui应用管理操作方法,至少包括如下步骤:
3、步骤s1、启动tui应用管理软件,扫描tools目录;
4、步骤s2、遍历工具文件读取配置信息,获取k8s相关数据;
5、步骤s3、获取到相关数据的信息后进行tui界面的展示;
6、步骤s4、用户在展示的tui界面上输入操作指令;
7、步骤s5、执行工具文件。
8、进一步的,在步骤s2中获取相关数据的操作方法至少包括如下:
9、s21、tui应用管理扫描同级目录的 tools下的所有工具文件,工具文件会提供函数让tui应用管理软件调用,以获取工具文件相关的数据;
10、s22、执行每个工具文件的baseinfo函数,获取到工具名称,工具描述,具体如何使用的信息存入到tools变量中;
11、s23、获取到命名空间,存储到namespace变量中;
12、s24、如果有default命名空间,设置current_ns当前选中的命名空间变量值为default,否则设置namespace中第一个值作为 current_ns的值
13、s25、根据命名空间获取到pod信息,存入到pods 变量中。
14、进一步的,在步骤s3中,tui应用管理中展示的内容至少包括四项内容;
15、最底部的工具栏,用来显示当前的命名空间、工具,以及使用帮助和进行返回上一步的操作;
16、左边区域为工具选择区域,里面展示了扫描到的所有工具的名称;
17、中间服务列表区域展示的命名空间下的所有pod的信息;
18、右边区域是一个工作区,可以展示帮助信息,工具执行的过程,执行过程的输入,以及执行的状态。
19、进一步的,在步骤s4中,用户在展示的tui界面上输入操作指令至少包括如下的任一种操作方式:
20、第一种操作方式:用户按下“n”键,会弹出命名空间的选择;在选择界面通过上下箭头进行选择,通过“enter”键进行确认,“esc”键进行取消;确认后会更改current_ns值以及界面上的ns对应的值,同时会获取到当前命名空间的所有pod信息存入到pods 变量中,并刷新中间部分服务列表;
21、第二种操作方式:按下“t”键,会激活左边tools区域,在这个区域可以输入工具文件前面的数字进行选择对应的工具;
22、第三种操作方式:按下“h”键会同样会激活左边tools区域,在选择工具后会在右边工作区区域中显示之前获取的关于工具的描述信息以及使用说明;
23、第四种操作方式:可以按下“b”键返回上一个区域,其和“esc”一样的功能;返回功能会返回上一个工作区域,直到进入时的界面状态;
24、第五种操作方式:tools区域的操作,如果是按下“h”帮助进来的,在按下工具前面的数字按键后会直接在右边的工作区域中显示工具的描述信息,帮助信息;
25、如果是通过“t”工具选择进来的,会进行服务的选择;工具大于10个之后会显示分页信息,通过“p”上一页和“n”键下一页进行tools列表的切换。
26、进一步的,服务列表区域操作同tools区域,按下指定服务前面的数字键之后会调用工具的getstatus函数获取状态,更新工作区域的状态信息;接着会执行invoke函数,把当前的命名空间和服务信息传给tui应用管理软件。
27、进一步的,tui应用管理软件中工具的更新实现方式:
28、在程序tools目录新建一个不同名的文件,并实现下面的方法:
29、baseinfo函数,返回一个map类型的数据,其中title存储了工具的名称,desc存储了软件的简单描述信息,help存储了软件的使用帮助;所述baseinfo函数用于获取到工具文件的信息至少包括名称、简单描述、使用说明以及是否需要选择pod中的一种或者多种信息;
30、invoke函数,选择服务信息后会被软件调用,会传入当前的命名空间以及服务信息;
31、getstatus函数在调用invoke函数之间会被调用一次,会更新工作区的状态信息;getstatus函数是执行结果的一个简单描述或者编码,方便定位;在invoke函数执行完毕后也会调用一次,同样更新工作区的状态信息;
32、getns函数,用来获取当前的命名空间,值会在invoke函数中通过参数传入;
33、getpodname函数,可以获取当前选择的pod,用来获取当前正在执行的pod的名称,值会在invoke函数中通过参数传入。
34、进一步的,在tui应用管理软件中实现更换证书的方法:
35、启动软件,扫描 tools 目录下的所有工具文件,遍历工具文件读取配置信息,获取k8s相关数据;
36、软件获取到所有的命名空间;
37、软件通过获取到默认命名空间的所有pod 信息;
38、软件通过各种文本以及特殊符号组成一个ui界面,获取到相关数据的信息后进行tui界面的展示;
39、默认情况下,在tui界面按n会出现一个选择命名空间的tui,选择后回车键下面的ns会进行切换;按t把tools 区域激活,标题文字会变成白色,背景变成灰色,输入数字后下方tool会显示工具的名称;按h键也可以激活tools区域,只不过后续功能会展示关于这个工具使用说明;按esc键可以返回到上一步操作,比如从主界面进入到工具的选择,按esc后会返回到主界面的功能;
40、按下t键,激活tools区域,然后按下工具文件前相对应的数字键,底部工具栏tool会显示为更换证书,此时就切换到了更换证书的工具;
41、由于更换证书是需要指定pod,接着会激活服务列表,然后按数字键选择响应的pod;
42、执行 tools/changecret.sh 的 invoke 函数;此函数会收到相关的信息,然后会出现一个选择证书位置和证书密码的框;
43、选择证书位置和输入密码后,通过tab键切换到 确定 按钮的地方,按下回车就会执行替换的操作,同时工作区的状态显示为处理中;
44、执行完毕后会把最终的结果工作区中,同时更新状态为完成。
45、进一步的,还包括工具的拓展功能,对于新功能/新工具的添加,用户将标准化的文件复制到同级目录中即可;采用模块化的扩展方式,用户无需进行复杂的配置或编程,进行工具的升级和维护,或者最新的功能/工具的添加;实现新功能的快速部署和应用。
46、本发明所采用的技术方案至少具备以下优点:目前市场上缺乏专为运维人员设计的工具;尚未发现针对kubernetes即k8s的工具采用文本界面(即tui界面);本发明的tui应用管理软件适用范围广泛,仅需具备shell操作能力(适用于云环境及未提供图形用户界面的系统或环境),即可享受友好的用户界面;具有较高的扩展性,仅需添加一个特定文件即可实现功能扩展,而不会干扰现有功能。
47、本发明中提供的技术方案还具有如下优点:
48、1. 通过将文本信息转化为图形界面的展示方式,可以极大地提升运维人员在进行问题排查时的效率和准确性。这种图形界面不仅直观地展示了问题的详细信息,还能够帮助运维人员快速定位问题的根源,从而有效地缩短问题解决的时间。
49、2. 在现有的技术领域中,对于故障点的定位通常是一个复杂且繁琐的过程,这不仅需要维护人员具备深厚的专业技能,还需要丰富的实践经验。然而,本发明通过引入自动化脚本,极大地简化了这一过程。现在,运维人员只需选择相应的工具,即可轻松地定位到常见问题,无需再进行繁琐的手动操作,大大降低了对专业技能和经验的要求。
50、3. 一旦这些工具被编写完成,它们就可以在不同的环境中重复使用,无需进行重新编写。这意味着运维团队可以节省大量的时间和精力,因为他们不需要为每一个新的环境重新开发和调试工具。这种可重复使用的特性,极大地提高了工作效率,同时也降低了维护成本。
51、4. 该工具的设计初衷是为了让那些没有深厚技术背景的用户也能够轻松上手。通过简单的学习和实践,即使是初学者也能够快速掌握工具的使用方法,并有效地进行问题排查和解决。这种易用性使得更多的人员能够参与到问题解决的过程中,从而提高了整个团队的协作效率。
52、5. 新功能的添加过程也非常简便,用户只需将标准化的文件复制到指定的目录中即可。这种模块化的扩展方式,不仅使得工具的升级和维护变得更加容易,还能够确保新功能的快速部署和应用。用户无需进行复杂的配置或编程,就能够享受到最新的功能和改进,极大地提升了工具的灵活性和适应性。
1.一种应用于k8s的tui应用管理操作方法,其特征在于:至少包括如下步骤:
2.根据权利要求1所述的方法,其特征在于:在步骤s2中获取相关数据的操作方法至少包括如下:
3.根据权利要求2所述的方法,其特征在于:在步骤s3中,tui应用管理中展示的内容至少包括四项内容;
4.根据权利要求3所述的方法,其特征在于:在步骤s4中,用户在展示的tui界面上输入操作指令至少包括如下的任一种操作方式:
5.根据权利要求4所述的方式,其特征在于:服务列表区域操作同tools区域,按下指定服务前面的数字键之后会调用工具的getstatus函数获取状态,更新工作区域的状态信息;接着会执行invoke函数,把当前的命名空间和服务信息传给tui应用管理软件。
6.根据权利要求1至5任一项所述的方法,其特征在于:tui应用管理软件中工具的更新实现方式:
7.根据权利要求6所述的方法,其特征在于:在tui应用管理软件中实现更换证书的方法:
8.根据权利要求1至5任一项或者权利要求7所述的方法,其特征在于:还包括工具的拓展功能,对于新功能/新工具的添加,用户将标准化的文件复制到同级目录中即可;采用模块化的扩展方式,用户无需进行复杂的配置或编程,进行工具的升级和维护,或者最新的功能/工具的添加;实现新功能的快速部署和应用。