CN108810013B - 一种基于容器的服务访问方法 - Google Patents

一种基于容器的服务访问方法 Download PDF

Info

Publication number
CN108810013B
CN108810013B CN201810708975.8A CN201810708975A CN108810013B CN 108810013 B CN108810013 B CN 108810013B CN 201810708975 A CN201810708975 A CN 201810708975A CN 108810013 B CN108810013 B CN 108810013B
Authority
CN
China
Prior art keywords
service
externalip
container
access
api
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
CN201810708975.8A
Other languages
English (en)
Other versions
CN108810013A (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.)
Shanghai Wave Cloud Computing Service Co Ltd
Original Assignee
Shanghai Inspur Cloud Computing Service 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 Shanghai Inspur Cloud Computing Service Co Ltd filed Critical Shanghai Inspur Cloud Computing Service Co Ltd
Priority to CN201810708975.8A priority Critical patent/CN108810013B/zh
Publication of CN108810013A publication Critical patent/CN108810013A/zh
Application granted granted Critical
Publication of CN108810013B publication Critical patent/CN108810013B/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明特别涉及一种基于容器的服务访问方法。该基于容器的服务访问方法,同时提供了基于tcp协议和http协议访问容器服务的一体化解决方案,可以有效的访问基于Kubernetes的容器服务,并能有效管理externalip和port资源,还支持多租户模式,能够为不同租户提供不同的容器服务访问路径,且容器服务个数不受限制,使用方便快捷,为多租户提供了管理基于Kubernetes容器服务的能力。

Description

一种基于容器的服务访问方法
技术领域
本发明涉及基于Kubernetes的容器服务访问技术领域,特别涉及一种基于容器的服务访问方法。
背景技术
近年来,容器技术是比较流行的提供微服务的paas技术,swarm和Kubernetes是两种比较流行的容器技术,其中Kubernetes是近期最流行的容器编排管理技术。
Kubernetes是一个全新的基于容器技术的分布式架构领先方案,在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性和高可用性。
基于Kubernetes能够提供高可用的微服务;为了访问这些服务,Kubernetes提供了三种方式:nodeport、loadbalancer、externalip。
1)nodeport使用起来比较方便,适合于开发测试阶段,但是nodeport个数有限,使用nodeport方式暴露的Kubernetes服务个数有限。
2)loadbalancer依赖于一个独立于Kubernetes的负载均衡服务,并且使用nodeport,跟nodepport方式一样,暴露的Kubernetes服务个数有限
3)externalip方式是把一个Kubernetes节点或一个节点上的一个ip暴露出去,通过externalip给用户暴露服务,只要externalip足够多,暴露的Kubernetes服务个数没有限制,但是Kubernetes本身只支持将Kubernetes节点暴露为externalip,这个限制也限制了Kubernetes暴露的服务个数。
综上所述,Kubernetes本身提供的服务暴露方式只适合开发测试阶段的使用,远达不到产品上线的要求。基于此,本发明提出了一种基于容器的服务访问方法。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的基于容器的服务访问方法。
本发明是通过如下技术方案实现的:
一种基于容器的服务访问方法,其特征在于:
(1)设计方案:
a)服务访问支持7层的http协议和4层的tcp协议;
b)使用Ingress支持7层访问,使用Externalip支持4层访问;
c)规划Ingress节点运行ingress-controller,规划externalip节点运行Externalipcontroller;
(2)Service配置:
a)service默认使用clusterip方式,默认不提供外部访问;
b)对外暴露的Service不使用nodeport方式;
c)编写一个定时任务,检测eip对应节点的网络,当节点notready时,选择一个ready的节点与eip对应,并修改所有外部访问服务的externalip,调用eip管理的api反馈给它能用的节点ip;
d)提供为一个service创建外部访问service的api,并初始化externalip和port,记录externalip:port与service的对应关系;
(3)ExternalIpController设计
a)在k8s集群中规划externalip节点,用于提供外部访问能力;
b)在k8s的集群中externalip节点部署externalipcontroller,用于绑定外部访问网卡,并保证外部ip的高可用;
c)externalip作为资源需要管理起来,提供获取externalip的api供服务使用,原则上包括k8s服务和应用服务的一个服务分配一个externalip,externalip不是eip,是局域网ip,只用于k8s集群内部使用;
(4)Externalip管理
开发一个externalip的管理功能,通过界面管理externalip,提供增删改查功能;
(5)ExternalService管理
开发一个externalService的管理功能,通过界面管理externalip,端口号,服务名称和服务命名空间信息,并提供增删改查功能。
所述步骤(1)设计方案中,通过eip访问externalip和ingress所在节点。
所述步骤(2)Service配置中,在需要提供7层外部访问时,通过配置ingress暴露域名访问;在需要提供4层外部访问时,需要service指定externalip,通过externalip:servicePort访问;当需要给具体服务暴露给外网时,需要编辑service,新增一个端口,分配externalip和端口号,管理这个新的service、externalip:serviceport的对应关系。
所述步骤(2)Service配置中,k8s系统服务也要用ingress暴露,不能使用ingress的nodeport需要在安全组增加策略,保证外部访问不到这些端口。
所述步骤(3)ExternalIpController设计中,K8s集群中有管理网nodeip,业务网podip和clusterip,外部访问网externalip和存储网cephip四种网络,上述四种网络生产环境建议使用单独网卡。
所述步骤(4)Externalip管理中,提供给不同租户分配externalip的api,通过调用这个api,租户可以获得自己使用的externalip;同时针对部署在虚机上的k8s集群,调用api获取的是暴露服务的nodeip。
所述步骤(5)ExternalService管理中,提供给不同租户分配externalip和端口号的api,通过调用这个api,租户可以给具体服务分配externalip和端口号;同时针对部署在虚机上的k8s集群,调用api获取的是暴露服务的nodeip和端口号。
本发明的有益效果是:该基于容器的服务访问方法,同时提供了基于tcp协议和http协议访问容器服务的一体化解决方案,可以有效的访问基于Kubernetes的容器服务,并能有效管理externalip和port资源,还支持多租户模式,能够为不同租户提供不同的容器服务访问路径,且容器服务个数不受限制,使用方便快捷,为多租户提供了管理基于Kubernetes容器服务的能力。
附图说明
附图1为本发明设计方案方法示意图。
附图2为本发明ExternalIpController设计方法示意图。
附图3为本发明7层访问方法示意图。
附图4为本发明4层访问方法示意图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
该基于容器的服务访问方法,包括以下步骤:
(1)设计方案:
a)服务访问支持http协议(7层)和tcp协议(4层);
b)7层访问使用ingress实现,4层访问使用externalip实现;
c)通过ingress-controller支持ingress,通过externalipcontroller支持externalip;
d)通过eip访问externalip和ingress所在节点;
(2)Service配置:
a)service默认使用clusterip方式,默认不提供外部访问;
i.需要提供7层外部访问时,通过配置ingress暴露域名访问(域名与eip对应);
ii.需要提供4层外部访问时,需要service指定externalip,通过externalip:servicePort访问;
b)service的nodeport方式不安全,不使用nodeport暴露服务;
c)k8s系统服务也要用ingress暴露,不能使用ingress的nodeport需要在安全组增加策略,保证外部访问不到这些端口;
d)当需要给具体服务暴露给外网时,需要编辑service,新增一个端口,分配externalip和端口号,管理这个新的service、externalip:serviceport的对应关系;
e)编写一个定时任务,检测eip对应节点的网络,当节点notready时,选择一个ready的节点与eip对应,并修改所有外部访问服务的externalip,调用eip管理的api反馈给它能用的节点ip;
f)提供为一个service创建外部访问service的api,并初始化externalip和port,记录externalip:port与service的对应关系;
(3)ExternalIpController设计
a)K8s集群中有四种网络:管理网(nodeip)、业务网(podip和clusterip)、外部访问网(externalip)、存储网(cephip),这四种网络可以共用一个网卡,也可以使用单独网卡,生产环境建议使用单独网卡;
b)在k8s集群中规划externalip节点,用于提供外部访问能力,建议externalip节点至少两个,防止外部访问单点故障;
c)在k8s的集群中externalip节点部署externalipcontroller,用于绑定外部访问网卡,并保证外部ip的高可用;
d)externalip作为资源需要管理起来,提供获取externalip的api供服务使用,原则上一个服务(包括k8s服务和应用服务)分配一个externalip,externalip不是eip,是局域网ip,只用于k8s集群内部使用;
(4)Externalip管理
a)开发一个externalip的管理功能,通过界面管理externalip,提供增删改查功能;
b)提供给不同租户分配externalip的api,通过调用这个api,租户可以获得自己使用的externalip;
c)针对部署在虚机上的k8s集群,调用api获取的是暴露服务的nodeip;
(5)ExternalService管理
a)开发一个externalService的管理功能,通过界面管理externalip、端口号、服务名称、服务命名空间等信息,并提供增删改查功能;
b)提供给不同租户分配externalip和端口号的api,通过调用这个api,租户可以给具体服务分配externalip和端口号;
c)针对部署在虚机上的k8s集群,调用api获取的是暴露服务的nodeip和端口号。
表1 根据用户或eip获取可用的externalip
Figure BDA0001716222570000051
表2 请求参数
名称 类型 位置 必选 描述
user string url 租户编号
eip string url eip编号
request url示例如下:
/apis/extensions/v1/externalips/available?user=zhangsan&eip=10.10.10.10
response示例如下:
Figure BDA0001716222570000061

Claims (7)

1.一种基于容器的服务访问方法,其特征在于:
(1)设计方案:
a)服务访问支持7层的http协议和4层的tcp协议;
b)使用Ingress支持7层访问,使用Externalip支持4层访问;
c)规划Ingress节点运行ingress-controller,规划externalip节点运行Externalipcontroller;
(2)Service配置:
a)service默认使用clusterip方式,默认不提供外部访问;
b)对外暴露的Service不使用nodeport方式;
c)编写一个定时任务,检测eip对应节点的网络,当节点notready时,选择一个ready的节点与eip对应,并修改所有外部访问服务的externalip,调用eip管理的api反馈给它能用的节点ip;
d)提供为一个service创建外部访问service的api,并初始化externalip和port,记录externalip:port与service的对应关系;
(3)ExternalIpController设计
a)在k8s集群中规划externalip节点,用于提供外部访问能力;
b)在k8s的集群中externalip节点部署externalipcontroller,用于绑定外部访问网卡,并保证外部ip的高可用;
c)externalip作为资源需要管理起来,提供获取externalip的api供服务使用,包括k8s服务和应用服务在内的服务中一个服务分配一个externalip,externalip不是eip,是局域网ip,只用于k8s集群内部使用;
(4)Externalip管理
开发一个externalip的管理功能,通过界面管理externalip,提供增删改查功能;
(5)ExternalService管理
开发一个externalService的管理功能,通过界面管理externalip,端口号,服务名称和服务命名空间信息,并提供增删改查功能。
2.根据权利要求1所述的基于容器的服务访问方法,其特征在于:所述步骤(1)设计方案中,通过eip访问externalip和ingress所在节点。
3.根据权利要求1所述的基于容器的服务访问方法,其特征在于:所述步骤(2)Service配置中,在需要提供7层外部访问时,通过配置ingress暴露域名访问;在需要提供4层外部访问时,需要service指定externalip,通过externalip:servicePort访问;当需要给具体服务暴露给外网时,需要编辑service,新增一个端口,分配externalip和端口号,管理这个新的service、externalip:serviceport的对应关系。
4.根据权利要求1所述的基于容器的服务访问方法,其特征在于:所述步骤(2)Service配置中,k8s系统服务也要用ingress暴露,不能使用ingress的nodeport需要在安全组增加策略,保证外部访问不到这些端口。
5.根据权利要求1所述的基于容器的服务访问方法,其特征在于:所述步骤(3)ExternalIpController设计中,K8s集群中有管理网nodeip,业务网podip和clusterip,外部访问网externalip和存储网cephip四种网络,上述四种网络生产环境使用单独网卡。
6.根据权利要求1所述的基于容器的服务访问方法,其特征在于:所述步骤(4)Externalip管理中,提供给不同租户分配externalip的api,通过调用这个api,租户可以获得自己使用的externalip;同时针对部署在虚机上的k8s集群,调用api获取的是暴露服务的nodeip。
7.根据权利要求1所述的基于容器的服务访问方法,其特征在于:所述步骤(5)ExternalService管理中,提供给不同租户分配externalip和端口号的api,通过调用这个api,租户可以给具体服务分配externalip和端口号;同时针对部署在虚机上的k8s集群,调用api获取的是暴露服务的nodeip和端口号。
CN201810708975.8A 2018-07-02 2018-07-02 一种基于容器的服务访问方法 Active CN108810013B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810708975.8A CN108810013B (zh) 2018-07-02 2018-07-02 一种基于容器的服务访问方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810708975.8A CN108810013B (zh) 2018-07-02 2018-07-02 一种基于容器的服务访问方法

Publications (2)

Publication Number Publication Date
CN108810013A CN108810013A (zh) 2018-11-13
CN108810013B true CN108810013B (zh) 2021-12-24

Family

ID=64073187

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810708975.8A Active CN108810013B (zh) 2018-07-02 2018-07-02 一种基于容器的服务访问方法

Country Status (1)

Country Link
CN (1) CN108810013B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111614702B (zh) * 2019-02-22 2022-03-25 华为云计算技术有限公司 一种边缘计算方法以及边缘计算系统
CN112073449B (zh) * 2019-06-11 2023-04-18 易保网络技术(上海)有限公司 基于Kubernetes的环境切换处理方法和设备
CN110297641B (zh) * 2019-06-25 2022-02-22 四川长虹电器股份有限公司 基于kubernetes的应用编排部署方法
CN110704158A (zh) * 2019-09-23 2020-01-17 凡普数字技术有限公司 在容器集群内转发访问请求的方法、装置以及存储介质
CN112579310B (zh) * 2019-09-30 2024-09-17 北京车和家信息技术有限公司 服务调用的方法及装置
CN110704165A (zh) * 2019-10-08 2020-01-17 浪潮云信息技术有限公司 一种容器高可用部署方法
CN110737508A (zh) * 2019-10-14 2020-01-31 浪潮云信息技术有限公司 一种基于浪潮云的云容器服务网络系统及实现方法
CN111193783B (zh) * 2019-12-19 2022-08-26 新浪网技术(中国)有限公司 一种服务访问的处理方法及装置
US11153279B2 (en) 2020-01-30 2021-10-19 Hewlett Packard Enterprise Development Lp Locally representing a remote application programming interface (API) endpoint within an application platform
CN111510515B (zh) * 2020-04-07 2022-09-09 中国建设银行股份有限公司 一种区分混合应用环境的容器的方法及装置
CN113094150A (zh) * 2021-04-02 2021-07-09 上海中通吉网络技术有限公司 Jupyter容器内动态生成Spark端口访问的方法及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017070465A8 (en) * 2015-10-23 2017-05-26 Oracle International Corporation Pluggable database lockdown profile
CN107256178A (zh) * 2017-04-27 2017-10-17 北京数人科技有限公司 一种容器管理平台
CN107302604A (zh) * 2017-06-30 2017-10-27 挖财网络技术有限公司 基于Kubernetes的PaaS平台域名配置方法及装置和电子设备
CN108108223A (zh) * 2017-11-30 2018-06-01 国网浙江省电力公司信息通信分公司 基于Kubernetes的容器管理平台

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017070465A8 (en) * 2015-10-23 2017-05-26 Oracle International Corporation Pluggable database lockdown profile
CN107256178A (zh) * 2017-04-27 2017-10-17 北京数人科技有限公司 一种容器管理平台
CN107302604A (zh) * 2017-06-30 2017-10-27 挖财网络技术有限公司 基于Kubernetes的PaaS平台域名配置方法及装置和电子设备
CN108108223A (zh) * 2017-11-30 2018-06-01 国网浙江省电力公司信息通信分公司 基于Kubernetes的容器管理平台

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
kubernetes之Ingress部署;Flywithmeto;《https://blog.51cto.com/newfly/2060587》;20180113;第1-7页 *
可外部访问的Kubernetes容器;久未惹尘埃;《https://www.58jb.com/html/132.html》;20170403;第1-4页 *
基于Openstack构建Kubernetes集群的实现与研究;潘丹;《江西科学》;20170607;第35卷(第02期);全文 *

Also Published As

Publication number Publication date
CN108810013A (zh) 2018-11-13

Similar Documents

Publication Publication Date Title
CN108810013B (zh) 一种基于容器的服务访问方法
US11438255B2 (en) Automated route propagation among networks attached to scalable virtual traffic hubs
CN110198231B (zh) 用于多租户的容器网络管理方法和系统以及中间件
US10834044B2 (en) Domain name system operations implemented using scalable virtual traffic hub
US10797989B2 (en) Scalable virtual traffic hub interconnecting isolated networks
US10742446B2 (en) Interconnecting isolated networks with overlapping address ranges via scalable virtual traffic hubs
CA2914802C (en) Distributed lock management in a cloud computing environment
US11928514B2 (en) Systems and methods providing serverless DNS integration
US20200092201A1 (en) Scalable cell-based packet processing service using client-provided decision metadata
WO2017157156A1 (zh) 一种用户请求的处理方法和装置
CN111857873A (zh) 一种实现云原生容器网络的方法
CN110737508A (zh) 一种基于浪潮云的云容器服务网络系统及实现方法
US10735275B2 (en) Releasing and retaining resources for use in a NFV environment
US9847903B2 (en) Method and apparatus for configuring a communication system
CN111246397B (zh) 集群系统、服务访问方法、装置及服务器
Arnold et al. Building the IBM Containers cloud service
CN112035244A (zh) 在多租户环境中虚拟节点集群的部署
Drost et al. Zorilla: a peer‐to‐peer middleware for real‐world distributed systems
US9417900B2 (en) Method and system for automatic assignment and preservation of network configuration for a virtual machine
CN115865921A (zh) 一种构建容器网络的方法、系统、存储介质、电子设备
CN113852658B (zh) 一种OpenStack IPv6部署方法及系统
Soares et al. Re-designing Cloud platforms for massive scale using a P2P architecture
CN114390101A (zh) 一种基于BGP组网的Kubernetes负载均衡方法
CN112910939A (zh) 一种数据处理方法及相关装置
CN106445410B (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
TA01 Transfer of patent application right

Effective date of registration: 20190312

Address after: Room 411, 238, Jiangchang Third Road, Zhabei District, Shanghai, 200436

Applicant after: Shanghai wave Cloud Computing Service Co., Ltd.

Address before: 250100 S06 Floor, No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province

Applicant before: Shandong Hui Trade Electronic Port Co., Ltd.

TA01 Transfer of patent application right
CB03 Change of inventor or designer information

Inventor after: Shi Guangyin

Inventor after: Sun Siqing

Inventor after: Gao Chuanji

Inventor before: Shi Guangyin

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant