CN116018788A - 为动态发现的对等体或网络功能配置服务网格联网资源 - Google Patents

为动态发现的对等体或网络功能配置服务网格联网资源 Download PDF

Info

Publication number
CN116018788A
CN116018788A CN202180052525.8A CN202180052525A CN116018788A CN 116018788 A CN116018788 A CN 116018788A CN 202180052525 A CN202180052525 A CN 202180052525A CN 116018788 A CN116018788 A CN 116018788A
Authority
CN
China
Prior art keywords
service
entity
external entity
consumer
resource object
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
CN202180052525.8A
Other languages
English (en)
Inventor
A·拜德
N·马尔霍特拉
M·A·布朗
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN116018788A publication Critical patent/CN116018788A/zh
Pending legal-status Critical Current

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/104Peer-to-peer [P2P] networks
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5051Service on demand, e.g. definition and deployment of services in real time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5058Service discovery by the service manager
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5096Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to distributed or central networked applications
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开涉及用于为动态发现的外部实体配置服务网格联网资源的方法和系统。该方法和系统为外部实体提供的服务创建定制资源对象,并且为定制资源对象动态创建服务网格网络资源。该方法和系统使得能够使用服务网格网络资源与外部实体进行通信。

Description

为动态发现的对等体或网络功能配置服务网格联网资源
背景技术
服务网格需要部署一组复杂的联网配置资源,以实现到诸如对等网络功能(NF)或外部数据库和服务器的外部实体的业务路由。以前,每个不同的应用必须实现许多通信特征并且必须知道,例如如何加密业务、解密业务和/或执行分组捕获。因此,当通信中出现问题时,由于不同的应用对通信执行不同的程序,因此在解决问题方面出现了困难。
发明内容
根据本公开的一个方面,公开了一种系统,其包括一个或多个处理器、与一个或多个处理器进行电子通信的存储器、数据存储和存储在存储器中的指令。指令由一个或多个处理器可执行以在服务网格网络处从消费方实体接收用以向提供服务的外部实体注册的请求。该服务是由消费方实体使用5G网络中的网络存储库功能新发现的。指令还由一个或多个处理器可执行,以在数据存储中为服务创建记录。指令还由一个或多个处理器可执行,以响应于从消费方实体接收到请求,为外部实体提供的服务创建定制(custom)资源对象。定制资源对象包括定义服务的特性和针对与服务通信的路由要求的定制资源定义。指令还由一个或多个处理器可执行,以将定制资源对象提供给管理服务网格网络的网络资源的Kubernetes控制平面,并且指示Kubernetes控制平面为定制资源对象动态地创建一个或多个服务网格网络资源以及使用定制资源定义配置一个或多个服务网格网络资源。指令由一个或多个处理器可执行,以启用来自消费方实体的通信,以通过使用一个或多个服务网格网络资源访问由外部实体提供的服务。
指令进一步由一个或多个处理器可执行,以监测定制资源对象以及响应于定制资源对象的改变,执行与一个或多个服务网格网络资源有关的一个或多个动作。改变可以包括创建、修改或删除中的一项或多项。
指令进一步由一个或多个处理器可执行,以响应于定制资源对象的删除而删除针对定制资源对象的一个或多个服务网格网络资源。响应于一个或多个服务网格网络资源被删除,消费方实体与外部实体之间的通信可以不被启用。
在从消费方实体接收请求之前,服务对于服务网格可以是先前未知的。
指令进一步由一个或多个处理器可执行,以更新数据存储中的针对具有定制资源对象的服务的记录。引用计数可以被用于标识与使用服务的消费方实体的关联。
指令进一步由一个或多个处理器可执行以用以向由外部实体提供的服务注册的第二请求;确定针对服务的记录存在于数据存储中,以及将数据存储中的针对定制资源对象的引用计数增加一,并且更新与服务的关联以包括第二消费方实体。
指令进一步由一个或多个处理器可执行,以通过使用针对针对服务的定制资源对象的一个或多个服务网格网络资源来使第二消费方实体能够访问服务。
服务网格网络资源可以包括服务条目、虚拟服务、目的地规则、路由规则、网关或配额中的一项或多项。
定制资源定义可以针对服务被特别地创建。
根据本公开的另一方面,公开了一种方法,其包括在服务网格网络处从消费方实体接收用以向提供服务的外部实体注册的请求。该服务是由消费方实体使用5G网络中的网络存储库功能新发现的。该方法还包括在数据存储中为服务创建记录,以维持使用服务的消费方实体的关联。该方法还包括响应于从消费方实体接收到请求,为由外部实体提供的服务创建定制资源对象。定制资源对象包括定义服务的特性和针对与服务通信的路由要求的定制资源定义。该方法还包括将定制资源对象提供给管理服务网格网络的网络资源的Kubernetes控制平面,并且指示Kubernetes控制平面为定制资源对象动态创建一个或多个服务网格网络资源以及使用定制资源定义配置一个或多个服务网格网络资源。该方法还包括启用来自消费方实体的通信,以通过使用一个或多个服务网格网络资源来访问由外部实体提供的服务。
该方法还可以包括监测定制资源对象,以及响应于定制资源对象的改变,执行与一个或多个服务网格网络资源有关的一个或多个动作。改变可以包括创建、修改或删除中的一项或多项。
该方法还可以包括响应于定制资源对象的删除,删除针对定制资源对象的一个或多个服务网格网络资源。响应于一个或多个服务网格网络资源被删除,消费方实体与外部实体之间的通信可以不被启用。
在从消费方实体接收请求之前,服务网格可能先前不知道该服务。
该方法还可以包括利用定制资源对象更新数据存储中针对服务的记录,以及将定制资源对象的引用计数增加一。引用计数可以被用于标识与使用服务的消费方实体的关联。
该方法还可以包括从第二消费方实体接收用以向外部实体提供的服务注册的第二请求,确定针对该服务的记录存在于数据存储中,以及将数据存储中的针对定制资源对象的引用计数增加一,并且更新与该服务的关联以包括第二消费方主体。
该方法还可以包括通过使用针对针对服务的定制资源对象的一个或多个服务网格网络资源来使第二消费方实体能够访问服务。
服务网格网络资源可以包括服务条目、虚拟服务、目的地规则、路由规则、网关或配额中的一项或多项。
定制资源定义可以是为服务特别创建的。
根据本公开的另一方面,公开了一种存储由计算机设备可执行的指令的计算机可读介质。指令包括用于使得计算机设备在服务网格网络处从消费方实体接收用以向提供服务的外部实体注册的请求的至少一个指令。该服务是由消费方实体使用5G网络中的网络存储库功能新发现的。指令还包括用于使得计算机设备在数据存储中为服务创建记录以维持使用服务的消费方实体的关联的至少一个指令。指令还包括用于使得计算机设备响应于从消费方实体接收到请求,为由外部实体提供的服务创建定制资源对象的至少一个指令。定制资源对象包括定义服务的特性和用于与服务通信的路由要求定制资源定义。指令还包括用于使得计算机设备向管理服务网格网络的网络资源的Kubernetes控制平面提供定制资源对象并且指示Kubernetes控制平面为定制资源对象动态地创建一个或多个服务网格网络资源以及使用定制资源定义配置一个或多个服务网格网络资源的至少一个指令。指令还包括用于使得计算机设备启用来自消费方实体的通信以使用一个或多个服务网格网络资源访问由外部实体提供的服务的至少一个指令。
计算机可读介质还可以包括用于使得计算机设备监测定制资源对象的至少一个指令和用于使得计算机设备响应于定制资源对象的改变而执行与一个或多个服务网格网络资源相关的一个或多个动作的至少一个指令。改变可以包括创建、修改或删除中的一项或多项。
本发明内容被提供以简化的形式介绍概念的选集,这些概念的选集将会在下面的具体实施方式中进一步地描述。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
附加特征和优点将在下面的描述中阐述。本公开的特征和优点可以通过所附权利要求中特别指出的系统和方法来实现和获得。通过以下描述和所附权利要求,本公开的特征将变得更充分明显,或者本公开的特征可以通过下文所述的公开主题的实践来了解。
附图说明
为了描述可以获得本公开的上述和其他特征的方式,将通过参考附图中所示的具体实施例来进行更具体的描述。为了更好地理解,在各个附图中,相同的元件用相同的附图标记表示。将理解附图描绘了一些示例实施例,将通过使用附图以附加的具体性和细节来描述和解释实施例,其中:
图1示出了根据本公开的实现的使用服务网格与外部实体通信的示例系统。
图2示出了根据本公开的实现的示例服务网格。
图3示出了根据本公开的实现的用于向服务网格注册新外部实体的示例调用流程。
图4示出了根据本公开的实现的用于现有外部实体向服务网格注册的示例调用流程。
图5A和图5B示出了根据本公开的实现的用于向服务网格注销外部实体的示例调用流程。
图6是根据本公开的实现的用于为动态发现的对等体配置服务网格网络资源的示例方法。
图7图示了计算机系统中可能包括的某些组件。
具体实施方式
本公开一般涉及使用服务网格来支持通信。服务网格是用于处理服务到服务通信的专用基础设施层。服务网格将特定于通信的特征提取到单个层中,而不是通过实现通信特征来加重应用的负担。通过使用服务网格,公共基础设施组件负责通信或者服务到服务交互相关的功能。这样,应用可以与通信或者服务到服务交互相关的功能隔离,使应用可能不知道通信特征实现。
服务网格需要部署一组复杂的联网配置资源,以实现到诸如对等网络功能(NF)或外部数据库和服务器的外部实体的业务路由。服务网格支持微服务器之间的内部信令和消息传递。当向外部对等节点发送消息时,可以利用服务网格。消息可以经由服务网格被路由到外部对等节点。
服务网格可以由Kubernetes管理,Kubernetes是一种应用程序编程接口(API),用于协调微服务资源。微服务可以被部署为在虚拟机集群上运行,并且Kubernetes可以基于容器的可用计算资源和每个容器的资源需求来调度容器在这些虚拟机上运行。如需要,容器可以被分组并缩放。微服务也可以部署在裸金属服务器上运行,并且Kubernetes可以调度容器在裸金属服务器上运行。Kubernetes还可以自动管理服务发现、合并负载平衡、跟踪资源分配,并且可以根据计算利用率进行缩放。Kubernetes可以使用本地资源对象来执行这些功能。例如,Kubernetes可以通过不同的yaml文件接收信息。Kubernetes可以使用所接收的信息来向外部实体分配一个或多个微服务资源,以向可能希望使用服务的消费方实体提供一个或更多服务。
通常,当使用服务网格时,这些外部对等体或服务器中的每个外部对等体或服务器必须事先已知,以便可以静态地配置服务网格配置资源集。到外部对等节点的转发路径通常在向外部对等节点发送第一消息之前经由配置在服务网格本身内被静态配置。服务网格通常需要知道外部对等节点的特性以及到外部对等节点的最终路由。以这样,服务网格通常通过手动配置Istio联网配置资源来静态白名单外部对等节点,这限制了源NF可以访问的服务的数目。
当使用动态环境来利用服务网格(诸如Istio)时,NF对等体不再事先已知,并且必须通过网络存储库功能(NRF)被动态发现。例如,在5G环境中,NF对等体可以使用NRF被动态地发现。以这样,在先前不知道NF对等体的动态环境中部署服务网格可能是困难的,因为服务网格通常被静态地配置为与先前已知的NF对等体通信。
本公开的方法和系统使得能够为动态发现的对等体配置服务网格。本公开包括提供益处和/或解决与服务网格相关联的问题的若干实际应用。
这些方法和系统可以与Kubernetes控制平面协同工作,以通过向服务网格提供附加组件来扩展服务网格的功能。方法和系统可以为新发现的外部实体创建定制资源对象。定制资源对象可以是与Kubernetes控制平面一起使用的外部实体相关联的新类型的对象。
在一种实现中,Kubernetes操作器(Operator)可以被提供,该Kubernetes操作器对注册的定制资源定义对象(CRO)的实例做出反应。定制配置操作器对部署的CRO和其中的任何更改做出反应,以实时创建、修改和/或删除Istio联网配置资源集。操作器模式可以使用一组新的(多个)定制资源定义或CRD扩展Kubernetes API服务器(控制平面)。操作器可以实时观察注册的CRO,并且可以对诸如创建、删除和/或修改的任何事件做出反应,并且可以通过操作相应的Istio联网配置资源来采取必要的行动。以这样,用户可以通过向NF应用提供动态API来通过定制配置Kubernetes操作器配置新发现的对等体,从而避免静态配置外部实体及其各自的Istio资源或者将外部实体及其各自的Istio资源与服务网格进行白名单。
方法和系统可以为新创建的定制资源对象创建和/或配置服务网格网络资源,并且可以使用服务网格网络资源与外部主机通信。
方法和系统可以在与外部主机通信之前对服务网格内新发现的外部主机的路由进行编程。以这样,方法和系统可以使得能够在与外部主机通信之前为新发现的对等体动态地配置服务网格网络资源。
现在参考图1,示出了与服务网格106一起使用的示例系统100,以支持经由网络104在一个或多个(到n个,其中n是整数)消费方实体102与一个或多个(到m个,其中m是整数)外部实体112之间的通信。服务网格106可以用于支持外部实体112与消费方实体之间的信令和消息传递。服务网格106可能需要部署一组复杂的联网配置资源,以实现到外部实体112的业务路由。网络配置资源可以包括针对每个外部实体112的设置,例如但不限于业务是否应当被加密、域名系统(DNS)相关参数和/或电路中断配置。服务网格106可以将特定于通信的特征提取到单个层中,从而可以通过服务网格106路由从消费方实体102到外部实体112的消息,而外部实体112不必协调与消费方实体102的通信。在一种实现中,服务网格106可以是Istio服务网格。
服务网格106可以由Kubernetes控制平面108管理。Kubernetes控制平面108可以协调微服务110的资源。在一种实现中,微服务110可以被部署为在具有虚拟机集群的虚拟机(VM)基础设施上运行,并且Kubernetes控制平面108可以基于容器的可用计算资源和每个容器的资源需求来调度容器在虚拟机上运行。如需要,容器可以被分组并且缩放。Kubernetes控制平面108可以为外部实体112分配一个或多个虚拟机,以用于向一个或多个消费方实体102提供服务10。在另一实现中,微服务110可以被部署为在裸金属服务器上运行,并且Kubernetes控制平面108可以调度容器在裸机上运行。如需要,容器可以被分组在一起。
Kubernetes控制平面108还可以自动管理服务发现、合并负载平衡、跟踪资源分配,并且可以基于计算利用率缩放。Kubernetes控制平面108可以使用本地资源对象来执行这些功能。此外,Kubernetes控制平面108可以例如通过不同的yaml文件接收信息。Kubernetes可以使用所接收的信息来向外部实体112分配微服务110的一个或多个资源,以向可能想要使用服务的消费方实体102提供一个或多个服务10。例如,在微服务110的虚拟机实现中,Kubernetes可以将一个或多个虚拟机分配给外部实体112以提供一个或多个服务10。
现在参考图2,示出了用于系统100(图1)的示例服务网格106。系统100可以是动态环境,在其中消费方实体102可以发现由外部实体112经由网络104提供的一个或多个服务10。在一种实现中,系统100可以是5G系统,在其中消费方实体102使用第三代合作伙伴计划(3GPP)网络协议中的一个或多个3GPP网络协议来发现一个或多个服务10,例如由外部实体112提供的网络功能(NF)。
服务网格106可以包括代理114,该代理114可以用于为新发现的外部实体112(图1)创建定制资源对象(CRO)14。在一种实现中,外部实体112可以是对等网络功能(NF)。NF可以通过网络存储库功能(NRF)被动态地发现。
代理114可以向消费方实体102暴露一个或多个API,并且消费方实体102可以响应于发现一个或多个外部实体112和/或由外部实体112提供的服务而调用API。代理114可以响应于由一个或多个消费方实体102生成的API调用,为一个或多个外部实体112创建新的CRO。
CRO 14可以是与用于与Kubernetes控制平面108一起使用的外部实体112相关联的新型对象。CRO 14可以不同于Kubernetes控制平面108所使用的本地资源对象。CRO 14可以包括定义CRO 14需要什么项目的定制资源定义。定制资源定义的示例可以包括但不限于主机存在、注释所有者存在、主机信息、路由信息和/或超时信息。定制资源定义可以特定于服务10和/或外部实体112或者用例。以这样,不同的外部实体112可以具有与关联于外部实体112的CRO 14不同的定制资源定义。
CRO 14可以被传递到控制器116。控制器116可以处理或控制CRO 14。控制器116可以向Kubernetes控制平面108注册,并且可以通知Kubernetes控制平面108控制器116控制由代理114创建的CRO 14。以这样,Kubernetes控制平面108可以将用于针对外部实体112的新CRO 14的操作切换到控制器116。
控制器116可以向Kubernetes控制平面108发送请求,以创建针对CRO 14的一个或多个服务网格网络资源20。服务网格资源20可以包括但不限于服务条目、虚拟服务、目的地规则、路由规则、网关和/或配额。Kubernetes控制平面108可以为服务网格网络资源20配置具有正确配置的代理(proxy)和/或代理(agent)。例如,Kubernetes控制平面108可以使用来自CRO 14的定制资源定义来配置服务网格网络资源20。服务网格资源20可以由消费方实体102使用,以与外部实体112通信并且访问或以其他方式使用由外部实体112提供的服务10。
服务网格106还可以包括数据存储118。数据存储118可以是存储由一个或多个外部实体112提供的针对一个或多个服务10的记录12的全局可访问数据存储。每个记录12可以包括针对外部实体112提供的服务10的CRO 14。数据存储118可以具有由外部实体112提供的每个服务10的单个记录12。因此,由外部实体112提供的服务10在数据存储118中可能不具有重复条目,因为服务网格106可能无法处理针对相同服务10的多个CRO 14。
此外,每个记录可以包括引用计数16,该引用计数16指示已经请求使用由外部实体112提供的服务10的消费方实体102的总数。每次新的消费方实体102请求使用外部实体112,引用计数可以被增加。此外,引用计数还可以包括与已经请求使用由外部实体112提供的服务10的消费方实体102的关联(例如,消费方实体102名称可以与引用计数一起存储)。以这样,数据存储118可以存储为外部实体112提供的新发现的服务10创建的CRO 14,并且可以维持对使用新发现的业务10感兴趣的所有消费方实体的关联。
代理114、控制器116和/或数据存储118可以与Kubernetes控制平面108结合使用,以允许服务网格106在一个或多个消费方实体102与一个或多个新发现的外部实体112之间提供安全通信。因此,代替用先前已知的外部实体静态地配置服务网格106,代理114、控制器116和/或数据存储118可以允许在发现外部实体112之前外部实体112的配置参数或资源未知的动态环境中服务网格106被使用。
服务网格106可以包括下面结合图7描述的特征和功能。此外,服务网格106的组件可以包括硬件、软件或两者。例如,服务网格106的组件可以包括存储在计算机可读存储介质上并且由一个或多个计算设备的处理器可执行的一个或多个指令。一个或多个计算设备(例如,服务网格106)的计算机可执行指令当由一个或多个处理器执行时,可以执行本文所描述的一种或多种方法。备选地,服务网格106的组件可以包括硬件,诸如用于执行某种功能或功能组的专用处理设备。附加地或备选地,服务网格106的组件可以包括计算机可执行指令和硬件的组合。
现在参考图3,针对新的外部实体注册的示例调用流程300可以参考图1和图2的架构来讨论。消费方实体102可能想要消费由外部实体112提供的新发现的服务。在所图示的示例中,消费方实体102可以是网络功能呼叫控制(NF CC),外部实体112可以是“amf-1.att.com”。消费方实体102例如可以通过3GPP协议发现由外部实体112提供的服务。调用流程300可以用于向服务网格106通知外部实体112和由外部实体112提供的服务,从而消费方实体102可以开始使用该服务。在调用流程300中使用Istio作为服务网格106类型的说明性示例。以这样,代理114可以是Istio代理,并且控制器116可以是Istio控制器。
在302处,消费方实体102可以向代理114发送针对外部实体112的注册消息。代理114可以向一个或多个消费方实体102暴露API以供调用。注册消息可以响应于由代理114暴露的rest API。例如,注册消息可以包括针对外部实体112的名称。
在304处,代理114可以向数据存储118发送具有针对外部实体112的请求的消息。例如,消息可以包括针对外部实体112的名称。当被创建时数据存储118可以是在CRO 14针对外部实体112被创建时存储针对外部实体112的记录的全局可访问数据存储。
数据存储118可以例如通过将针对外部实体112的名称与存储在数据存储118中的记录12进行比较来验证针对外部实体112的记录是否存在。通过验证外部实体112是否先前存在于数据存储118中,可以防止针对相同外部实体112的记录12的重复。服务网格106可能无法处理针对相同外部实体112的多个CRO 14。
在306处,数据存储118可以发送指示在数据存储118中未找到外部实体112的回复消息。例如,如果针对外部实体112的名称与数据存储118中的记录12之间未出现匹配,则数据存储118可以确定数据存储118中不存在针对外部实体112的记录。
在308处,代理114可以向数据存储118发送为外部实体112创建记录12的请求。请求可以包括针对外部实体112的名称和发出请求的消费方实体102。
在310处,数据存储118可以为外部实体112创建记录12。数据存储118可以包括引用计数16,其指示已经请求使用外部实体112的消费方实体102的总数。在说明性示例中,消费方实体102(例如,NF CC-1)可以是请求使用外部实体112的第一消费方实体。以这样,引用计数可以是1。此外,引用计数可以包括与消费方实体102的关联(例如,消费方实体102名称NF CC-1)。记录12还可以用于在创建时存储与外部实体112相关联的CRO 14。在312处,数据存储118可以向代理114发送验证消息,以验证针对外部实体112的记录12的创建。
在314处,代理114可以向Kubernetes控制平面108发送创建消息,以为针对外部实体112的新CRO 14创建一组新的定制资源定义CRD。创建消息可以包括针对CRO 14的任何定制定义。例如,代理114可以标识针对CRO 14要包括的细节,例如但不限于外部实体112的名称和/或关于针对CRO的注释所有者的信息。每个CRO 14可以具有不同的CRD。因此,每个CRO14可以针对不同的外部实体112专门设计。Kubernetes控制平面108可以利用由代理114提供的一组定制资源定义CRD为外部实体112创建新的CRO 14。
在316处,Kubernetes控制平面108可以向控制器116发送针对外部实体112的新的CRO 14。控制器116可能已经向Kubernetes控制平面108注册,并且已经通知Kubernetes控制平面108控制器116负责动态创建的新的CRO 14。以这样,Kubernetes控制平面108可以将针对外部实体112的新的CRO 14的控制移交给控制器116。
在318处,代理114可以向Kubernetes控制平面108发送观察消息,以开始监测针对外部实体112的CRO 14的状态。观察消息可以允许代理114接收与针对外部实体112的CRO14的改变相关的任何更新的通知。如果在服务网格106被配置之前消费方实体102开始与外部实体112通信,则通信可能失败。观察消息可以防止在服务网格106被配置有针对CRO 14的正确资源之前消费方实体102与外部实体112通信。
在320处,控制器116可以向Kubernetes控制平面108发送创建Istio网络资源消息。控制器116可以在接收到CRO 14时唤醒,并且可以指示Kubernetes控制平面108为CRO14创建一个或多个Istio网络资源。Istio资源可能包括但不限于服务条目、虚拟服务、目标规则、路由规则、网关和/或配额。Kubernetes控制平面108可以为Istio网络资源配置具有正确配置的代理(proxy)和/或代理(agent)。
在322处,控制器116可以检查针对Istio网络资源的配置是否完成。针对CRO 14的Istio网络资源的配置可能需要一段时间来完成。在这段时间期间,控制器116可以继续检查配置的状态。
在324处,控制器116可以响应于针对CRO 14的Istio网络资源的配置完成,从Kubernetes控制平面108接收状态就绪消息。此外,在326处,响应于针对CRO 14的Istio资源配置的完成,Kubernetes控制平面108可以向代理114发送通知。以这样,代理114可以接收指示针对外部实体112的CRO 14的状态准备好的通知。
在328处,代理114可以向消费方实体102发送完成消息,指示服务网格106准备好与外部实体112通信。响应于接收到完成消息,消费方实体102可以使用针对CRO 14的Istio资源开始与外部实体112通信。例如,消费方实体102可以使用服务网格106访问或以其他方式使用由外部实体112提供的服务10。
现在参考图4,可以参考图1和图2的架构来讨论现有外部实体注册的示例调用流程400。消费方实体402可能想要消费由外部实体112提供的发现的服务。在所图示的示例中,消费方实体402可以是在系统100上操作的不同于消费方实体102(图3)的网络功能呼叫控制(NF CC-2),并且外部实体112可以是相同的“amf-1.att.com”。消费方实体402可能已经例如通过3GPP协议发现了由外部实体112提供的服务。调用流程400可以用于通知服务网格106消费方实体402想要与外部实体112通信并且开始使用由外部实体112提供的服务。Istio在调用流程400中被使用作为服务网格106类型的说明性示例。以这样,代理114可以是Istio代理,并且控制器116可以是Istio控制器。
在404处,消费方实体402可以向代理114发送针对外部实体112的注册消息。代理114可以向一个或多个消费方实体402暴露API以供调用。注册消息可以响应于代理114暴露的rest API。例如,注册消息可以包括针对外部实体112的名称。
在406处,代理114可以向数据存储118发送具有针对外部实体112的请求的消息。例如,消息可以包括针对外部实体112的名称。数据存储118可以例如通过将针对外部实体112的名称与存储在数据存储118中的记录12进行比较来验证是否存在针对外部实体112的记录。通过验证外部实体112是否存在于数据存储118中,已经为数据存储118中的外部实体112创建的记录12可以被使用。例如,消费方实体102可能先前已经请求使用由外部实体112提供的服务。以这样,数据存储118可能已经具有针对外部实体112的记录12。
在408处,数据存储118可以向代理114发送回复消息,该回复消息指示外部实体112在数据存储118中被找到。例如,如果针对外部实体112的名称与数据存储118中的记录12之间发生匹配,则数据存储118可以确定数据存储118中针对外部实体112的记录12存在。
在410处,代理114可以向数据存储118发送用以访问针对外部实体112的记录12的请求。请求可以包括针对外部实体112的名称以及做出请求的消费方实体402。
在412处,数据存储118可以访问针对外部实体112的记录12。数据存储118可以包括引用计数16,其指示已经请求使用外部实体112的消费方实体402、消费方实体102的总数。例如,如果消费方实体102先前请求使用外部实体112(图3),则引用计数16可以增加1到2。此外,引用计数16还可以包括与请求使用外部实体112的消费方实体的关联(例如,引用计数14还可以包括消费方实体的名称,NF CC-1和NF CC-2)。以这样,响应于用以使用外部实体112的新请求,针对外部实体112的记录12可以被更新。在414处,数据存储118可以向代理114发送验证消息,以验证外部实体112已注册,以及新请求被添加到记录12。
在418处,代理114可以向消费方实体402发送完成消息,该完成消息指示服务网格106已为外部实体112做好准备。响应于接收到完成消息,消费方实体402可以使用针对CRO14的Istio资源开始与外部实体112通信。例如,消费方实体102可以使用服务网格106访问或以其他方式使用由外部实体112提供的服务10。
在调用流程400中,响应于接收到注册请求,服务网格中的Istio网络资源的创建不会发生。因为Istio网络资源先前是响应于消费方实体102请求使用外部实体112而创建的,如数据存储118中针对外部实体112的记录12所示。以这样,消费方实体402可以使用已经为外部实体112创建的Istio网络资源来与外部实体112通信。
现在参考图5A和图5B,可以参考图1和图2的架构来讨论用于注销外部实体的示例调用流程500。在所图示的示例中,消费方实体402可以是网络功能呼叫控制(NF CC-2),消费方实体102可以是网络功能呼叫控制(NF-CC-1),并且外部实体112可以是“amf-1.att.com”。Istio在调用流程500中被用作服务网格106类型的说明性示例。以这样,代理114可以是Istio代理,并且控制器116可以是Istio控制器。
调用流程500可以用于从服务网格106注销外部实体112。外部实体112可以被注销,因为外部实体112已经故障和/或退出服务。用于注销外部实体112的另一示例可以包括消费方实体402、消费方实体102可以不再需要由外部实体112提供的服务和/或不再需要与外部实体112通信。例如,不再从消费方实体402、消费方实体102向外部实体112发送消息。
在502处,消费方实体402可以向代理114发送用于注销外部实体112的请求。例如,消费方实体402可以不再希望与外部实体112通信和/或可以完成了使用外部实体112提供的服务。注销消息可以包括要移除的外部实体112的名称。
在504处,代理114可以向数据存储118发送消息,验证外部实体112是否存在于数据存储118的记录中。数据存储118可以将针对外部实体112的名称与存储在数据存储118内的记录12进行比较,以验证针对外部实体112是否存在记录。
在506处,数据存储118可以向代理114发送回复消息,该回复消息指示外部实体112存在于数据存储118中。例如,如果针对外部实体112的名称与数据存储118中的记录12之间发生匹配,则数据存储118可以向代理114发送回复消息,通知代理114存在针对外部实体112的记录12。
在508处,代理114可以向数据存储118发送删除请求,以删除与针对外部实体112的消费方实体402的关联。删除请求可以包括外部实体112的名称和消费方实体402身份。
在510处,数据存储118可以更新针对与外部实体112相关联的CRO 14的记录12。数据存储118可以通过将引用计数16减一来更新引用计数16。此外,数据存储118可以从记录12移除消费方实体402,从而消费方实体402与针对外部实体112的CRO 14的任何关联从记录12中被移除。例如,如果消费方实体402和消费方实体102两者在请求向外部实体112注册之后与外部实体112相关联,则数据存储118可以将针对外部实体112的引用计数从两个减少到一个。此外,数据存储118可以从引用计数中移除消费方实体402的关联,使得当前引用计数现在为1,并且只有消费方实体102保持与引用计数相关联。在512处,数据存储118可以向代理114发送验证消息,验证消费方实体402已经从针对外部实体112的记录12中被删除。
在514处,代理114可以向数据存储118发送针对对于外部实体112的引用计数的值的请求。该请求可以包括外部实体112的名称。在516处,数据存储118可以向代理114提供引用计数的值。在此示例中,引用计数的值可以是一。
在518处,代理114可以验证引用计数的值是否大于零。如果引用计数的值大于零,则另一消费方实体可以正使用外部实体112。例如,消费方实体102可以正使用由外部实体112提供的服务。以这样,如果引用计数的值大于零,则代理114可以不采取具有注销过程的进一步动作。为服务网格106创建的Istio资源可以保持可操作,并且其他消费方实体可以能够访问由外部实体112提供的服务。
在520处,代理114可以向消费方实体402发送完成消息,通知消费方实体402外部实体112已经从消费方实体402注销。以这样,由于消费方实体402与外部实体112之间的关联已经被移除,消费方实体402可能不再能够访问外部实体112提供的服务。
在522处,消费方实体102可以向代理114发送用以注销外部实体112的请求。例如,消费方实体102可能不再希望与外部实体112通信和/或可能完成了使用外部实体112提供的服务。注销消息可以包括要移除的外部实体112的名称。
在524处,代理114可以向数据存储118发送消息,验证外部实体112是否存在于数据存储118的记录12中。数据存储118可以将针对外部实体112的名称与存储在数据存储118中的记录12进行比较,以验证针对外部实体112存在记录12。
在526处,数据存储118可以向代理114发送回复消息,该回复消息指示针对外部实体112的记录12存在于数据存储118中。例如,如果针对外部实体112的名称与记录12之间发生匹配,则数据存储118可以确定数据存储118中存在针对外部实体112的记录12。
在528处,代理114可以向数据存储118发送删除请求,以删除与针对外部实体112的消费方实体102的关联。删除请求可以包括外部实体112的名称和消费方实体102的身份。
在530处,数据存储118可以更新针对外部实体112的记录12。数据存储118可以通过将引用计数16减一来更新针对外部实体112的引用计数16。此外,数据存储118可以从记录12中移除消费方实体102的任何关联,使得消费方实体112与外部实体112的关联被移除。例如,如果消费方实体102是与外部实体112相关联的剩余消费方实体,则数据存储118可以将针对外部实体112的引用计数16减少到零。此外,数据存储118可以从引用计数中移除消费方实体102,使得当前引用计数现在为零,没有与引用计数16相关联的消费方实体。
在532处,数据存储118可以向代理114发送验证消息,验证消费方实体102已经从针对外部实体112的记录12中删除。在534处,代理114可以向数据存储118发送对于针对外部实体112的引用计数16的值的请求。该请求可以包括外部实体112的名称。
在536处,数据存储118可以向代理114提供引用计数16的值。在该示例中,引用计数16的值可以是零。在538处,代理114可以验证引用计数的值是否大于零。如果引用计数的值等于零,则当前没有消费方实体与外部实体112相关联,并且因此,外部实体112可能不再被系统100内的任何消费方实体使用。以这样,针对外部实体112的CRO 14可以从服务网格106中被移除。
在540处,代理114可以向控制器116发送删除请求以删除外部实体112。删除请求可以包括外部实体112的名称。在542处,控制器116可以向Kubernetes控制平面108发送删除资源请求。Kubernetes控制平面108可以删除针对与针对外部实体112的CRO14相关联的Istio网络资源的配置。以这样,可以从针对与外部实体112相关联的CRO的服务网格106中删除Istio网络资源。
在544处,控制器116可以检查针对Istio网络资源的删除是否完成。针对CRO 14的Istio网络资源的移除可能需要一段时间来完成。在这段时间内,控制器116继续检查删除的状态。
在546处,响应于针对CRO 14的Istio网络资源从服务网格106被移除,控制器116可以从Kubernetes控制平面108接收状态已删除消息。在548处,响应于针对CRO 14的Istio网络资源的删除,Kubernetes控制平面108还可以向代理114发送通知。以这样,代理114可以接收指示针对CRO 14的改变以及CRO 14已经从服务网格106被移除的通知。
在550处,代理114可以向消费方实体102发送完成消息,指示消费方实体102已经从外部实体112被注销。由外部实体112提供的服务可以不再由消费方实体102可访问。此外,在不发送向外部实体112注册的新请求的情况下,由外部实体112提供的服务可以不再由系统100内的其他消费方实体可访问。
现在参考图6,用于为动态发现的对等体或网络功能(NF)配置服务网格网络资源20(图2)的方法600可以由服务网格106(图1)执行。例如,一个或多个控制器116(图2)、代理114(图3)和/或数据存储118(图4)可以执行方法600的动作。在实现中,服务网格106可以是Istio服务网格。下面可以参考图1和图2的架构来讨论方法600的动作。
在602处,方法600可以包括从消费方实体接收向外部实体注册的请求。例如,消费方实体102可能已经通过3GPP协议发现了由外部实体112提供的服务10。外部实体可以是对等网络功能(NF)。该请求可以被用于通知服务网格106消费方实体102想要访问或以其他方式使用由外部实体112提供的服务10。例如,消费方实体102可以在动态环境(诸如,5G环境)中操作,在其中服务10和/或外部实体112可以通过网络存储库功能(NRF)被动态地发现。以这样,消费方实体102可以发现由一个或多个外部实体112提供的新服务10和/或可以发现一个或多个外部实体112所提供的不同服务10。响应于向消费方实体102暴露一个或多个API,代理114可以从消费方实体102接收请求。
在604处,方法600可以包括确定数据存储中是否存在针对外部实体的记录。代理114可以向数据存储118发送具有针对外部实体112的名称的消息。数据存储118可以是存储由外部实体112提供的针对一个或多个服务10的记录12的全局可访问数据存储。数据存储118可以验证数据存储118中是否存在针对由外部实体112提供的服务10的记录12。通过验证数据存储118中是否已经存在针对服务10的记录12,可以防止针对相同外部实体112的记录12的重复。
在606处,方法600可以包括在数据存储中为外部实体创建记录。响应于确定不存在针对外部实体112的记录12,数据存储118可以为外部实体112提供的服务10创建记录。以这样,在消费方实体102发现服务10之前,服务10可以是服务网格106事先不知道的。数据存储118可以包括引用计数16,其指示已经请求使用由外部实体112提供的服务10的消费方实体102的总数。此外,引用计数16还可以包括与已经请求使用由外部实体112提供的服务10的消费方实体的关联。记录12还可以用于在创建时存储针对由外部实体112提供的服务10的CRO 14。
在608处,方法600可以包括为外部实体创建CRO。代理114可以向Kubernetes控制平面108发送创建消息,以为外部实体112创建新的CRO 14。创建消息可以包括针对CRO 14的任何定制定义。例如,代理114可以针对CRO 14标识要包括的细节,例如但不限于外部实体112的名称、与服务10通信的路由要求、与外部实体112通信的路由需求、关于注释所有者的信息、和/或服务10和/或外部实体112任何其他特征。每个CRO 14可以具有不同的CRD。因此,每个CRO 14可以被专门设计用于不同的服务10和/或不同的外部实体112。Kubernetes控制平面108可以利用代理114提供的一组定制资源定义CRD动态地为外部实体112提供的服务10创建新的CRO 14。
在610处,方法600可以包括监测CRO的改变。代理114可以在CRO 14上开始观察外部实体112提供的服务10,以监测CRO14的状态。观察消息可以允许代理114接收关于与CRO14的改变相关的任何更新的通知。改变可以包括例如CRO 14的创建、CRO14的修改和/或CRO14的删除。代理114可以将改变传送到控制器116。响应于接收到CRO 14的改变的通知,代理114和/或控制器116可以执行一个或多个动作。例如,当改变是CRO 14的创建时,控制器116可以执行请求为CRO 14创建一个或多个服务网格网络资源20的动作。在另一示例中,当改变是CRO 14的删除时,控制器116可以执行请求删除针对CRO 14的一个或多个服务网格网络资源20的动作。在另一示例中,当改变是对CRO 14的修改时,控制器116可以执行请求对针对CRO14的一个或多个服务网格网络资源20进行修改的动作。
在612处,方法600可以包括为CRO创建服务网格资源。控制器116可以接收CRO 14,并且可以指示Kubernetes控制平面108为CRO 14创建一个或多个服务网格网络资源20。服务网格网络资源20可以包括但不限于服务条目、虚拟服务、目的地规则、路由规则、网关和/或配额。Kubernetes控制平面108可以为服务网格网络资源20配置具有正确配置的代理(proxy)和/或代理(agent)。例如,Kubernetes控制平面108可以使用CRO 14中的定制资源定义来确定针对服务网格网络资源20的配置。以这样,Kubernetes控制平面108可以动态地为服务网格106内新发现的外部实体112配置路由。
控制器116和/或代理114可以监测服务网格网络资源20的配置的状态。控制器116和/或代理114可以从Kubernetes控制平面108接收指示针对CRO 14的服务网格网络资源20的配置完成的通知。
在614处,方法600可以包括使用服务网格资源来启用消费方实体对外部实体的访问。代理114可以向消费方实体102发送通知,指示服务网格106准备好与外部实体112通信。消费方实体102可以使用针对CRO 14的服务网格网络资源20开始与外部实体112通信。例如,服务网格网络资源20可以启用消费方实体102与服务10之间的通信,使得消费方实体102可以访问或以其他方式使用由外部实体112提供的服务10。
在616处,方法600可以包括访问用于针对外部实体的CRO的服务网格资源。如果针对外部实体112提供的服务10的记录12已经存在于数据存储118中,则消费方实体102可以访问已经为与外部实体112所提供的服务相关联的CRO 14创建的服务网格网络资源20。代替响应于来自消费方实体102的使用外部实体112提供的服务10的请求而创建重复的CRO14和服务网格网络资源20,如果另一消费方实体先前请求向由外部实体112提供的2服务10注册,则先前为外部实体112提供的服务10建立的服务网格网络资源20可以用于消费方实体102。
在618处,方法600可以包括使用服务网格资源来启用消费方实体对外部实体的访问。消费方实体102可以使用针对CRO 14的服务网格网络资源20开始与外部实体112通信。例如,消费方实体102可以使用服务网格网络资源20访问或以其他方式使用由外部实体112提供的服务10。
以这样,在由一个或多个外部实体112提供的新网络功能被发现时,方法600可以被用于动态地创建和配置服务网格资源。
图7示出了可以包括在计算机系统700内的某些组件。一个或多个计算机系统700可以被用于实现本文所描述的各种设备、组件和系统。
计算机系统700包括处理器701。处理器701可以是通用单芯片或多芯片微处理器(例如,高级RISC(精简指令集计算机)机器(ARM))、专用微处理器(例如数字信号处理器(DSP))、微控制器、可编程门阵列等。处理器701可以称为中央处理单元(CPU)。尽管在图7的计算机系统700中仅示出了单个处理器701,但是在备选配置中,处理器(例如,ARM和DSP)的组合可以被使用。
计算机系统700还包括与处理器701进行电子通信的存储器703。存储器703可以是能够存储电子信息的任何电子组件。例如,存储器703可以被具体化为随机存取存储器(RAM)、只读存储器(ROM)、磁盘存储介质、光存储介质、RAM中的闪存设备、包括在处理器中的板载存储器、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)存储器、寄存器等,包括其组合。
指令705和数据707可以被存储在存储器703中。指令705可以由处理器701执行以实现本文公开的一些或全部功能。执行指令705可以涉及使用存储在存储器703中的数据707。本文描述的模块和组件的各种示例中的任何示例可以部分或全部实现为存储在存储器703中并且由处理器701执行的指令705。这里描述的各种数据的示例中的任何示例可以是存储在存储器703中并在处理器701执行指令705期间使用的数据707中的数据。
计算机系统700还可以包括用于与其他电子设备通信的一个或多个通信接口709。(多个)通信接口709可以基于有线通信技术、无线通信技术或两者。通信接口709的一些示例包括通用串行总线(USB)、以太网适配器、根据电气和电子工程师协会(IEEE)802.11无线通信协议操作的无线适配器、
Figure BDA0004093992190000231
无线通信适配器和红外(IR)通信端口。
计算机系统700还可以包括一个或多个输入设备711和一个或多个输出设备713。输入设备711的一些示例包括键盘、鼠标、麦克风、远程控制设备、按钮、操纵杆、轨迹球、触摸板和光笔。输出设备713的一些示例包括扬声器和打印机。典型地包括在计算机系统700中的一种特定类型的输出设备是显示设备715。与本文公开的实施例一起使用的显示设备715可以利用任何合适的图像投影技术,例如液晶显示器(LCD)、发光二极管(LED)、气体等离子体、电致发光等。还可以提供显示控制器717,用于将存储在存储器703中的数据707转换为显示设备715上所显示的文本、图形和/或运动图像(视情况而定)。
计算机系统700的各个组件可以通过一个或多个总线耦合在一起,总线可以包括电源总线、控制信号总线、状态信号总线、数据总线等。出于清楚的目的,各种总线在图7中被示出为总线系统719。
除非具体描述为以特定方式实现,本文所描述的技术可以以硬件、软件、固件或其任何组合来实现。被描述为模块、组件等的任何特征也可以一起实现在集成逻辑设备中,或者单独实现为分立但可互操作的逻辑设备。如果以软件实现,则技术可以至少部分地由包括指令的非瞬态处理器可读存储介质实现,指令在由至少一个处理器执行时执行本文描述的一个或多个方法。指令可以被组织成例程、程序、对象、组件、数据结构等,其可以执行特定的任务和/或实现特定的数据类型,并且在各种实施例中可以根据需要进行组合或分布。
计算机可读介质可以是由通用或专用计算机系统可以访问的任何可用介质。存储计算机可执行指令的计算机可读介质是非瞬态计算机可读存储介质(设备)。携带计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本公开的实施例可以包括至少两种明显不同的计算机可读介质:非瞬态计算机可读存储介质(设备)和传输介质。
如本文所使用的,非瞬态计算机可读存储介质(设备)可以包括RAM、ROM、EEPROM、CD-ROM、固态驱动器(“SSD”)(例如,基于RAM)、闪存、相变存储器(“PCM”)、其他类型的存储器、其他光盘存储、磁盘存储或其他磁存储设备,或者可以用于存储计算机可执行指令或数据结构形式的所需程序代码装置并且可以由通用或专用计算机访问的任何其他介质。
在此描述的方法的步骤和/或动作可以彼此互换而不脱离权利要求的范围。换言之,除非所描述的方法的正确操作需要步骤或动作的特定顺序,否则可以在不脱离权利要求的范围的情况下修改特定步骤和/或动作的顺序和/或使用。
术语“确定”包括各种各样的动作,因此,“确定”可以包括运算、计算、处理、导出、调查、查找(例如,在表、数据库或其他数据结构中查找)、查明等。此外,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。此外,“确定”可以包括解决、选择、挑选、建立等。
冠词“一”、“一个”和“该”旨在表示存在上述描述中的一个或多个元素。术语“包括”、“包含”和“具有”旨在具有包容性,意味着可能存在除所列元素之外的其他元素。此外,应当理解,对本公开的“一个实现”或“实施”的引用不旨在被解释为排除也包含所述特征的附加实施的存在。例如,关于本文中的实现描述的任何元素可以与本文中描述的任何其他实现的任何元素组合。本文所述的数字、百分比、比率或其他值旨在包括该值,以及“大约”或“近似”所述值的其他值,如本公开的实现所涵盖的本领域普通技术人员所理解的。因此,所述值应被足够广泛地解释以包含至少与所述值足够接近以执行期望功能或实现期望结果的值。所述值至少包括在适当的制造或生产过程中预期的变化,并且可以包括在所述值的5%以内、1%以内、0.1%以内或0.01%以内的值。
鉴于本公开,本领域普通技术人员应当认识到,等效构造不脱离本公开的精神和范围,并且可以对本文所公开的实现进行各种改变、替换和改变,而不脱离本发明的精神和范围。等效结构,包括功能性“手段加功能”条款,旨在涵盖本文中描述的执行所描述功能的结构,包括以相同方式操作的结构等效物和提供相同功能的等效结构两者。申请人的明确意图是,除“手段”与相关功能一起出现的权利要求外,不为任何权利要求援引手段加功能或其他功能要求。属于权利要求的含义和范围内的对实现的每个添加、删除和修改都将被权利要求所包含。
在不脱离其精神或特征的情况下,本公开可以以其他特定形式体现。所描述的实施例被认为是说明性的而非限制性的。因此,本公开的范围由所附权利要求而不是由前述描述来指示。在权利要求的含义和等效范围内的改变应包含在其范围内。

Claims (15)

1.一种系统,包括:
一个或多个处理器;
与所述一个或多个处理器电子通信的存储器;
数据存储;和
存储在所述存储器中的指令,所述指令由所述一个或多个处理器可执行以:
在服务网格网络处从消费方实体接收用以向提供服务的外部实体注册的请求,其中所述服务是由所述消费方实体使用5G网络中的网络存储库功能新发现的;
在所述数据存储中为所述服务创建记录,以维持使用所述服务的所述消费方实体的关联;
响应于从所述消费方实体接收到所述请求,为由所述外部实体提供的所述服务创建定制资源对象,其中所述定制资源对象包括定义所述服务的特性和针对与所述服务通信的路由要求的定制资源定义;
将所述定制资源对象提供给管理所述服务网格网络的网络资源的Kubernetes控制平面,并且指示所述Kubernetes控制平面为所述定制资源对象动态地创建一个或多个服务网格网络资源以及使用所述定制资源定义配置所述一个或多个服务网格网络资源;以及
启用来自所述消费方实体的通信,以通过使用所述一个或多个服务网格网络资源访问由所述外部实体提供的所述服务。
2.根据权利要求1所述的系统,其中所述指令还由所述一个或多个处理器可执行以:
监测所述定制资源对象;以及
响应于所述定制资源对象的改变,执行与所述一个或多个服务网格网络资源有关的一个或多个动作,其中所述改变包括创建、修改或者删除中的一项或多项。
3.根据权利要求2所述的系统,其中所述指令还由所述一个或多个处理器可执行以:
响应于所述定制资源对象的所述删除,删除针对所述定制资源对象的所述一个或多个服务网格网络资源,
其中响应于所述一个或多个服务网格网络资源被删除,所述消费方实体与所述外部实体之间的所述通信不被启用。
4.根据权利要求1所述的系统,其中所述指令还由所述一个或多个处理器可执行以:
利用所述定制资源对象在所述数据存储中为所述外部实体创建记录,其中所述外部主体是新发现的;以及
将针对所述定制资源对象的引用计数增加一,其中所述引用计数还标识与使用所述外部实体的所述消费方实体的关联。
5.根据权利要求4所述的系统,其中所述指令还由所述一个或多个处理器可执行以:
从第二消费方实体接收用以向由所述外部实体提供的所述服务注册的第二请求;
确定针对所述服务的所述记录存在于所述数据存储中;
将所述数据存储中的针对所述定制资源对象的所述引用计数增加一,并且更新与所述服务的所述关联以包括所述第二消费方实体;以及
通过使用针对针对所述服务的所述定制资源对象的所述一个或多个服务网格网络资源,使所述第二消费方实体能够访问所述服务。
6.根据权利要求1所述的系统,其中所述服务网格网络资源包括服务条目、虚拟服务、目的地规则、路由规则、网关或配额中的一项或多项。
7.根据权利要求1所述的系统,其中在从所述消费方实体接收所述请求之前,所述服务对于所述服务网格是先前未知的,并且所述定制资源定义是为所述服务特别创建的。
8.一种方法,包括:
在服务网格网络处,从消费方实体接收用以向提供服务的外部实体注册的请求,其中所述服务是由所述消费方实体使用5G网络中的网络存储库功能新发现的;
在数据存储中为所述服务创建记录,以维持使用所述服务的所述消费方实体的关联;
响应于从所述消费方实体接收到所述请求,为由所述外部实体提供的所述服务创建定制资源对象,其中所述定制资源对象包括定义所述服务的特性和针对与所述服务通信的路由要求的定制资源定义;
将所述定制资源对象提供给管理所述服务网格网络的网络资源的Kubernetes控制平面,并且指示所述Kubernetes控制平面为所述定制资源对象动态地创建一个或多个服务网格网络资源以及使用所述定制资源定义配置所述一个或多个服务网格网络资源;以及
启用来自所述消费方实体的通信,以通过使用所述一个或多个服务网格网络资源访问由所述外部实体提供的所述服务。
9.根据权利要求8所述的方法,还包括:
监测所述定制资源对象;以及
响应于所述定制资源对象的改变,执行与所述一个或多个服务网格网络资源有关的一个或多个动作,其中所述改变包括创建、修改或者删除中的一项或多项。
10.根据权利要求9所述的方法,还包括:
响应于所述定制资源对象的所述删除,删除针对所述定制资源对象的所述一个或多个服务网格网络资源,
其中响应于所述一个或多个服务网格网络资源被删除,所述消费方实体与所述外部实体之间的所述通信不被启用。
11.根据权利要求8所述的方法,还包括:
利用所述定制资源对象更新数据存储中针对所述服务的所述记录;以及
将针对所述定制资源对象的引用计数增加一,其中所述引用计数被用于标识与使用所述服务的所述消费方实体的关联。
12.根据权利要求11所述的方法,还包括:
从第二消费方实体接收用以向由所述外部实体提供的所述服务注册的第二请求;
确定针对所述服务的所述记录存在于所述数据存储中;
将所述数据存储中的针对所述定制资源对象的所述引用计数增加一,并且更新与所述服务的所述关联以包括所述第二消费方实体;以及
通过使用针对针对所述服务的所述定制资源对象的所述一个或多个服务网格网络资源,使所述第二消费方实体能够访问所述服务。
13.根据权利要求8所述的方法,其中所述服务网格网络资源包括服务条目、虚拟服务、目的地规则、路由规则、网关或配额中的一项或多项。
14.根据权利要求8所述的方法,其中在从所述消费方实体接收所述请求之前,所述服务对于所述服务网格是先前未知的,并且所述定制资源对象包括为所述外部实体特别地创建的定制资源定义。
15.一种计算机可读介质,存储由计算机设备可执行的指令,所述指令包括:
用于使得所述计算机设备在服务网格网络处从消费方实体接收用以向提供服务的外部实体注册的请求的至少一个指令,其中所述服务是由所述消费方实体使用5G网络中的网络存储库功能新发现的;
用于使得所述计算机设备在数据存储中为所述服务创建记录以维持使用所述服务的所述消费方实体的关联的至少一个指令;
用于使得所述计算机设备响应于从所述消费方实体接收到所述请求,为由所述外部实体提供的所述服务创建定制资源对象的至少一个指令,其中所述定制资源对象包括定义所述服务的特性以及针对与所述服务通信的路由要求的定制资源定义;
用于使得所述计算机设备向Kubernetes控制平面提供所述定制资源对象并且指示所述Kubernetes控制平面为所述定制资源对象动态地创建一个或多个服务网格网络资源以及使用所述定制资源定义配置所述一个或多个服务网格网络资源的至少一个指令,所述Kubernetes控制平面管理所述服务网格网络的网络资源;以及
用于使得所述计算机设备启用来自所述消费方实体的通信以使用所述一个或多个服务网格网络资源访问由所述外部实体提供的所述服务的至少一个指令。
CN202180052525.8A 2020-08-28 2021-05-26 为动态发现的对等体或网络功能配置服务网格联网资源 Pending CN116018788A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/006,286 US11522951B2 (en) 2020-08-28 2020-08-28 Configuring service mesh networking resources for dynamically discovered peers or network functions
US17/006,286 2020-08-28
PCT/US2021/034124 WO2022046222A1 (en) 2020-08-28 2021-05-26 Configuring service mesh networking resources for dynamically discovered peers or network functions

Publications (1)

Publication Number Publication Date
CN116018788A true CN116018788A (zh) 2023-04-25

Family

ID=76502856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180052525.8A Pending CN116018788A (zh) 2020-08-28 2021-05-26 为动态发现的对等体或网络功能配置服务网格联网资源

Country Status (4)

Country Link
US (2) US11522951B2 (zh)
EP (1) EP4204962A1 (zh)
CN (1) CN116018788A (zh)
WO (1) WO2022046222A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10942788B2 (en) 2018-06-15 2021-03-09 Vmware, Inc. Policy constraint framework for an sddc
US10812337B2 (en) 2018-06-15 2020-10-20 Vmware, Inc. Hierarchical API for a SDDC
WO2021196080A1 (en) 2020-04-01 2021-10-07 Vmware Information Technology (China) Co., Ltd. Auto deploying network elements for heterogeneous compute elements
US11803408B2 (en) 2020-07-29 2023-10-31 Vmware, Inc. Distributed network plugin agents for container networking
US11863352B2 (en) 2020-07-30 2024-01-02 Vmware, Inc. Hierarchical networking for nested container clusters
US11606254B2 (en) 2021-06-11 2023-03-14 Vmware, Inc. Automatic configuring of VLAN and overlay logical switches for container secondary interfaces
US20230231741A1 (en) 2022-01-14 2023-07-20 Vmware, Inc. Per-namespace ip address management method for container networks
US20230345258A1 (en) * 2022-04-20 2023-10-26 L3Vel, Llc Software tools for facilitating deployment of mesh-based communication systems
CN115208754B (zh) * 2022-06-28 2024-02-23 深信服科技股份有限公司 配置的下发方法、装置、计算机设备和存储介质
CN115174269B (zh) * 2022-09-05 2022-12-09 中国人民解放军国防科技大学 Linux主机网络通信安全防护方法和装置
US11848910B1 (en) 2022-11-11 2023-12-19 Vmware, Inc. Assigning stateful pods fixed IP addresses depending on unique pod identity
US11831511B1 (en) 2023-01-17 2023-11-28 Vmware, Inc. Enforcing network policies in heterogeneous systems

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11283865B2 (en) * 2017-09-13 2022-03-22 Vijay Madisetti Service meshes and smart contracts for zero-trust systems
WO2019204199A1 (en) 2018-04-18 2019-10-24 Mavenir Networks, Inc. Services-based architecture for ims
US11716264B2 (en) 2018-08-13 2023-08-01 Cisco Technology, Inc. In situ triggered function as a service within a service mesh
US11762656B2 (en) * 2020-07-13 2023-09-19 Salesforce, Inc. Service fabrication tool
US11422846B2 (en) * 2020-07-20 2022-08-23 Vmware, Inc. Image registry resource sharing among container orchestrators in a virtualized computing system

Also Published As

Publication number Publication date
US20230114443A1 (en) 2023-04-13
US11936724B2 (en) 2024-03-19
US20220070250A1 (en) 2022-03-03
EP4204962A1 (en) 2023-07-05
US11522951B2 (en) 2022-12-06
WO2022046222A1 (en) 2022-03-03

Similar Documents

Publication Publication Date Title
CN116018788A (zh) 为动态发现的对等体或网络功能配置服务网格联网资源
CN110462589B (zh) 本地装置协调器中的按需代码执行
EP3545662B1 (en) Managing messaging protocol communications
US10637817B2 (en) Managing messaging protocol communications
US10148493B1 (en) API gateway for network policy and configuration management with public cloud
US10193839B2 (en) Managing security in messaging protocol communications
AU2020200723A1 (en) Systems and methods for blueprint-based cloud management
CN110352401B (zh) 具有按需代码执行能力的本地装置协调器
US11516312B2 (en) Kubernetes as a distributed operating system for multitenancy/multiuser
US9021005B2 (en) System and method to provide remote device management for mobile virtualized platforms
US9130943B1 (en) Managing communications between client applications and application resources of on-premises and cloud computing nodes
US11432137B2 (en) Service notification method for mobile edge host and apparatus
US11909845B2 (en) Methods and systems for managing applications of a multi-access edge computing environment
US11336588B2 (en) Metadata driven static determination of controller availability
US10541961B2 (en) System and method for automating actions in distributed computing
CN113301116A (zh) 微服务应用跨网络通信方法、装置、系统及设备
WO2019223099A1 (zh) 应用程序的调用方法及系统
US10931630B2 (en) System and method for connecting using aliases
US11184242B2 (en) System and method for automating the discovery process
CN116233217B (zh) 基于路由的页面跳转方法、装置、电子设备及存储介质
JP2024010659A (ja) コマンド検証による迅速なエラー検出
CN116668467A (zh) 一种资源访问方法、装置、云托管系统及电子设备

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