CN115150416B - 一种Kubernetes集群高效访问方法及设备 - Google Patents

一种Kubernetes集群高效访问方法及设备 Download PDF

Info

Publication number
CN115150416B
CN115150416B CN202210766042.0A CN202210766042A CN115150416B CN 115150416 B CN115150416 B CN 115150416B CN 202210766042 A CN202210766042 A CN 202210766042A CN 115150416 B CN115150416 B CN 115150416B
Authority
CN
China
Prior art keywords
cluster
kubernetes cluster
kubernetes
client
configuration file
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.)
Active
Application number
CN202210766042.0A
Other languages
English (en)
Other versions
CN115150416A (zh
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 General Software Co Ltd
Original Assignee
Inspur General Software 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 General Software Co Ltd filed Critical Inspur General Software Co Ltd
Priority to CN202210766042.0A priority Critical patent/CN115150416B/zh
Publication of CN115150416A publication Critical patent/CN115150416A/zh
Application granted granted Critical
Publication of CN115150416B publication Critical patent/CN115150416B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种Kubernetes集群高效访问方法及设备,用以解决现有的集群运维管理方法对于高并发、多实例、多集群的场景运维效率偏低的技术问题。方法包括:将Kubernetes集群的配置文件导入管理系统,以实现所述Kubernetes集群的纳管导入;确定访问场景查询配置文件,并将查询到的配置文件放入分布式缓存,以及构造Kubernetes集群的客户端并放入本地缓存;发布客户端变更通知,以便于各实例接收所述客户端变更通知,并更新本地缓存的客户端;确定Kubernetes集群是否发生配置变更,若是,则发布配置变更通知,以便于各实例进行本地缓存的同步变更;在所述本地缓存中获取所述Kubernetes集群的客户端,以实现对所述Kubernetes集群的资源管理。

Description

一种Kubernetes集群高效访问方法及设备
技术领域
本申请涉及云计算技术领域,尤其涉及一种Kubernetes集群高效访问方法及设备。
背景技术
在云计算已逐步发展成熟的时期,云原生由于具备弹性扩展和响应、服务自治和故障自愈、跨平台及服务的规模复制的能力特性,成为了充分发挥云效能的最佳实践路径。按照统计,生产环境的云原生应用增长超过200%,Gartner报告截至到2022年,75%的全球企业将使用云原生的容器化应用。由此可见,未来几年云原生的发展将会出现爆发式增长,云原生将引领下一个黄金云时代。
Kubernetes作为云计算领域的既定标准,随着其广泛的应用,对运维也提出了新的需求。传统集群运维管理方法,更多的适用于并发量不高的场景,对于高并发、多实例、多集群的场景,其运维效率偏低。
发明内容
本申请实施例提供了一种Kubernetes集群高效访问方法及设备,用以解决现有的集群运维管理方法对于高并发、多实例、多集群的场景运维效率偏低的技术问题。
一方面,本申请实施例提供了一种Kubernetes集群高效访问方法,所述方法包括:将Kubernetes集群的配置文件导入管理系统,以实现所述Kubernetes集群的纳管导入;确定访问场景,并基于所述访问场景查询所述配置文件,并将查询到的所述配置文件放入分布式缓存,以及,构造所述Kubernetes集群的客户端,并将所述客户端放入本地缓存;发布客户端变更通知,以便于各实例接收所述客户端变更通知,并更新本地缓存的客户端;确定所述Kubernetes集群是否发生配置变更,若是,则发布配置变更通知,以便于各实例进行本地缓存的同步变更;其中,所述配置变更至少包括所述配置文件更新;在所述本地缓存中获取所述Kubernetes集群的客户端,以实现对所述Kubernetes集群的资源管理。
在本说明书的一个或多个实施例中,实现所述Kubernetes集群的纳管导入,还包括:将所述Kubernetes集群的数据中心信息以及所述Kubernetes集群的基本信息,通过所述管理系统提供的集群管理界面,导入所述管理系统。
在本说明书的一个或多个实施例中,所述Kubernetes集群的数据中心信息至少包括:数据中心编号code、数据中心名称name、数据中心所在区域area、数据中心供应商provider以及数据中心描述信息description;所述Kubernetes集群的基本信息至少包括:集群编号code、集群名称name以及集群描述信息description;所述Kubernetes集群的配置文件至少包括:集群参数cluster、用户参数user以及上下文参数context。
在本说明书的一个或多个实施例中,构造所述Kubernetes集群的客户端,具体包括:根据所述Kubernetes集群的集群编号code,查询所述本地缓存中是否存在所述Kubernetes集群的客户端;若否,则继续查询所述分布式缓存中是否存在所述Kubernetes集群的配置文件;若否,则查询所述管理系统的数据库,以获取所述Kubernetes集群的配置文件;将获取的所述Kubernetes集群的配置文件放入所述分布式缓存,并基于获取的所述Kubernetes集群的配置文件构造所述Kubernetes集群的客户端;将构造完成的所述Kubernetes集群的客户端放入本地缓存。
在本说明书的一个或多个实施例中,在发布配置变更通知之前,所述方法还包括:查询所述Kubernetes集群的基本信息是否存在,若是,则将所述Kubernetes集群的配置变更更新到数据库中;在所述数据库更新完成之后,继续查询所述Kubernetes集群的基本信息是否存在于分布式缓存中;若是,则将所述Kubernetes集群的配置变更更新到所述分布式缓存中;查询本地缓存中是否存在所述Kubernetes集群的客户端,若是,则根据配置变更重新构造所述客户端,并放入本地缓存中。
在本说明书的一个或多个实施例中,实现对所述Kubernetes集群的资源管理,具体包括:查询所述Kubernetes集群的集群资源,具体为:访问所述Kubernetes集群,并获取所述Kubernetes集群的客户端;查询本地缓存中是否存在所述集群资源,若否,则查询分布式缓存,以查询所述Kubernetes集群的配置文件,确定是否存在所述集群资源;若否,则继续查询数据库,获取所述数据库中的配置文件,并放入所述分布式缓存中;通过所述配置文件构造客户端,并将所述客户端放入所述本地缓存中;返回所述客户端,完成所述集群资源的查询。
在本说明书的一个或多个实施例中,在查询本地缓存中是否存在所述集群资源之后,所述方法还包括:确定所述本地缓存中存在所述Kubernetes集群的集群资源;直接返回所述Kubernetes集群的客户端,并完成所述Kubernetes集群的集群资源查询;以及,在通过所述配置文件构造客户端之后,所述方法还包括:发布配置变更通知,以便于各实例进行本地缓存的同步变更。
在本说明书的一个或多个实施例中,实现对所述Kubernetes集群的资源管理,还包括:对所述Kubernetes集群进行变更,具体为:查询所述Kubernetes集群的基本信息是否存在,若是,则进行数据库变更;继续对所述分布式缓存以及所述本地缓存进行变更;发布集群变更通知;在完成订阅处理之后,完成各实例的本地缓存的同步变更。
在本说明书的一个或多个实施例中,查询所述Kubernetes集群的基本信息是否存在之后,所述方法包括:确定所述Kubernetes集群的基本信息不存在;结束所述所述Kubernetes集群的变更。
另一方面,本申请实施例还提供了一种Kubernetes集群高效访问设备,设备包括:处理器;以及,存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如上述的一种Kubernetes集群高效访问方法。
本申请实施例提供的一种Kubernetes集群高效访问方法及设备,通过多级缓存以及发布订阅机制,使得本申请实施例中的集群高效访问方法尤其适用于高并发、多实例、多集群场景下,能够支撑对Kubernetes集群的高效访问,提升了集群运维效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种Kubernetes集群高效访问方法流程图;
图2为本申请实施例提供的一种Kubernetes集群高效访问方法架构图;
图3为本申请实施例提供的基于一种Kubernetes集群高效访问方法的查询流程图;
图4为本申请实施例提供的基于一种Kubernetes集群高效访问方法的变更流程图;
图5为本申请实施例提供的一种Kubernetes集群高效访问设备结构图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种Kubernetes集群高效访问方法及设备,尤其适用于高并发、多实例、多集群场景下,能够支撑对Kubernetes集群的高效访问,提升了集群运维效率。本方法基于缓存和发布订阅机制,能够通过多级缓存和发布订阅机制,支撑高并发、多实例场景下对多个集群高效的方法。该方法主要分为两部分:Kubernetes集群访问客户端使用和Kubernetes集群访问客户端管理。其中,集群访问客户端的使用主要通过多级缓存机制,提升获取集群客户端效率;集群访问客户端管理主要通过发布订阅机制,保证了多实例场景下的一致性。通过以上两部分,能够支撑在高并发、多实例、多集群场景下高效访问需求。
下面通过附图对本申请实施例提出的技术方案进行详细的说明。
图1为本申请实施例提供的一种Kubernetes集群高效访问方法流程图。如图1所示,本申请实施例中的Kubernetes集群高效访问方法,至少包括以下执行步骤:
步骤101、Kubernetes集群纳管导入。
在本申请的一个示例中,通过管理系统提供的集群管理界面,支持多个Kubernetes集群配置文件导入,将Kubernetes集群纳管到管理系统中。
具体地,Kubernetes集群纳管导入,主要包含三部分:Kubernetes集群数据中心信息纳管导入、Kubernetes集群的基本信息纳管导入以及Kubernetes集群的配置文件纳管导入。其中,Kubernetes集群的数据中心信息至少包括:数据中心编号code、数据中心名称name、数据中心所在区域area、数据中心供应商provider以及数据中心描述信息description;Kubernetes集群的基本信息至少包括:集群编号code、集群名称name以及集群描述信息description;Kubernetes集群的配置文件至少包括:集群参数cluster、用户参数user以及上下文参数context。
此步骤通过管理系统提供的方法,将Kubernetes集群纳管到系统中,以便后续对Kubernetes集群的运维管理。对Kubernetes集群的纳管主要实现逻辑如下:
public booleanupload(String clusterCode,String clusterName,StringfileName,
String dataCenterCode,String description,Attachment file){
DataHandlerdataHandler=file.getDataHandler();
byte[]fileArray=null;
try{
InputStreaminputStream=dataHandler.getInputStream();
fileArray=ElasticStreamUtils.toByteArray(inputStream);
}catch(Exception e){
e.printStackTrace();
}
K8sConfigModel k8sConfigModel=
K8sConfigModel.builder().clusterCode(clusterCode).clusterName(clusterName).
fileName(fileName).file(fileArray).dataCenterCode(dataCenterCode).createTime(ZonedDateTime.now()).
creator("admin").lastModifyTime(ZonedDateTime.now()).lastModifier("admin").de scription(description).build();
K8sConfigInfo configInfo=new K8sConfigInfo();
BeanUtils.copyProperties(k8sConfigModel,configInfo);
return this.k8sClientManager.add(configInfo);
}
步骤102、Kubernetes集群客户端构造。
基于步骤101上传的配置文件,对于访问场景,查询Kubernetes集群的配置文件,查询后将Kubernetes集群的配置文件放入分布式缓存,然后构造Kubernetes集群的客户端,并将Kubernetes集群的客户端放入本地缓存,提升后续Kubernetes集群的访问效率。
在本申请实施例的一种或多种可能实现方式中,客户端的构造基于本地缓存、分布式缓存和数据库三级缓存进行构造,其主要的步骤包括以下几步:
1)根据传入的Kubernetes集群的集群编号code,查询本地缓存是否存在Kubernetes集群的客户端;
2)如果本地缓存中存在Kubernetes集群的客户端,则直接返回;
3)如果不存在,则需要查询分布式缓存,查询分布式缓存中是否存在该Kubernetes集群的配置文件;
4)如果存在,返回该Kubernetes集群对应的配置文件;
5)如果还不存在,则查询数据库,获取Kubernetes集群的配置文件;
6)将获取的Kubernetes集群的配置文件放入分布式缓存;
7)基于获取的配置文件,构造Kubernetes集群的客户端;
8)将构造好的客户端放入本地缓存,以便后续调用使用。
在本申请的一个示例中,客户端构造的主要实现逻辑如下:
public KubernetesClientgetClient(String clusterCode){
if(!K8sClientCacheUtils.clientMap.containsKey(clusterCode)){
synchronized(this){
if(!K8sClientCacheUtils.clientMap.containsKey(clusterCode)){
Config config=this.getConfig(clusterCode);
KubernetesClientkubernetesClient=new DefaultKubernetesClient(config);
K8sClientCacheUtils.clientMap.put(clusterCode,kubernetesClient);
return kubernetesClient;
}
}
}
return K8sClientCacheUtils.clientMap.get(clusterCode);
}
步骤103、实例缓存新增同步。
Kubernetes集群的客户端放入本地缓存之后,发布Kubernetes集群客户端变更通知,各个实例接到订阅该通知,更新本地客户端缓存,以保证多实例缓存一致性。
步骤104、纳管Kubernetes集群的配置变更。
对于纳管的Kubernetes集群,如果发生配置变更,需要变更分布式缓存和本地缓存,同时发布变更通知,以便各实例进行缓存变更同步。其中,配置变更至少包括Kubernetes集群的配置文件更新。
具体地,对于纳管Kubernetes集群,出现配置变更主要步骤包括以下:
1)首先查询Kubernetes集群的基本信息是否存在,如果不存在则直接返回,存在则继续;
2)将Kubernetes集群配置的变更更新到数据库中;
3)数据库更新成功之后,则查询分布式缓存中是否存在该Kubernetes集群的配置文件;
4)如果分布式缓存中存在该Kubernetes集群的配置文件,则需要进行分布式缓存的配置文件变更;
5)查询本地缓存是否存在该Kubernetes集群的客户端,如果存在,则需要重新构造并缓存到本地中;
6)发布Kubernetes集群的配置变更通知。
在本申请的一个示例中,该步骤的实现逻辑如下:
public booleanremoveByCode(String clusterCode){
List<SystemRoleClusterNamespaceBinding>systemRoleClusterNamespaceBinding
List=this.systemRoleClusterNamespaceBindingRepository
.findAllByK8sConfigEntity_ClusterCode(clusterCode);
List<SystemUserClusterBinding>systemUserClusterBindingList=
this.systemUserClusterBindingRepository.findAllByK8sConfigEntity_ClusterCode
(clusterCode);
if((systemRoleClusterNamespaceBindingList!=null
&&systemRoleClusterNamespaceBindingList.size()>0)
||(systemUserClusterBindingList!=null
&&systemUserClusterBindingList.size()>0)){
throw new
ElasticRuntimeException(ElasticExceptionCodeEnum.CLUSTER_EXCEPTION,"
集群已经分配,无法删除",null);
}else{
this.repository.deleteByClusterCode(clusterCode);
redisUtils.delete(clusterCode);
stringRedisTemplate.convertAndSend(K8sClientCacheUtils.DELETE_K8S_CODE
_SUCCESS,clusterCode);
return true;
}
}
步骤105、实例缓存变更同步。
基于上一步骤的配置变更通知,各实例接收到配置变更通知,需要进行本地缓存变更同步,以保证同一系统多实例的集群客户端的一致性。
在本申请的一个示例中,该步骤的实现逻辑如下:
public class K8sClientCacheMessageListener{
public void onMessage(String message){
synchronized(this){
if(K8sClientCacheUtils.clientMap.containsKey(message)){
K8sClientCacheUtils.clientMap.remove(message);
}
}
}
}
步骤106、Kubernetes集群的客户端使用。
根据前述步骤获取的Kubernetes集群的客户端,可以对Kubernetes集群的资源进行操作,进而管理Kubernetes集群的各种资源。具体地,基于多级缓存和发布订阅机制,返回查询Kubernetes集群的客户端,查询Kubernetes集群资源,对Kubernetes集群进行运维管理。
在本申请的一个示例中,该步骤的实现逻辑如下:
public List<DeploymentDetailDO>list(String clusterCode,Stringnamespace,
String keywords)throws ElasticException{
KubernetesClient k8sClient=k8sManager.getClient(clusterCode);
DeploymentListdeploymentList=k8sClient.apps().deployments().list();
List<DeploymentDetailDO>retList=new
ArrayList<>(deploymentList.getItems().size());
try{
retList=deploymentList.getItems().stream()
.filter(item->keywords==null||(keywords!=null
&&item.getMetadata().getName().contains(keywords)))
.filter(item->namespace==null||(namespace!=null
&&item.getMetadata().getNamespace().equals(namespace)))
.map(DeploymentDetailDO::new)
.collect(Collectors.toList());
}catch(Exception e){
log.debug(ExceptionUtils.getMessage(e),e);
throw new
ElasticException(ElasticExceptionCodeEnum.WORKLOAD_EXCEPTION,
ExceptionUtils.getMessage(e),e);
}
return retList;
}
图2为本申请实施例提供的一种Kubernetes集群高效访问方法架构图。如图2所示,本申请实施例中的访问方法主要通过访问入口对本地缓存进行访问,访问应用副本,然后订阅发布订阅服务,并且,如图2所示,也可以通过分布式缓存直接访问应用副本,订阅发布订阅服务。
在本申请实施例的一种或多种可能实现方式中,管理Kubernetes集群的资源,至少包括,对Kubernetes集群的资源进行查询以及对Kubernetes集群进行变更。而查询过程如图3所示,变更过程如图4所示。
图3为本申请实施例提供的基于一种Kubernetes集群高效访问方法的查询流程图。如图3所示,查询过程如下:
访问Kubernetes集群,并获取Kubernetes集群的客户端;
查询本地缓存中是否存在集群资源,若否,则查询分布式缓存,以查询所述Kubernetes集群的配置文件,确定是否存在所述集群资源;
若否,则继续查询数据库,获取所述数据库中的配置文件,并放入所述分布式缓存中;
通过所述配置文件构造配置进而构造客户端,并将所述客户端放入所述本地缓存中;
返回所述客户端,完成所述集群资源的查询。
在本申请的一个示例中,前述过程还包括:
若本地缓存中存在所述Kubernetes集群的集群资源,则直接返回所述Kubernetes集群的客户端,并完成所述Kubernetes集群的集群资源查询;以及,
在通过所述配置文件构造客户端之后,方法还包括:
发布配置变更通知,然后各实例更新本地缓存。
至此,完成Kubernetes集群的集群资源查询过程。
图4为本申请实施例提供的基于一种Kubernetes集群高效访问方法的变更流程图。如图4所示,变更过程如下:
确定Kubernetes集群发生集群变更;
查询所述Kubernetes集群的基本信息是否存在,若是,则进行数据库变更;
继续对所述分布式缓存以及所述本地缓存进行变更;
前述变更完成后,发布集群变更通知,并进行订阅处理;
在完成订阅处理之后,各实例进行本地缓存的同步变更。
返回变更结果,完成Kubernetes集群的变更过程。
在本申请的一个示例中,前述变更过程还包括:
若确定所述Kubernetes集群的基本信息不存在,则直接结束所述Kubernetes集群的变更。
以上为本申请实施例中的方法实施例,基于同样的发明构思,本申请实施例还提供了一种Kubernetes集群高效访问设备,其结构如图5所示。
图5为本申请实施例提供的一种Kubernetes集群高效访问设备结构图。如图5所示,设备包括:处理器;以及,存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如上述的一种Kubernetes集群高效访问方法。
在本申请实施例的一种或多种可能实现方式中,处理器用于:将Kubernetes集群的配置文件导入管理系统,以实现所述Kubernetes集群的纳管导入;确定访问场景,并基于所述访问场景查询所述配置文件,并将查询到的所述配置文件放入分布式缓存,以及,构造所述Kubernetes集群的客户端,并将所述客户端放入本地缓存;发布客户端变更通知,以便于各实例接收所述客户端变更通知,并更新本地缓存的客户端;确定所述Kubernetes集群是否发生配置变更,若是,则发布配置变更通知,以便于各实例进行本地缓存的同步变更;其中,所述配置变更至少包括所述配置文件更新;在所述本地缓存中获取所述Kubernetes集群的客户端,以实现对所述Kubernetes集群的资源管理。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种Kubernetes集群高效访问方法,其特征在于,所述方法包括:
将Kubernetes集群的配置文件导入管理系统,以实现所述Kubernetes集群的纳管导入;
确定访问场景,并基于所述访问场景查询所述配置文件,并将查询到的所述配置文件放入分布式缓存,以及,构造所述Kubernetes集群的客户端,并将所述客户端放入本地缓存;
发布客户端变更通知,以便于各实例接收所述客户端变更通知,并更新本地缓存的客户端;
确定所述Kubernetes集群是否发生配置变更,若是,则发布配置变更通知,以便于各实例进行本地缓存的同步变更;其中,所述配置变更至少包括所述配置文件更新;
在所述本地缓存中获取所述Kubernetes集群的客户端,以实现对所述Kubernetes集群的资源管理。
2.根据权利要求1所述的一种Kubernetes集群高效访问方法,其特征在于,实现所述Kubernetes集群的纳管导入,还包括:
将所述Kubernetes集群的数据中心信息以及所述Kubernetes集群的基本信息,通过所述管理系统提供的集群管理界面,导入所述管理系统。
3.根据权利要求2所述的一种Kubernetes集群高效访问方法,其特征在于,
所述Kubernetes集群的数据中心信息至少包括:数据中心编号code、数据中心名称name、数据中心所在区域area、数据中心供应商provider以及数据中心描述信息description;
所述Kubernetes集群的基本信息至少包括:集群编号code、集群名称name以及集群描述信息description;
所述Kubernetes集群的配置文件至少包括:集群参数cluster、用户参数user以及上下文参数context。
4.根据权利要求1所述的一种Kubernetes集群高效访问方法,其特征在于,构造所述Kubernetes集群的客户端,具体包括:
根据所述Kubernetes集群的集群编号code,查询所述本地缓存中是否存在所述Kubernetes集群的客户端;
若否,则继续查询所述分布式缓存中是否存在所述Kubernetes集群的配置文件;
若否,则查询所述管理系统的数据库,以获取所述Kubernetes集群的配置文件;
将获取的所述Kubernetes集群的配置文件放入所述分布式缓存,并基于获取的所述Kubernetes集群的配置文件构造所述Kubernetes集群的客户端;
将构造完成的所述Kubernetes集群的客户端放入本地缓存。
5.根据权利要求1所述的一种Kubernetes集群高效访问方法,其特征在于,在发布配置变更通知之前,所述方法还包括:
查询所述Kubernetes集群的基本信息是否存在,若是,则将所述Kubernetes集群的配置变更更新到数据库中;
在所述数据库更新完成之后,继续查询所述Kubernetes集群的基本信息是否存在于分布式缓存中;
若是,则将所述Kubernetes集群的配置变更更新到所述分布式缓存中;
查询本地缓存中是否存在所述Kubernetes集群的客户端,若是,则根据配置变更重新构造所述客户端,并放入本地缓存中。
6.根据权利要求1所述的一种Kubernetes集群高效访问方法,其特征在于,实现对所述Kubernetes集群的资源管理,具体包括:
查询所述Kubernetes集群的集群资源,具体为:
访问所述Kubernetes集群,并获取所述Kubernetes集群的客户端;
查询本地缓存中是否存在所述集群资源,若否,则查询分布式缓存,以查询所述Kubernetes集群的配置文件,确定是否存在所述集群资源;
若否,则继续查询数据库,获取所述数据库中的配置文件,并放入所述分布式缓存中;
通过所述配置文件构造客户端,并将所述客户端放入所述本地缓存中;
返回所述客户端,完成所述集群资源的查询。
7.根据权利要求6所述的一种Kubernetes集群高效访问方法,其特征在于,
在查询本地缓存中是否存在所述集群资源之后,所述方法还包括:
确定所述本地缓存中存在所述Kubernetes集群的集群资源;
直接返回所述Kubernetes集群的客户端,并完成所述Kubernetes集群的集群资源查询;以及,
在通过所述配置文件构造客户端之后,所述方法还包括:
发布配置变更通知,以便于各实例进行本地缓存的同步变更。
8.根据权利要求1所述的一种Kubernetes集群高效访问方法,其特征在于,实现对所述Kubernetes集群的资源管理,还包括:
对所述Kubernetes集群进行变更,具体为:
查询所述Kubernetes集群的基本信息是否存在,若是,则进行数据库变更;
继续对所述分布式缓存以及所述本地缓存进行变更;
发布集群变更通知;
在完成订阅处理之后,完成各实例的本地缓存的同步变更。
9.根据权利要求8所述的一种Kubernetes集群高效访问方法,其特征在于,查询所述Kubernetes集群的基本信息是否存在之后,所述方法包括:
确定所述Kubernetes集群的基本信息不存在;
结束所述Kubernetes集群的变更。
10.一种Kubernetes集群高效访问设备,其特征在于,所述设备包括:
处理器;
以及,存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如权利要求1-9任一项所述的一种Kubernetes集群高效访问方法。
CN202210766042.0A 2022-07-01 2022-07-01 一种Kubernetes集群高效访问方法及设备 Active CN115150416B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210766042.0A CN115150416B (zh) 2022-07-01 2022-07-01 一种Kubernetes集群高效访问方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210766042.0A CN115150416B (zh) 2022-07-01 2022-07-01 一种Kubernetes集群高效访问方法及设备

Publications (2)

Publication Number Publication Date
CN115150416A CN115150416A (zh) 2022-10-04
CN115150416B true CN115150416B (zh) 2023-06-06

Family

ID=83409663

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210766042.0A Active CN115150416B (zh) 2022-07-01 2022-07-01 一种Kubernetes集群高效访问方法及设备

Country Status (1)

Country Link
CN (1) CN115150416B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111796858A (zh) * 2020-07-07 2020-10-20 金蝶软件(中国)有限公司 Kubernetes集群内部应用程序访问检测的方法、系统及相关设备
CN112187888A (zh) * 2020-09-15 2021-01-05 苏州浪潮智能科技有限公司 多Kubernetes集群纳管方法、纳管装置及计算机可读存储介质
CN112925647A (zh) * 2021-03-24 2021-06-08 北京金山云网络技术有限公司 云边协同系统、集群资源的控制方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11604806B2 (en) * 2020-12-28 2023-03-14 Nutanix, Inc. System and method for highly available database service

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111796858A (zh) * 2020-07-07 2020-10-20 金蝶软件(中国)有限公司 Kubernetes集群内部应用程序访问检测的方法、系统及相关设备
CN112187888A (zh) * 2020-09-15 2021-01-05 苏州浪潮智能科技有限公司 多Kubernetes集群纳管方法、纳管装置及计算机可读存储介质
CN112925647A (zh) * 2021-03-24 2021-06-08 北京金山云网络技术有限公司 云边协同系统、集群资源的控制方法及装置

Also Published As

Publication number Publication date
CN115150416A (zh) 2022-10-04

Similar Documents

Publication Publication Date Title
AU2017269108B2 (en) Optimizing read and write operations in object schema-based application programming interfaces (APIS)
CN109144994B (zh) 索引更新方法、系统及相关装置
US9032011B2 (en) Management of data object sharing among applications
US7970823B2 (en) System for sharing data objects among applications
US9317706B2 (en) Multi-tenant system
CN102779185B (zh) 一种高可用分布式全文索引方法
US8788760B2 (en) Adaptive caching of data
US10044522B1 (en) Tree-oriented configuration management service
CN110196885B (zh) 一种云化分布式实时数据库系统
CN111881223B (zh) 数据管理方法、设备、系统及存储介质
WO2017204951A1 (en) Optimizing read and write operations in object schema-based application programming interfaces (apis)
US20130191523A1 (en) Real-time analytics for large data sets
Gajendran A survey on nosql databases
CN102904949B (zh) 一种基于副本的动态元数据集群系统
CN102255752A (zh) 一种服务器集群的配置管理系统和方法
CN111143382B (zh) 数据处理方法、系统和计算机可读存储介质
CN103782295A (zh) 分布式数据管理系统中的查询说明计划
US10713035B2 (en) Systems and methods for peer-to-peer build sharing
CN110955655B (zh) 动态cmdb数据库模型存储方法和系统
WO2023077970A1 (zh) 一种元数据的管理方法、相关装置、设备以及存储介质
CN111966692A (zh) 针对数据仓库的数据处理方法、介质、装置和计算设备
Chandra et al. A study on cloud database
CN111752945B (zh) 一种基于容器和层次模型的时序数据库数据交互方法和系统
CN115150416B (zh) 一种Kubernetes集群高效访问方法及设备
Zhou et al. Sfmapreduce: An optimized mapreduce framework for small files

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
GR01 Patent grant
GR01 Patent grant