CN112463298A - 一种跨命名空间检测容器可用性的方法 - Google Patents
一种跨命名空间检测容器可用性的方法 Download PDFInfo
- Publication number
- CN112463298A CN112463298A CN202011351918.2A CN202011351918A CN112463298A CN 112463298 A CN112463298 A CN 112463298A CN 202011351918 A CN202011351918 A CN 202011351918A CN 112463298 A CN112463298 A CN 112463298A
- Authority
- CN
- China
- Prior art keywords
- network
- pod
- container
- availability
- kuryr
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in 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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及云容器网络技术领域,具体提供了一种跨命名空间检测容器可用性的方法,其特征在于,具有以下步骤:S1、部署安装kuryr集群;S2、pod创建;S3、对kubelet的源码进行改造;S4、区分pod网络;S5、仅对kuryr集群改造。与现有技术相比,本发明保证了容器云应用产品在宿主机与容器网络不通的情况下依然是高稳定及高可用的,具有良好的推广价值。
Description
技术领域
本发明涉及云容器网络技术领域,具体提供一种跨命名空间检测容器可用性的方法。
背景技术
容器技术是比较流行的提供微服务的PaaS技术,而Kubernetes是近期最流行的容器编排管理技术。在Kubernetes集群中,pod的ip分配及网络管理是由具体的cni插件实现的。目前开源的cni插件有很多种,主流的有calico、flannel等,除此之外还有一些针对特殊场景的cni插件,例如kuryr。
kuryr用于将pod容器网络和openstack的neutron网络打通,给pod分配的ip来自于neutron网络中租户的network。因此,可借助neutron的能力实现容器网络的连通及隔离。当选择kuryr作为集群的网络插件时,不可避免的也会带来一些其它的问题,首当其冲的是pod的健康检查。
pod的健康检查会定期检测容器的健康状况,一旦检测到容器不健康,则通过重启等手段进行处理,这从某种程度上实现了高可用。而健康检查的原理是通过pod所在节点的kubelet进行接口调用等形式进行探测,但由于kuryr自身实现方式的限制,宿主机网络无法直接和容器网络打通,这会导致调用接口必定会失败,到目前为止基于此问题没有一个现成的解决方案。
发明内容
本发明是针对上述现有技术的不足,提供一种实用性强的跨命名空间检测容器可用性的方法。
本发明解决其技术问题所采用的技术方案是:
一种跨命名空间检测容器可用性的方法,具有以下步骤:
S1、部署安装kuryr集群;
S2、pod创建;
S3、对kubelet的源码进行改造;
S4、区分pod网络;
S5、仅对kuryr集群改造。
进一步的,在步骤S1中,在部署安装kuryr的集群时,在每个节点上同时安装neutron-dhcp-agent组件,该组件会将neutron中租户的network dhcp命名空间关联到每个节点上。
进一步的,在步骤S2中,kuryr-controller在监测到有pod创建时,将该pod对应的租户network信息增加到pod的注解中。
进一步的,在步骤S3中,对kubelet的源码进行改造,将原有的健康检查实现方式进行替换,Exec方式不需要变化。
进一步的,在步骤S3中,HTTPGet方式改造为类似ip netns exec qdhcp-{networkId}curl{ip}:{port}的方式,TCPSocket改造为类似ip netns exec qdhcp-{networkId}nc-v-z{ip}{port}的方式。
进一步的,在步骤S4中,由于cni插件只管理使用容器网络的pod,所以与使用宿主机网络的pod进行区分,对于使用宿主机网络的pod仍沿用之前的实现方式。
作为优选,在步骤S5中,对kubelet源码进行了改造,这种改造仅针对kuryr集群。
进一步的,在步骤S5中,在kubelet的启动参数中增加--network-ns-probe开关,当值为true时使用改造后的实现方式,当值为false时使用原有的实现方式。
本发明的一种跨命名空间检测容器可用性的方法和现有技术相比,具有以下突出的有益效果:
通过使用本发明,可以给容器云提供一个实现跨命名空间检测容器可用性的方法,通过把这个方法应用容器云,保证了容器云应用产品在宿主机与容器网络不通的情况下依然是高稳定及高可用的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图1是一种跨命名空间检测容器可用性的方法的流程示意图。
具体实施方式
为了使本技术领域的人员更好的理解本发明的方案,下面结合具体的实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本发明保护的范围。
下面给出一个最佳实施例:
如图1所示,本实例中的一种跨命名空间检测容器可用性的方法,具有以下步骤:
S1、部署安装kuryr集群:
在部署安装kuryr的集群时,需要在每个节点上同时安装neutron-dhcp-agent组件,该组件会将neutron中租户的network dhcp命名空间关联到每个节点上,尽管节点无法直接与容器网络打通,但是可间接通过容器对应的network dhcp命名空间进行连接,命令是ip netns exec qdhcp-{networkId}。
S2、pod创建:
kuryr-controller在监测到有pod创建时,将该pod对应的租户network信息增加到pod的注解中,方便后面取用。
S3、对kubelet的源码进行改造:
对kubelet的源码进行改造,将原有的健康检查实现方式进行替换,其中Exec方式不需要变化,HTTPGet方式改造为类似ip netns exec qdhcp-{networkId}curl{ip}:{port}的方式,TCPSocket改造为类似ip netns exec qdhcp-{networkId}nc-v-z{ip}{port}的方式。
S4、区分pod网络:
由于cni插件只管理使用容器网络的pod,因此,需要与使用宿主机网络的pod进行区分,对于使用宿主机网络的pod仍沿用之前的实现方式。
S5、仅对kuryr集群改造:
由于对于kubelet源码进行了改造,而这种改造只针对kuryr集群,而使用其它如calico网络插件的集群则不需要这种改造,因此在kubelet的启动参数中增加--network-ns-probe开关,当值为true时使用改造后的实现方式,当值为false时使用原有的实现方式。
代码为:
以coredns为例,宿主机上无法直接访问pod,但从qdhcp的命名空间中可以访问:
上述具体的实施方式仅是本发明具体的个案,本发明的专利保护范围包括但不限于上述具体的实施方式,任何符合本发明的一种跨命名空间检测容器可用性的方法权利要求书的且任何所述技术领域普通技术人员对其做出的适当变化或者替换,皆应落入本发明的专利保护范围。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (8)
1.一种跨命名空间检测容器可用性的方法,其特征在于,具有以下步骤:
S1、部署安装kuryr集群;
S2、pod创建;
S3、对kubelet的源码进行改造;
S4、区分pod网络;
S5、仅对kuryr集群改造。
2.根据权利要求1所述的一种跨命名空间检测容器可用性的方法,其特征在于,在步骤S1中,在部署安装kuryr的集群时,在每个节点上同时安装neutron-dhcp-agent组件,该组件会将neutron中租户的network dhcp命名空间关联到每个节点上。
3.根据权利要求2所述的一种跨命名空间检测容器可用性的方法,其特征在于,在步骤S2中,kuryr-controller在监测到有pod创建时,将该pod对应的租户network信息增加到pod的注解中。
4.根据权利要求3所述的一种跨命名空间检测容器可用性的方法,其特征在于,在步骤S3中,对kubelet的源码进行改造,将原有的健康检查实现方式进行替换,Exec方式不需要变化。
5.根据权利要求4所述的一种跨命名空间检测容器可用性的方法,其特征在于,在步骤S3中,HTTPGet方式改造为类似ip netns exec qdhcp-{networkId}curl{ip}:{port}的方式,TCPSocket改造为类似ip netns exec qdhcp-{networkId}nc-v-z{ip}{port}的方式。
6.根据权利要求5所述的一种跨命名空间检测容器可用性的方法,其特征在于,在步骤S4中,由于cni插件只管理使用容器网络的pod,所以与使用宿主机网络的pod进行区分,对于使用宿主机网络的pod仍沿用之前的实现方式。
7.根据权利要求6所述的一种跨命名空间检测容器可用性的方法,其特征在于,在步骤S5中,对kubelet源码进行了改造,这种改造仅针对kuryr集群。
8.根据权利要求7所述的一种跨命名空间检测容器可用性的方法,其特征在于,在步骤S5中,在kubelet的启动参数中增加--network-ns-probe开关,当值为true时使用改造后的实现方式,当值为false时使用原有的实现方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011351918.2A CN112463298B (zh) | 2020-11-26 | 2020-11-26 | 一种跨命名空间检测容器可用性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011351918.2A CN112463298B (zh) | 2020-11-26 | 2020-11-26 | 一种跨命名空间检测容器可用性的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112463298A true CN112463298A (zh) | 2021-03-09 |
CN112463298B CN112463298B (zh) | 2022-08-30 |
Family
ID=74807996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011351918.2A Active CN112463298B (zh) | 2020-11-26 | 2020-11-26 | 一种跨命名空间检测容器可用性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463298B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090287471A1 (en) * | 2008-05-16 | 2009-11-19 | Bennett James D | Support for international search terms - translate as you search |
CN102289376A (zh) * | 2011-09-16 | 2011-12-21 | 烽火通信科技股份有限公司 | 基于嵌入式的多语言web页面实现方法及系统 |
WO2018113443A1 (zh) * | 2016-12-21 | 2018-06-28 | 北京大学 | 一种多用户环境下利用浏览器访问Linux容器集群的方法和装置 |
CN109803018A (zh) * | 2019-01-24 | 2019-05-24 | 云南电网有限责任公司信息中心 | 一种基于Mesos和YARN结合的DCOS云管理平台 |
CN110737508A (zh) * | 2019-10-14 | 2020-01-31 | 浪潮云信息技术有限公司 | 一种基于浪潮云的云容器服务网络系统及实现方法 |
CN111176788A (zh) * | 2019-12-24 | 2020-05-19 | 优刻得科技股份有限公司 | Kubernetes集群的主节点的部署方法及系统 |
CN111857873A (zh) * | 2020-07-15 | 2020-10-30 | 浪潮云信息技术股份公司 | 一种实现云原生容器网络的方法 |
-
2020
- 2020-11-26 CN CN202011351918.2A patent/CN112463298B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090287471A1 (en) * | 2008-05-16 | 2009-11-19 | Bennett James D | Support for international search terms - translate as you search |
CN102289376A (zh) * | 2011-09-16 | 2011-12-21 | 烽火通信科技股份有限公司 | 基于嵌入式的多语言web页面实现方法及系统 |
WO2018113443A1 (zh) * | 2016-12-21 | 2018-06-28 | 北京大学 | 一种多用户环境下利用浏览器访问Linux容器集群的方法和装置 |
CN109803018A (zh) * | 2019-01-24 | 2019-05-24 | 云南电网有限责任公司信息中心 | 一种基于Mesos和YARN结合的DCOS云管理平台 |
CN110737508A (zh) * | 2019-10-14 | 2020-01-31 | 浪潮云信息技术有限公司 | 一种基于浪潮云的云容器服务网络系统及实现方法 |
CN111176788A (zh) * | 2019-12-24 | 2020-05-19 | 优刻得科技股份有限公司 | Kubernetes集群的主节点的部署方法及系统 |
CN111857873A (zh) * | 2020-07-15 | 2020-10-30 | 浪潮云信息技术股份公司 | 一种实现云原生容器网络的方法 |
Non-Patent Citations (1)
Title |
---|
黄巨涛等: "基于云平台的人工智能开源开发平台框架研究", 《自动化与仪器仪表》, no. 07, 25 July 2020 (2020-07-25) * |
Also Published As
Publication number | Publication date |
---|---|
CN112463298B (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111371696B (zh) | 一种在Kubernetes中实现Pod网络流控的方法 | |
US10585691B2 (en) | Distribution system, computer, and arrangement method for virtual machine | |
CN106537338B (zh) | 自扩展云 | |
CN108810013B (zh) | 一种基于容器的服务访问方法 | |
CN110362381A (zh) | Hdfs集群高可用部署方法、系统、设备及存储介质 | |
CN111857873A (zh) | 一种实现云原生容器网络的方法 | |
CN105049502B (zh) | 一种云端网络管理系统中设备软件更新的方法和装置 | |
CN111010304A (zh) | 一种Dubbo服务与Kubernetes系统集成的方法 | |
KR102486236B1 (ko) | 무선 통신 시스템에서 네트워크 기능 가상화를 위한 장치 및 방법 | |
US9417997B1 (en) | Automated policy based scheduling and placement of storage resources | |
CN109284253A (zh) | 一种移动终端的文件管理方法及装置 | |
CN108762898A (zh) | 一种线程接口的管理方法、终端设备及计算机可读存储介质 | |
CN102929835B (zh) | 设备管理方法及装置 | |
CN104636441A (zh) | 网络文件系统实现方法和装置 | |
US20160043909A1 (en) | Hierarchical Subscription Management | |
CN110839007B (zh) | 一种云网络安全处理方法、设备和计算机存储介质 | |
CN112463298B (zh) | 一种跨命名空间检测容器可用性的方法 | |
CN107656814B (zh) | 一种中间件服务实现方法和装置 | |
CN109684084A (zh) | 一种总线资源的分配方法、系统及相关组件 | |
CN112698979A (zh) | zookeeper双节点的处理方法、装置、存储介质及处理器 | |
CN110809051B (zh) | 一种业务数据的处理方法及系统 | |
WO2020108443A1 (zh) | 一种虚拟化管理方法及装置 | |
CN110365743B (zh) | 一种基于Zookeeper实现的支持多种可自定义负载算法的负载均衡器实现方法 | |
CN107885822A (zh) | 一种业务编码的生成方法及装置 | |
US11815999B2 (en) | Optimized alarm state restoration through categorization |
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 |