CN115185628A - 一种基于容器实例实现集群虚拟节点的方法及系统 - Google Patents

一种基于容器实例实现集群虚拟节点的方法及系统 Download PDF

Info

Publication number
CN115185628A
CN115185628A CN202210506955.9A CN202210506955A CN115185628A CN 115185628 A CN115185628 A CN 115185628A CN 202210506955 A CN202210506955 A CN 202210506955A CN 115185628 A CN115185628 A CN 115185628A
Authority
CN
China
Prior art keywords
pod
node
virtual
container
virtual node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210506955.9A
Other languages
English (en)
Inventor
张辉
江燕
高传集
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN202210506955.9A priority Critical patent/CN115185628A/zh
Publication of CN115185628A publication Critical patent/CN115185628A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于容器实例实现集群虚拟节点的方法及系统,属于容器实例领域;所述的方法通过virtual kubelet创建虚拟节点,监听到pod的操作调用容器实例服务对应方法,创建svc从而实现外部访问容器实例上的pod;本发明方法基于容器实例的Kubernetes的虚拟节点与真实的Kubernetes节点相比虽然不支持部分功能,但是实现了简单高效的扩缩容,同时pod之间进行了隔离,安全性提升了,也没有影响pod之间的相互访问。

Description

一种基于容器实例实现集群虚拟节点的方法及系统
技术领域
本发明公开一种基于容器实例实现集群虚拟节点的方法及系统,涉及容器实例技术领域。
背景技术
Virtual Kubelet是一个开源的Kubernetes kubelet实现,它伪装成kubelet,目的是将Kubernetes连接到其他API,这允许节点得到其他服务的支持。Virtual Kubelet的主要场景是将Kubernetes API扩展到无服务器的容器平台。Virtual Kubelet具有可插拔的体系结构和直接使用Kubernetes原语,使其更易于构建。Virtual Kubelet提供一个库,开发者可以在项目中使用这个库来构建自定义Kubernetes节点代理。
Virtual Kubelet的工作方式如图2所示,
Virtual Kubelet能够实现以下的功能:
创建、删除、更新pod
容器的日志、exec命令、监控
获取单个或者多个pod的状态
节点地址,节点容量,节点守护程序端点
管理操作系统
自定义虚拟网络
容器实例是敏捷安全的Serverless容器运行服务。无需管理底层服务器,也无需关心运行过程中的容量规划,只需要提供打包好的Docker镜像,即可运行容器。
但现在的容器创建过程较为复杂,同事规划操作较多,节点管理损耗工时,运营成本较高;
现发明一种基于容器实例实现集群虚拟节点的方法及系统,以解决上述问题。
发明内容
本发明针对现有技术的问题,提供一种基于容器实例实现集群虚拟节点的方法及系统,所采用的技术方案为:一种基于容器实例实现集群虚拟节点的方法,所述的方法通过virtual kubelet创建虚拟节点,监听到pod的操作调用容器实例服务对应方法,创建svc从而实现外部访问容器实例上的pod。
所述方法具体步骤如下:
S1在集群的master节点部署virtual kubelet的镜像,在集群中创建虚拟节点;
S2虚拟节点创建成功后,使用kubectl get node--show-labels查看虚拟节点的运行状态和对应的标签;
S3集群自动将pod调度到虚拟节点上创建;
S4在虚拟节点上查询pod的真实ip对容器实例进行访问。
所述S3集群自动将pod调度到虚拟节点上创建:
虚拟节点调用容器实例的服务,在容器实例服务根据集群的网络信息和pod的镜像创建对应的容器实例,创建成功后返回pod的名称和ip,同时将虚拟节点上的pod改为运行中的状态,同时修改pod的名称和ip。
所述S4在虚拟节点上查询pod的真实ip对容器实例进行访问:
创建svc,svc通过标签选择到虚拟节点上的pod,虚拟节点上pod的ip与容器实例里pod的ip,这样外部可以直接通过指定端口访问到容器实例里的pod。
一种基于容器实例实现集群虚拟节点的系统,所述的系统通过virtual kubelet创建虚拟节点,监听到pod的操作调用容器实例服务对应方法,创建svc从而实现外部访问容器实例上的pod。
所述系统具体包括节点创建模块、节点处理模块、节点调度模块和容器访问模块:
节点创建模块:在集群的master节点部署virtual kubelet的镜像,在集群中创建虚拟节点;
节点处理模块:虚拟节点创建成功后,使用kubectl get node--show-labels查看虚拟节点的运行状态和对应的标签;
节点调度模块:集群自动将pod调度到虚拟节点上创建;
容器访问模块:在虚拟节点上查询pod的真实ip对容器实例进行访问。
所述节点调度模块集群自动将pod调度到虚拟节点上创建:
虚拟节点调用容器实例的服务,在容器实例服务根据集群的网络信息和pod的镜像创建对应的容器实例,创建成功后返回pod的名称和ip,同时将虚拟节点上的pod改为运行中的状态,同时修改pod的名称和ip。
所述容器访问模块在虚拟节点上查询pod的真实ip对容器实例进行访问:
创建svc,svc通过标签选择到虚拟节点上的pod,虚拟节点上pod的ip与容器实例里pod的ip,这样外部可以直接通过指定端口访问到容器实例里的pod。
本发明的有益效果为:本发明方法基于容器实例的Kubernetes的虚拟节点与真实的Kubernetes节点相比虽然不支持部分功能,但是实现了简单高效的扩缩容,同时pod之间进行了隔离,安全性提升了,也没有影响pod之间的相互访问;
本发明方法能够按需创建pod,减少容量规划的操作,无需管理节点,降低运维的成本,增强pod的安全性,降低宕机率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明方法实施例的流程图;图2是Virtual Kubelet的工作方式示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
实施例一:
一种基于容器实例实现集群虚拟节点的方法,所述的方法通过virtual kubelet创建虚拟节点,监听到pod的操作调用容器实例服务对应方法,创建svc从而实现外部访问容器实例上的pod;
进一步的,所述方法具体步骤如下:
S1在集群的master节点部署virtual kubelet的镜像,在集群中创建虚拟节点;
在Virtual kubelet中指定集群的地址和网络信息,实现提供的一系列kubelet的provider接口,实现虚拟节点与集群的对接;
集群kubeconfig文件
Virtual kubelet需要通过kubeconfig文件来访问集群,使用如下命令在/root/下创建config文件;
Kubectl config set-cluster kubernetes--certificate-authority=/etc/kubernetes/ssl/ca.pem--kubeconfig=/root/config.conf--server=https://集群ip:6443
虚拟节点配置
Virtual kubele根据环境变量KUBECONFIG中的kubeconfig文件地址,获取集群的ip和验证方式连接到集群,在集群中中创建虚拟节点;
虚拟节点跟真实节点一样有容量的配置,方便集群进行pod的调度,在节点启动时指定节点容量的配置文件,将节点配置的文件放在启动时指定,方便对节点的容量进行调整,节点的配置入下所示:
Figure BDA0003637771580000051
集群每个节点都有internal-ip,kubernetes通过internal-ip调用node的apiServer获取node的状态,虚拟节点也需要internal-ip让集群获取状态,virtualkubelet通过环境变量VKUBELET_POD_IP的值设置internal-ip;
调用容器实例服务
Virtual kubelet在provider中提供一系列接口,在pod被创建、删除、更新等操作时会调用这些方法;
在方法的实现类中调用容器实例的接口,将在虚拟节点对pod的操作映射到容器实例中,容器实例返回对pod操作的结果,保持虚拟节点和容器实例中pod的状态一致,在集群查询pod时获取到数据的准确性;
容器实例服务存在多种认证方式保证验证调用服务的请求方是否合规,在实现的porvider接口中使用AK/SK的方式来调用容器实例的服务,在请求被调用后,容器实例将使用AK对应的相同的SK和同样的认证机制生成认证字符串,并与virtual kubelet发出的请求中包含的认证字符串进行比对;
容器实例创建pod时需要指定vpc,为了保证调度到虚拟节点上的pod能够被访问到,在provider接口实现类调用容器实例服务时将集群所在的网络信息传到容器实例服务,容器实例根据获取到网络信息创建pod,pod创建完成后容器实例将pod的名称、ip等信息返回虚拟节点,虚拟节点创建相同信息的pod;
S2虚拟节点创建成功后,使用kubectl get node--show-labels查看虚拟节点的运行状态和对应的标签;在pod的yaml增加上节点的标签选择器
nodeSelector:
kubernetes.io/hostname:virtual-kubelet
S3集群自动将pod调度到虚拟节点上创建;
S4在虚拟节点上查询pod的真实ip对容器实例进行访问;
基于容器实例的Kubernetes的虚拟节点与真实的Kubernetes节点相比虽然不支持部分功能,但是实现了简单高效的扩缩容,同时pod之间进行了隔离,安全性提升了,也没有影响pod之间的相互访问;
进一步的,所述S3集群自动将pod调度到虚拟节点上创建:
虚拟节点调用容器实例的服务,在容器实例服务根据集群的网络信息和pod的镜像创建对应的容器实例,创建成功后返回pod的名称和ip,同时将虚拟节点上的pod改为运行中的状态,同时修改pod的名称和ip;
要对虚拟节点上的pod进行删除更新等操作时,跟真实的pod一样使用kubelet进行操作,虚拟节点接受到对pod进行各种操作后,调用相应的容器实例服务接口,容器实例操作完成后虚拟节点更新pod的状态;
再进一步的,所述S4在虚拟节点上查询pod的真实ip对容器实例进行访问:
pod真实的ip在虚拟节点上能够查询到,集群跟容器实例创建的pod在一个子网之内,集群上的其他pod可以用这个ip访问容器实例里的pod;
创建svc,svc通过标签选择到虚拟节点上的pod,虚拟节点上pod的ip与容器实例里pod的ip,这样外部可以直接通过指定端口访问到容器实例里的pod。
实施例二:
一种基于容器实例实现集群虚拟节点的系统,所述的系统通过virtual kubelet创建虚拟节点,监听到pod的操作调用容器实例服务对应方法,创建svc从而实现外部访问容器实例上的pod;
进一步的,所述系统具体包括节点创建模块、节点处理模块、节点调度模块和容器访问模块:
节点创建模块:在集群的master节点部署virtual kubelet的镜像,在集群中创建虚拟节点;
节点处理模块:虚拟节点创建成功后,使用kubectl get node--show-labels查看虚拟节点的运行状态和对应的标签;
节点调度模块:集群自动将pod调度到虚拟节点上创建;
容器访问模块:在虚拟节点上查询pod的真实ip对容器实例进行访问;
进一步的,所述节点调度模块集群自动将pod调度到虚拟节点上创建:
虚拟节点调用容器实例的服务,在容器实例服务根据集群的网络信息和pod的镜像创建对应的容器实例,创建成功后返回pod的名称和ip,同时将虚拟节点上的pod改为运行中的状态,同时修改pod的名称和ip;
再进一步的,所述容器访问模块在虚拟节点上查询pod的真实ip对容器实例进行访问:
创建svc,svc通过标签选择到虚拟节点上的pod,虚拟节点上pod的ip与容器实例里pod的ip,这样外部可以直接通过指定端口访问到容器实例里的pod。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种基于容器实例实现集群虚拟节点的方法,其特征是所述的方法通过virtualkubelet创建虚拟节点,监听到pod的操作调用容器实例服务对应方法,创建svc从而实现外部访问容器实例上的pod。
2.根据权利要求1所述的方法,其特征是所述方法具体步骤如下:
S1在集群的master节点部署virtual kubelet的镜像,在集群中创建虚拟节点;
S2虚拟节点创建成功后,使用kubectl get node--show-labels查看虚拟节点的运行状态和对应的标签;
S3集群自动将pod调度到虚拟节点上创建;
S4在虚拟节点上查询pod的真实ip对容器实例进行访问。
3.根据权利要求2所述的方法,其特征是所述S3集群自动将pod调度到虚拟节点上创建:
虚拟节点调用容器实例的服务,在容器实例服务根据集群的网络信息和pod的镜像创建对应的容器实例,创建成功后返回pod的名称和ip,同时将虚拟节点上的pod改为运行中的状态,同时修改pod的名称和ip。
4.根据权利要求3所述方法,其特征是所述S4在虚拟节点上查询pod的真实ip对容器实例进行访问:
创建svc,svc通过标签选择到虚拟节点上的pod,虚拟节点上pod的ip与容器实例里pod的ip,这样外部可以直接通过指定端口访问到容器实例里的pod。
5.一种基于容器实例实现集群虚拟节点的系统,其特征是所述的系统通过virtualkubelet创建虚拟节点,监听到pod的操作调用容器实例服务对应方法,创建svc从而实现外部访问容器实例上的pod。
6.根据权利要求5所述的系统,其特征是所述系统具体包括节点创建模块、节点处理模块、节点调度模块和容器访问模块:
节点创建模块:在集群的master节点部署virtual kubelet的镜像,在集群中创建虚拟节点;
节点处理模块:虚拟节点创建成功后,使用kubectl get node--show-labels查看虚拟节点的运行状态和对应的标签;
节点调度模块:集群自动将pod调度到虚拟节点上创建;
容器访问模块:在虚拟节点上查询pod的真实ip对容器实例进行访问。
7.根据权利要求6所述的系统,其特征是所述节点调度模块集群自动将pod调度到虚拟节点上创建:
虚拟节点调用容器实例的服务,在容器实例服务根据集群的网络信息和pod的镜像创建对应的容器实例,创建成功后返回pod的名称和ip,同时将虚拟节点上的pod改为运行中的状态,同时修改pod的名称和ip。
8.根据权利要求7所述的系统,其特征是所述容器访问模块在虚拟节点上查询pod的真实ip对容器实例进行访问:
创建svc,svc通过标签选择到虚拟节点上的pod,虚拟节点上pod的ip与容器实例里pod的ip,这样外部可以直接通过指定端口访问到容器实例里的pod。
CN202210506955.9A 2022-05-11 2022-05-11 一种基于容器实例实现集群虚拟节点的方法及系统 Pending CN115185628A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210506955.9A CN115185628A (zh) 2022-05-11 2022-05-11 一种基于容器实例实现集群虚拟节点的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210506955.9A CN115185628A (zh) 2022-05-11 2022-05-11 一种基于容器实例实现集群虚拟节点的方法及系统

Publications (1)

Publication Number Publication Date
CN115185628A true CN115185628A (zh) 2022-10-14

Family

ID=83513070

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210506955.9A Pending CN115185628A (zh) 2022-05-11 2022-05-11 一种基于容器实例实现集群虚拟节点的方法及系统

Country Status (1)

Country Link
CN (1) CN115185628A (zh)

Similar Documents

Publication Publication Date Title
US10778798B2 (en) Remote service access in a container management system
US8250570B2 (en) Automated provisioning framework for internet site servers
US7124289B1 (en) Automated provisioning framework for internet site servers
CN108449197B (zh) 一种基于软件定义网络的多云环境网络构建方法
US7152109B2 (en) Automated provisioning of computing networks according to customer accounts using a network database data model
WO2019210580A1 (zh) 访问请求处理方法、装置、计算机设备和存储介质
US9847903B2 (en) Method and apparatus for configuring a communication system
CN111880902A (zh) 一种pod创建方法、装置、设备及可读存储介质
CN113660316B (zh) 基于容器云平台的网络资源自适应配置方法、系统及介质
CN114995841B (zh) 一种实现数据库云服务升级的方法和系统
US8589381B2 (en) Resource management program, resource management process, and resource management apparatus
CN111770130B (zh) 一种区块链分布式组网中软硬件资源高效协同复用的方法
CN111582824B (zh) 云资源同步方法、装置、设备及存储介质
CN115048205A (zh) Etl调度平台及其部署方法、计算机可读存储介质
CN110636127B (zh) 一种各信息数据间的通信处理方法及系统
CN109525590A (zh) 数据包的传输方法及装置
CN112351106B (zh) 一种含事件网格的服务网格平台及其通信方法
CN115037757B (zh) 一种多集群服务管理系统
CN115185628A (zh) 一种基于容器实例实现集群虚拟节点的方法及系统
CN113824801B (zh) 一种智能融合终端统一接入管理组件系统
CN112637037B (zh) 跨地域容器通讯系统、方法、存储介质及计算机设备
WO2002039257A2 (en) Automated provisioning framework for internet site servers
CN114338763A (zh) 微服务调用方法、装置、服务器与计算机可读存储介质
CN114615268A (zh) 基于Kubernetes集群的服务网络、监控节点、容器节点及设备
CN116069481B (zh) 一种共享gpu资源的容器调度系统及调度方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination