一种基于Kubernetes的容器环境变量查看方法技术

技术编号:23314897 阅读:16 留言:0更新日期:2020-02-11 17:43
本发明专利技术公开了一种基于Kubernetes的容器环境变量查看方法、装置、设备以及计算可读存储介质,应用于Kubernetes,包括:接收并存储kubelet组件上传的节点中处于运行状态的容器的环境变量文件至指定文件目录;接收到用户发送的pod信息查询请求时,运行查询pod详情命令,返回与所述pod信息查询请求对应的目标pod信息的同时,查询指定文件目录下是否存在目标pod中容器的环境变量文件;若指定文件目录下存在所述目标pod中容器的环境变量文件,则将所述目标pod中容器的环境变量文件返回并显示至用户。本发明专利技术所提供的方法、装置、设备以及计算机可读存储介质,提高了使用k8s查询容器环境变量的速度。

A method of viewing container environment variables based on kubernetes

【技术实现步骤摘要】
一种基于Kubernetes的容器环境变量查看方法
本专利技术涉及容器与虚拟化
,特别是涉及一种基于Kubernetes的容器环境变量查看方法、装置、设备以及计算机可读存储介质。
技术介绍
容器技术与虚拟化技术已经成为一种被大家广泛认可的容器技术服务器资源共享方式,容器技术可以在按需构建容器技术操作系统实例的过程当中为系统管理员提供极大的灵活性。docker为一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。docker实际上为容器技术的一种实现方式,即容器引擎。docker的基本功能为创建,删除,配置,启动容器。这里每个容器都依赖一个镜像,即,docker使用镜像创建容器。且docker只能对应单个主机。Kubernetes(简称k8s)为Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。在k8s中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。k8s中的最小资源单位是pod,一个pod中可以有一个或多个容器。k8s可以在一个集群上管理容器,包括创建,删除,维护容器等,同时维护这些容器的网络等等。k8s目前创建容器时可以为容器添加新的环境变量,但是无法查询到容器中其他的环境变量。这在某些业务场景下就会引入其他的方式去查询容器中的环境变量,这就带了新的复杂度。例如查询容器所使用的gpu_id。使用传统方式为调用docker命令,即在业务层添加docker相关操作框架,增加了代码复杂度;此时服务器还需要打开dockerapi服务的端口,降低了安全性。综上所述可以看出,如何提高使用Kubernetes查询容器环境变量的速度是目前有待解决的问题。
技术实现思路
本专利技术的目的是提供一种基于Kubernetes的容器环境变量查看方法、装置、设备以及计算机可读存储介质,以解决现有技术中使用Kubernetes无法直接查询到容器的环境变量,且查询过程复杂、安全性低的问题。为解决上述技术问题,本专利技术提供一种基于Kubernetes的容器环境变量查看方法,应用于Kubernetes,包括:接收并存储kubelet组件上传的节点中处于运行状态的容器的环境变量文件至指定文件目录;接收到用户发送的pod信息查询请求时,运行查询pod详情命令,返回与所述pod信息查询请求对应的目标pod信息的同时,查询所述指定文件目录下是否存在所述目标pod中容器的环境变量文件;若所述指定文件目录下存在所述目标pod中容器的环境变量文件,则将所述目标pod中容器的环境变量文件返回并显示至所述用户。优选地,所述接收并存储kubelet组件上传的节点中处于运行状态的容器的环境变量文件至指定文件目录前包括:定时接收所述kubelet组件发送的所述节点上容器的运行状态信息;检测所述运行状态信息中是否存在容器的环境变量文件,若所述运行状态信息中存在所述容器的环境变量文件,则将所述容器的环境变量文件存储至所述指定文件目录。优选地,所述接收并存储kubelet组件上传的节点中处于运行状态的容器的环境变量文件至指定文件目录前包括:所述kubelet组件在定时扫描所述节点上容器的运行状态时,调用docker底层命令采集所述节点中处于运行状态的容器的环境变量文件,并将所述处于运行状态的容器的环境变量文件发送至所述Kubernetes。优选地,所述kubelet组件在定时扫描所述节点上容器的运行状态时,调用docker底层命令采集所述节点中处于运行状态的容器的环境变量文件包括:所述kubelet组件在扫描所述节点上每个容器的运行状态时,获取所述每个容器在所述节点上的ID,并在所述节点上运行docker底层命令;若运行报错,则所述kubelet组件得到操作系统的stdout为空的返回信息;若运行未报错,则所述kubelet组件得到所述操作系统的stdout中所述处于运行状态的容器的环境变量文件。优选地,所述将所述处于运行状态的容器的环境变量文件发送至所述Kubernetes后还包括:所述kubelet组件对所述指定文件目录下的环境变量文件对应的容器状态进行检测;当检测到当前环境变量文件对应的容器已被删除或不处于运行状态时,所述kubelet组件删除所述当前环境变量文件。本专利技术还提供了一种基于Kubernetes的容器环境变量查看装置,应用于Kubernetes,包括:存储模块,用于接收并存储kubelet组件上传的节点中处于运行状态的容器的环境变量文件至指定文件目录;查询模块,用于接收到用户发送的pod信息查询请求时,运行查询pod详情命令,返回与所述pod信息查询请求对应的目标pod信息的同时,查询所述指定文件目录下是否存在所述目标pod中容器的环境变量文件;返回模块,用于若所述指定文件目录下存在所述目标pod中容器的环境变量文件,则将所述目标pod中容器的环境变量文件返回并显示至所述用户。优选地,还包括:接收模块,用于在所述存储模块执行所述接收并存储kubelet组件上传的节点中处于运行状态的容器的环境变量文件至指定文件目录的步骤之前,定时接收所述kubelet组件发送的所述节点上容器的运行状态信息;检测模块,用于检测所述运行状态信息中是否存在容器的环境变量文件若所述运行状态信息中存在所述容器的环境变量文件,则将所述容器的环境变量文件存储至所述指定文件目录。优选地,还包括:所述kubelet组件的扫描模块,用于在所述存储模块执行所述接收并存储kubelet组件上传的节点中处于运行状态的容器的环境变量文件至指定文件目录的步骤之前,在定时扫描所述节点上容器的运行状态时,调用docker底层命令采集所述节点中处于运行状态的容器的环境变量文件,并将所述处于运行状态的容器的环境变量文件发送至所述Kubernetes。本专利技术还提供了一种基于Kubernetes的容器环境变量查看设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述一种基于Kubernetes的容器环境变量查看方法的步骤。本专利技术还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种基于Kubernetes的容器环境变量查看方法的步骤。本专利技术所提供的基于Kubernetes的容器环境变量查看方法,利用Kubernetes的kubelet组件采集节点中处于运行状态的容器的环境变量文件,并将所述处于运行状态的容器的环境变量文件上传至所述本文档来自技高网
...

【技术保护点】
1.一种基于Kubernetes的容器环境变量查看方法,其特征在于,应用于Kubernetes,包括:/n接收并存储kubelet组件上传的节点中处于运行状态的容器的环境变量文件至指定文件目录;/n接收到用户发送的pod信息查询请求时,运行查询pod详情命令,返回与所述pod信息查询请求对应的目标pod信息的同时,查询所述指定文件目录下是否存在所述目标pod中容器的环境变量文件;/n若所述指定文件目录下存在所述目标pod中容器的环境变量文件,则将所述目标pod中容器的环境变量文件返回并显示至所述用户。/n

【技术特征摘要】
1.一种基于Kubernetes的容器环境变量查看方法,其特征在于,应用于Kubernetes,包括:
接收并存储kubelet组件上传的节点中处于运行状态的容器的环境变量文件至指定文件目录;
接收到用户发送的pod信息查询请求时,运行查询pod详情命令,返回与所述pod信息查询请求对应的目标pod信息的同时,查询所述指定文件目录下是否存在所述目标pod中容器的环境变量文件;
若所述指定文件目录下存在所述目标pod中容器的环境变量文件,则将所述目标pod中容器的环境变量文件返回并显示至所述用户。


2.如权利要求1所述的方法,其特征在于,所述接收并存储kubelet组件上传的节点中处于运行状态的容器的环境变量文件至指定文件目录前包括:
定时接收所述kubelet组件发送的所述节点上容器的运行状态信息;
检测所述运行状态信息中是否存在容器的环境变量文件,若所述运行状态信息中存在所述容器的环境变量文件,则将所述容器的环境变量文件存储至所述指定文件目录。


3.如权利要求1所述的方法,其特征在于,所述接收并存储kubelet组件上传的节点中处于运行状态的容器的环境变量文件至指定文件目录前包括:
所述kubelet组件在定时扫描所述节点上容器的运行状态时,调用docker底层命令采集所述节点中处于运行状态的容器的环境变量文件,并将所述处于运行状态的容器的环境变量文件发送至所述Kubernetes。


4.如权利要求3所述的方法,其特征在于,所述kubelet组件在定时扫描所述节点上容器的运行状态时,调用docker底层命令采集所述节点中处于运行状态的容器的环境变量文件包括:
所述kubelet组件在扫描所述节点上每个容器的运行状态时,获取所述每个容器在所述节点上的ID,并在所述节点上运行docker底层命令;
若运行报错,则所述kubelet组件得到操作系统的stdout为空的返回信息;
若运行未报错,则所述kubelet组件得到所述操作系统的stdout中所述处于运行状态的容器的环境变量文件。


5.如权利要求4所述的方法,其特征在于,所述将所述处于运行状态的容器的环境变量文件发送至所述Kubernetes后还包括:
所述kubelet组件对所述指定文件目录下的环境变量文件对应的容器状态进行检...

【专利技术属性】
技术研发人员:何翔龙
申请(专利权)人:广东浪潮大数据研究有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1