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

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

Info

Publication number
CN108810013A
CN108810013A CN201810708975.8A CN201810708975A CN108810013A CN 108810013 A CN108810013 A CN 108810013A CN 201810708975 A CN201810708975 A CN 201810708975A CN 108810013 A CN108810013 A CN 108810013A
Authority
CN
China
Prior art keywords
service
externalip
access
container
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.)
Granted
Application number
CN201810708975.8A
Other languages
English (en)
Other versions
CN108810013B (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
Shandong Hui Trade Electronic Port 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 Shandong Hui Trade Electronic Port Co Ltd filed Critical Shandong Hui Trade Electronic Port 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

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
表2 请求参数
名称 类型 位置 必选 描述
user string url 租户编号
eip string url eip编号
request url示例如下:
/apis/extensions/v1/externalips/available?user=zhangsan&eip=10.10.10.10
response示例如下:

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 true CN108810013A (zh) 2018-11-13
CN108810013B 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)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110297641A (zh) * 2019-06-25 2019-10-01 四川长虹电器股份有限公司 基于kubernetes的应用编排部署方法
CN110704158A (zh) * 2019-09-23 2020-01-17 凡普数字技术有限公司 在容器集群内转发访问请求的方法、装置以及存储介质
CN110704165A (zh) * 2019-10-08 2020-01-17 浪潮云信息技术有限公司 一种容器高可用部署方法
CN110737508A (zh) * 2019-10-14 2020-01-31 浪潮云信息技术有限公司 一种基于浪潮云的云容器服务网络***及实现方法
CN111193783A (zh) * 2019-12-19 2020-05-22 新浪网技术(中国)有限公司 一种服务访问的处理方法及装置
CN111510515A (zh) * 2020-04-07 2020-08-07 中国建设银行股份有限公司 一种区分混合应用环境的容器的方法及装置
CN111614702A (zh) * 2019-02-22 2020-09-01 华为技术有限公司 一种边缘计算方法以及边缘计算***
CN112073449A (zh) * 2019-06-11 2020-12-11 易保网络技术(上海)有限公司 基于Kubernetes的环境切换处理方法和设备
CN112579310A (zh) * 2019-09-30 2021-03-30 北京车和家信息技术有限公司 服务调用的方法及装置
CN113094150A (zh) * 2021-04-02 2021-07-09 上海中通吉网络技术有限公司 Jupyter容器内动态生成Spark端口访问的方法及设备
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

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
FLYWITHMETO: "kubernetes之Ingress部署", 《HTTPS://BLOG.51CTO.COM/NEWFLY/2060587》 *
久未惹尘埃: "可外部访问的Kubernetes容器", 《HTTPS://WWW.58JB.COM/HTML/132.HTML》 *
潘丹: "基于Openstack构建Kubernetes集群的实现与研究", 《江西科学》 *

Cited By (14)

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

Also Published As

Publication number Publication date
CN108810013B (zh) 2021-12-24

Similar Documents

Publication Publication Date Title
CN108810013A (zh) 一种基于容器的服务访问方法
US11436057B2 (en) Administrative policy custom resource definitions
CN106790660B (zh) 一种实现分布式存储***的部署方法及装置
CN113596110B (zh) 一种面向异构云的云原生微服务平台
CN109067828A (zh) 基于Kubernetes和OpenStack容器云平台多集群构建方法、介质、设备
CN103607432B (zh) 一种网络创建的方法和***及网络控制中心
CN105103506A (zh) 用于为云计算网络中的非均匀带宽请求分配带宽的方法和***
CN106031100B (zh) 业务链的部署方法和装置
CN110311948B (zh) 容器/容器组间的通信方法及基于此的容器云网络***
CN109067827A (zh) 基于Kubernetes和OpenStack容器云平台多租户构建方法、介质、设备
CN113225214A (zh) 协同管理边缘cdn节点的方法、装置及计算机可读介质
CN110572484A (zh) 一种基于容器的生产环境仿真方法
CN109040243A (zh) 一种报文处理方法及装置
CN111770130B (zh) 一种区块链分布式组网中软硬件资源高效协同复用的方法
CN107634849A (zh) 一种全局区块链环境构建方法
CN109525413B (zh) Cdn网络功能虚拟化的管理方法、装置及***
CN108062225A (zh) 一种多模板组合发布应用集群的方法
CN109995571A (zh) 服务器配置与vnf应用匹配的方法及装置
WO2017023256A1 (en) Cloud provisioning for networks
CN111082975B (zh) 一种基于inCloud Manager的增加域的方法、***及设备
US11864099B2 (en) Unified data repository (UDR) access across wireless communication networks
US11716678B2 (en) Distributed ledger directory service for wireless communication networks
CN115629866B (zh) 微服务注册配置与调用方法、微服务组件、***及设备
CN108289113A (zh) vBNG***多虚拟机负荷分担方法及vBNG***设备
CN115567538A (zh) 负载均衡硬件设备接入openstack网络及方法

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
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.

CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Shi Guangyin

Inventor after: Sun Siqing

Inventor after: Gao Chuanji

Inventor before: Shi Guangyin

GR01 Patent grant
GR01 Patent grant