CN105681488B - 一种基于fleet集群服务分配的服务网络地址获取方法 - Google Patents
一种基于fleet集群服务分配的服务网络地址获取方法 Download PDFInfo
- Publication number
- CN105681488B CN105681488B CN201610069035.XA CN201610069035A CN105681488B CN 105681488 B CN105681488 B CN 105681488B CN 201610069035 A CN201610069035 A CN 201610069035A CN 105681488 B CN105681488 B CN 105681488B
- Authority
- CN
- China
- Prior art keywords
- service
- network address
- domain name
- cluster
- host
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
Abstract
本发明属于集群服务管理领域,特别涉及一种基于fleet集群服务分配的服务网络地址获取方法。本方法包括首先在集群中启动一个全局的基础容器服务,基础容器服务获取当前主机的网络地址,基础容器服务启动在所有的主机上,并以各自当前主机的主机域名和所述网络地址上报至域名解析系统,待管理的目标容器服务启动后,启动所述目标容器服务的伴随服务,伴随服务将服务名称作为域名上报至域名解析系统,并与主机域名绑定,通过所述服务名称即可在域名解析系统中查询到目标容器服务所在主机的网络地址。本发明可以直接获取容器服务所在当前主机的网络地址,为管理集群服务提供了极大的方便,方便用户对网络地址的访问,而且提高了获取网络地址的效率。
Description
技术领域
本发明属于集群服务管理领域,特别涉及一种基于fleet集群服务分配的服务网络地址获取方法。
背景技术
Linux容器技术是一种操作系统层虚拟化技术,为Linux内核容器功能的一个用户空间接口,它将应用软件系统打包成一个软件容器,内含应用软件本身的代码,以及所需要的操作系统核心和库。在Linux内核中,提供了cgroups功能,来达成资源的区隔化,同时也提供了名称空间区隔化的功能,使应用程序看到的操作系统环境被区隔成独立区间。
容器利用cgroups与名称空间的功能,提供应用软件一个独立的操作系统环境。Fleet是一个开源的集群级别的集群服务管理工具,用户将要启动的服务提交给fleet,由fleet对服务进行分配和管理,其中,服务以docker容器的形式运行。
现有技术中的服务网络地址获取方法不能够直接获取容器服务所在主机的网络地址,只能通过主机名称获取容器服务所在的主机,然而集群中主机的网络地址往往不是固定的,不方便前端用户的访问服务,而且获取网络地址效率低。
发明内容
本发明为了克服上述现有技术的不足,提供了一种基于fleet集群服务分配的服务网络地址获取方法,可以直接获取容器服务所在当前主机的网络地址,为管理集群服务提供方便,便于用户对网络地址的访问。
为实现上述目的,本发明采用了以下技术措施:
一种基于fleet集群服务分配的服务网络地址获取方法,包括以下步骤:
S1、在集群中启动一个全局的基础容器服务,所述基础容器服务获取当前主机的网络地址;
S2、所述基础容器服务启动在集群中所有的主机上,并以各自当前主机的主机名称作为域名即为主机域名和所述网络地址上报至域名解析系统;
S3、待管理的目标容器服务启动后,启动所述目标容器服务的伴随服务;
S4、所述伴随服务将服务名称作为域名即为服务域名上报至域名解析系统,并与所述主机域名绑定;
S5、通过所述服务名称即可在域名解析系统中查询到所述目标容器服务所在主机的网络地址。
优选的,所述基础容器服务在启动时设置其网络配置为Host-Only模式。
优选的,所述基础容器服务通过编写基于go语言的程序获取当前主机的网络地址。
优选的,所述网络地址为当前主机连接到集群中物理网卡的地址。
进一步的,所述伴随服务启动在所述目标容器服务所在的主机上。
进一步的,步骤S5具体包括:
S51、首先域名解析系统根据所述服务名称自动查找CNAME链;
S52、通过所述CNAME链查询到主机域名和网络地址;
S53、最终由网络地址确定当前主机的网络地址。
本发明的有益效果在于:
1)、本发明通过启动所述容器服务的伴随服务,所述伴随服务将服务域名上报至域名解析系统与所述主机域名进行绑定,最终通过所述服务名称即可在域名解析系统中查询到容器服务所在主机的网络地址,本方法可以直接获取容器服务所在当前主机的网络地址,为管理集群服务提供了极大的方便,方便用户对网络地址的访问,而且提高了获取网络地址的效率。
2)、所述容器服务通过编写基于go语言的程序获取当前主机的网络地址,可以在不损失应用程序性能的情况下降低代码的复杂性,而且go语言程序代码的运行速度快、编程简单。
3)、所述域名解析系统根据所述服务名称自动查找CNAME链,通过CNAME链确定当前主机的网络地址,提高了在查询网络地址的过程中准确性和可靠性。
附图说明
图1为本发明的流程图;
图2为本发明涉及的容器服务启动流程图;
图3为本发明的容器服务所在主机的网络地址获取的流程图。
图中的附图标记含义如下:
ipreport.service—基础容器服务
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,一种基于fleet集群服务分配的服务网络地址获取方法,包括,在集群中启动一个全局的基础容器服务ipreport.service,所述基础容器服务ipreport.service获取当前主机的网络地址;所述基础容器服务ipreport.service启动在集群中所有的主机上,并以各自当前主机的主机名称作为域名即为主机域名和所述网络地址上报至域名解析系统;待管理的目标容器服务启动后,启动所述目标容器服务的伴随服务;所述伴随服务将服务名称作为域名即为服务域名上报至域名解析系统,并与所述主机域名绑定;通过所述服务名称即可在域名解析系统中查询到所述目标容器服务所在主机的网络地址。
下面结合具体实施例,说明本发明的服务网络地址获取方法。
如图2中A所示,由于所述容器服务本身并没有提供获取当前主机网络地址的功能,因此在集群中启动一个名为ipreport.service的全局的基础容器服务,全局的基础容器服务的含义为在集群中每一台主机上分别运行一个一个名为ipreport.service的容器服务,这个ipreport.service容器服务作为系统的基础服务,所述基础容器服务在启动时设置其网络配置为Host-Only模式,容器服务使用当前主机的网络,它拥有完全的本地主机接口访问权限,因此,在基础容器服务中获取的网络地址即为当前主机的网络地址。所述容器服务通过基于go语言的程序获取当前主机的网络地址,由于存在多网卡、虚拟网卡以及回环网络等因素,当前主机可能存在多个网络地址,此处需加以甄别,所述网络地址为当前主机连接到集群中物理网卡的地址。
如图3所示,ipreport.service服务以当前主机的主机名称作为域名即为主机域名和所述网络地址的对应关系上报至域名解析系统,由域名解析系统将主机域名指向当前主机的网络地址,ipreport.service服务以主机名为hostname1的主机注册域名解析系统记录为:hostname1.domain.lan→192.168.1.x,其中192.168.1.x为主机的网络地址。
如图2中B所示,在集群中启动若干个待管理的目标容器服务,fleet集群根据待管理的目标容器服务的配置和集群中主机的状态自动将容器服务启动在特定的主机上,如service1.service启动在hostname1主机上,此时前端用户并不知道各个待管理的目标容器服务所在主机的网络地址。
如图2中C所示,在待管理的目标容器服务启动完成后,启动所述待管理的目标容器服务的伴随服务,所述伴随服务的配置文件中应加上限制条件,使得在fleet集群分配服务时,将一个待管理的目标容器服务的伴随服务分配到所述容器服务所在的主机上,如守护容器service1-sidekick.service会被分配到service1.service所在的主机hostname1上。
如图3所示,伴随服务将服务名称作为域名即为服务域名上报至域名解析系统,并与所述主机域名绑定:伴随服务能够直接获取服务名称和当前主机的主机名称,因此可以将服务名到主机名的解析上报给域名解析系统,如守护容器service1-sidekick.service,将其服务名称service1生成的域名为service1.domain.lan,并注册域名解析系统记录:service1.domain.lan→hostname1.domain.lan。
当查询容器服务所在主机的网络地址时,域名解析系统会自动查找CNAME链,经由主机名的域名查找到最终的主机网络地址,当用户想访问service1.service服务时,只需使用service1.domain.lan域名,域名解析系统通过CNAME链进行解析,service1.domain.lan→hostname1.domain.lan→192.168.1.x,由此可确定当前主机的网络地址。
Claims (5)
1.一种基于fleet集群服务分配的服务网络地址获取方法,其特征在于,包括以下步骤:
S1、在集群中启动一个全局的基础容器服务ipreport.service,所述基础容器服务ipreport.service获取当前主机的网络地址;
S2、所述基础容器服务ipreport.service启动在集群中所有的主机上,并以各自当前主机的主机名称作为域名即为主机域名和所述网络地址上报至域名解析系统;
S3、待管理的目标容器服务启动后,启动所述目标容器服务的伴随服务;
S4、所述伴随服务将服务名称作为域名即为服务域名上报至域名解析系统,并与所述主机域名绑定;
S5、通过所述服务名称即可在域名解析系统中查询到所述目标容器服务所在主机的网络地址;
步骤S5具体包括:
S51、首先域名解析系统根据所述服务名称自动查找CNAME链;
S52、通过所述CNAME链查询到主机域名和网络地址;
S53、最终由网络地址确定当前主机的网络地址。
2.如权利要求1所述的一种基于fleet集群服务分配的服务网络地址获取方法,其特征在于:所述基础容器服务ipreport.service在启动时设置其网络配置为Host-Only模式。
3.如权利要求1所述的一种基于fleet集群服务分配的服务网络地址获取方法,其特征在于:所述基础容器服务ipreport.service通过编写基于go语言的程序获取当前主机的网络地址。
4.如权利要求3所述的一种基于fleet集群服务分配的服务网络地址获取方法,其特征在于:所述网络地址为当前主机连接到集群中物理网卡的地址。
5.如权利要求1所述的一种基于fleet集群服务分配的服务网络地址获取方法,其特征在于:所述伴随服务启动在所述目标容器服务所在的主机上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610069035.XA CN105681488B (zh) | 2016-01-28 | 2016-01-28 | 一种基于fleet集群服务分配的服务网络地址获取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610069035.XA CN105681488B (zh) | 2016-01-28 | 2016-01-28 | 一种基于fleet集群服务分配的服务网络地址获取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105681488A CN105681488A (zh) | 2016-06-15 |
CN105681488B true CN105681488B (zh) | 2019-07-23 |
Family
ID=56303367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610069035.XA Active CN105681488B (zh) | 2016-01-28 | 2016-01-28 | 一种基于fleet集群服务分配的服务网络地址获取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105681488B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829384A (zh) * | 2018-06-13 | 2018-11-16 | 平安科技(深圳)有限公司 | 容器的管理方法、装置、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101018239A (zh) * | 2006-02-08 | 2007-08-15 | 胡继强 | 浏览器/服务器方式实现动态域名 |
CN101841548A (zh) * | 2010-05-18 | 2010-09-22 | 中国科学院软件研究所 | 主机标识到网络地址的映射方法 |
CN102340554A (zh) * | 2011-09-29 | 2012-02-01 | 奇智软件(北京)有限公司 | 一种域名系统dns的最优应用服务器选取方法和装置 |
CN103051740A (zh) * | 2012-12-13 | 2013-04-17 | 上海牙木通讯技术有限公司 | 域名解析方法、dns服务器及域名解析系统 |
CN104079676A (zh) * | 2013-03-27 | 2014-10-01 | 中国移动通信集团公司 | 一种云计算集群主机地址查询方法及设备 |
-
2016
- 2016-01-28 CN CN201610069035.XA patent/CN105681488B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101018239A (zh) * | 2006-02-08 | 2007-08-15 | 胡继强 | 浏览器/服务器方式实现动态域名 |
CN101841548A (zh) * | 2010-05-18 | 2010-09-22 | 中国科学院软件研究所 | 主机标识到网络地址的映射方法 |
CN102340554A (zh) * | 2011-09-29 | 2012-02-01 | 奇智软件(北京)有限公司 | 一种域名系统dns的最优应用服务器选取方法和装置 |
CN103051740A (zh) * | 2012-12-13 | 2013-04-17 | 上海牙木通讯技术有限公司 | 域名解析方法、dns服务器及域名解析系统 |
CN104079676A (zh) * | 2013-03-27 | 2014-10-01 | 中国移动通信集团公司 | 一种云计算集群主机地址查询方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105681488A (zh) | 2016-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110647469B (zh) | 一种微服务的测试方法、装置、计算机设备和存储介质 | |
CN107566541B (zh) | 容器网络资源分配方法、系统、存储介质和电子设备 | |
US20200379794A1 (en) | Method for containerizing application on cloud platform | |
US8336047B2 (en) | Provisioning virtual resources using name resolution | |
EP2827245B1 (en) | Enabling multi-tenant virtual servers in a cloud system | |
CN106341438B (zh) | 请求处理方法和装置 | |
CN103795759A (zh) | 一种虚拟机镜像文件的调度方法和系统 | |
CN103167041A (zh) | 一种支持云环境应用集群自动化部署的系统及方法 | |
CN109040343A (zh) | 域名解析方法、装置、计算机可读存储介质及电子设备 | |
CN103905551B (zh) | 一种服务调用方法及装置 | |
CA2581473A1 (en) | System and method for creating multiple operating territories within a meter reading system | |
CN112073448B (zh) | 一种双系统终端的服务隔离方法和装置 | |
EP3309681A1 (en) | Application migration system | |
CN103685590A (zh) | 获取ip地址的方法及系统 | |
CN112256399B (zh) | 基于Docker的Jupyter Lab多用户远程开发方法及系统 | |
US9684579B1 (en) | Test device selection using multi-pass scoring | |
CN103701817A (zh) | 一种配置文件的生成方法及装置 | |
US20140222896A1 (en) | Distributed processing system and management method of distributed processing system | |
CN105681488B (zh) | 一种基于fleet集群服务分配的服务网络地址获取方法 | |
CN102970161A (zh) | 云机器调配平台及调配方法 | |
CN104657256A (zh) | 一种收集用例与代码之间映射关系的方法和装置 | |
JP2016162016A (ja) | 管理情報取得プログラム、管理情報取得方法及び管理情報取得装置 | |
JP2006018710A (ja) | ネットワークサービスの性能測定方法及びプログラム | |
CN107249050A (zh) | 云平台中资源的管理方法和装置 | |
CN109819059B (zh) | 管理网络设备的方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |