CN117544637A - 一种集群容器化部署支持外部服务访问方法及系统 - Google Patents

一种集群容器化部署支持外部服务访问方法及系统 Download PDF

Info

Publication number
CN117544637A
CN117544637A CN202311573901.5A CN202311573901A CN117544637A CN 117544637 A CN117544637 A CN 117544637A CN 202311573901 A CN202311573901 A CN 202311573901A CN 117544637 A CN117544637 A CN 117544637A
Authority
CN
China
Prior art keywords
service
cluster
broker
pod
deployment
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
CN202311573901.5A
Other languages
English (en)
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.)
QIMING INFORMATION TECHNOLOGY CO LTD
Original Assignee
QIMING INFORMATION TECHNOLOGY 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 QIMING INFORMATION TECHNOLOGY CO LTD filed Critical QIMING INFORMATION TECHNOLOGY CO LTD
Priority to CN202311573901.5A priority Critical patent/CN117544637A/zh
Publication of CN117544637A publication Critical patent/CN117544637A/zh
Pending legal-status Critical Current

Links

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
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • 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
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种集群容器化部署支持外部服务访问方法及系统,利用多个阶段,使用RocketMQ4.x集群容器化服务在容器运行过程中,提供k8s容器云内部链接访问、同时支持集群外部应用服务链接访问,从而有效支持使用场景不受限制,使用场景方式更加广泛,更加充分利用计算资源用于业务应用。

Description

一种集群容器化部署支持外部服务访问方法及系统
技术领域
本发明涉及软件运维技术领域,尤其涉及一种集群容器化部署支持外部服务访问方法及系统。
背景技术
在Kubernetes 简称(k8s容器云)平台上, 部署RocketMQ 简称(消息队列)服务集群, 但由于RocketMQ服务集群都是k8s(容器云)容器化部署运行方式, 集群服务使用的网络IP地址是集群内部网络IP地址, 内部网络IP地址是k8s(容器云)平台内部服务组件cni(Calico)组件负责网络通信, 但只能k8s(容器云)集群内部通讯。
容器化后, 由于基于k8s(容器云)环境部署运行,RocketMQ(消息队列)(NameServer, BrokerMaster, BrokerSlave, RocketMQ-Dashboard)服务组件基于k8s(容器云) 每个服务组件分别已最小单元独立运行容器Pod(最小单元), 从而导致以下几个问题:
基于k8s(容器云) RocketMQ(消息队列) NameServer(注册中心) 以独立最小单元部署启动, 但基于集群内使用的网络是集群内部网络IP地址段;
基于k8s(容器云)RocketMQ(消息队列)其他服务组件(BrokerMaster,BrokerSlave, RocketMQ-Dashboard) 相互之间独立以最小单元部署启动服务,分配IP网络同样是集群内部网络IP地址段, 导致服务只能k8s(容器云)内部通信, 集群外部服务无法访问链接, 即使是使用集群内功能NodePort暴漏也无法对外提供服务, 所以服务只能同集群内可访问。
发明内容
本发明提出了一种集群容器化部署支持外部服务访问方法及系统,以实现集群外部访问。
一方面,一种集群容器化部署支持外部服务访问方法,包括:
采用多阶构建RocketMQ镜像文件,RocketMQ4.x集群容器化支持外部服务反问方法;
k8s容器云使用不同的的网络组件在不同 模式下会创建tunnl0 IP隧道;
容器云平台Broker服务组件使用当前宿主机的IP地址和端口,增加DNS解析策略;
服务启动注册需要获取到本机的主机名与主机名对应的地址,根据环境动态变化;
以root用户运行容器定义Pod的特权和访问控制权限,设置Pod安全性上下文。
进一步,所述采用多阶构建RocketMQ镜像文件具体包括:
RocketMQ镜像文件在部署运行阶段将Broker服务组件的地址映射到宿主机,保证同一子网内部可以访问使用宿主机的ip地址与端口;
开发Helm Chart yaml文件包管理工具,增加支持配置HostNetwork网络模式, 得到部署的Broker服务组件;
在Helm Chart yaml 文件包管理工具部署Broker服务组件增加环境变量,传递需要的变量属性。
进一步,所述增加DNS解析策略还包括:适用于HostnetWork网络模式运行的Pod。
进一步,所述Pod安全性上下文包括:SecurityContext: fsGroup: 0 runAsUser:0 Pod安全上下文。
进一步,所述在不同 模式下会创建tunnl0 IP隧道还包括:k8s容器云内部服务Pod内部网络数据包经过tunnl0设备封装一个IP头进行转发。
另一方面,一种集群容器化部署支持外部服务访问系统,用于实现权利要求1~5任意一所述的一种集群容器化部署支持外部服务访问方法,包括生产者和消费者模块,还包括:
注册中心Nameserver:帮助生产者和消费者在集群中定位正确的Broker, 并实现消息的可靠传递和负载均衡;
Broker-Master服务组件:服务运行过程中, 负责消息中转和存储消息;
BrokerSlaave服务组件:在服务运行过程中, 集群模式里每个Broker-Master服务组件,一个Master主组件角色一般配置一个Slave从组件角色。
本发明的有益效果:本发明提出了一种集群容器化部署支持外部服务访问方法及系统,利用多个阶段, 使用RocketMQ4.x集群容器化服务在容器运行过程中,提供k8s(容器云)内部链接访问、同时支持集群外部应用服务链接访问,从而有效支持使用场景不受限制, 使用场景方式更加广泛, 更加充分利用计算资源用于业务应用。
附图说明
图1是本发明一种集群容器化部署支持外部服务访问方法架构图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。
本发明提出了一种集群容器化部署支持外部服务访问方法及系统,利用多个阶段, 使用RocketMQ4.x集群容器化服务在容器运行过程中,提供k8s(容器云)内部链接访问、同时支持集群外部应用服务链接访问。
第一方面,一种集群容器化部署支持外部服务访问方法,包括:
采用多阶构建RocketMQ镜像文件,RocketMQ4.x集群容器化支持外部服务反问方法;
k8s容器云使用不同的的网络组件在不同 模式下会创建tunnl0 IP隧道;
容器云平台Broker服务组件使用当前宿主机的IP地址和端口,增加DNS解析策略;
服务启动注册需要获取到本机的主机名与主机名对应的地址,根据环境动态变化;
以root用户运行容器定义Pod的特权和访问控制权限,设置Pod安全性上下文。
所述采用多阶构建RocketMQ镜像文件具体包括:
RocketMQ镜像文件在部署运行阶段将Broker服务组件的地址映射到宿主机,保证同一子网内部可以访问使用宿主机的ip地址与端口;
开发Helm Chart yaml文件包管理工具,增加支持配置HostNetwork网络模式,得到部署的Broker服务组件;
在Helm Chart yaml 文件包管理工具, 部署Broker服务组件增加环境变量,传递需要的变量属性。
所述增加DNS解析策略还包括:适用于HostnetWork网络模式运行的Pod;所述Pod安全性上下文包括:SecurityContext: fsGroup: 0 runAsUser: 0 Pod安全上下文;所述在不同 模式下会创建tunnl0 IP隧道还包括:k8s容器云内部服务Pod内部网络数据包经过tunnl0设备封装一个IP头进行转发。
另一方面,一种集群容器化部署支持外部服务访问系统,用于实现集群容器化部署支持外部服务访问方法,包括生产者和消费者模块,还包括:
注册中心Nameserver:帮助生产者和消费者在集群中定位正确的Broker, 并实现消息的可靠传递和负载均衡;
Broker-Master服务组件:服务运行过程中, 负责消息中转和存储消息;
BrokerSlave服务组件:在服务运行过程中, 集群模式里每个Broker-Master服务组件,一个Master主组件角色一般配置一个Slave从组件角色。
RocketMQ(消息队列)服务组件, 在部署安装过程中的不同情况至少要安装4个服务组件:
NameServer(注册中心):在服务运行过程中, Broker(服务组件)与Topic(主题)路由的注册中心, 支持Broker(服务组件)的动态注册与发现, 接受Broker(服务组件)集群的注册信息并保存下来作为路由信息的基本数据, 提供心跳检测机制, 检测Broker(服务组件)是否存活, NameServer(注册中心)中都保存着Broker集群的整个路由信息与用户客户端查询的队列信息, 生产者与消费者通过NameServer(注册中心)可以获取整个Broker(服务组件)集群的路由信息, 从而进行消费的投递和消费,作为消息中间件重要组件,负责管理元数据信息和提供服务发现功能,通过维护Broker和元数据信息的注册、更新和查询,帮助生产者和消费者在集群中定位正确的Broker,并实现消息的可靠传递和负载均衡。
Broker-Master(服务组件):在服务运行过程中, 负责消息中转, 负责存储消息,Broker(服务组件)在RocketMQ(消息队列)系统中负责接收并存储从生产者发送来的消息,同时为消费者的拉取请求做准备, Broker(服务组件)同时也存储着消息相关的原数据,包括消费者组消费进度偏移Offset、主题队列等,做为消息中间件的关键组件,承担了消息存储、传递、复制和订阅管理等重要任务,它通过持久化存储、消息传递和高可用性机制,确保了消息的可靠性、高性能和高可用性。
Broker-Slave(服务组件):在服务运行过程中, 集群模式里每个Broker-Master(服务组件), 一个Master一般配置一个Slave即可, Master与Slave的关系是主备关系,Master负责处理消息的读写请求, 而Slave仅负责消息的备份与Master宕机后的角色切换,负责复制Broker-Master主节点的消息数据,在主节点故障或不可用时, 从节点可以接管服务,并确保消息数据的持久性和高可用性,以提供更可靠的消息传递服务。
RocketMQ-Dashboard(服务组件): 在服务运行过程中, RocketMQ-Dashboard是为用户提供客户端和应用程序的各种事件、性能的统计信息、支持以可视化工具界面操作,用户管理和配置Topic的属性、副本数、读写队列数、消息重试等策略,查看订阅关系、消费进度和偏移量等信息,并进行必要的管理和配置操作, 以确保RocketMQ(消息队列)的可靠性和性能。
在本实施例中,本发明提供了一种RocketMQ4.x集群容器化部署支持外部服务访问方法,包括以下步骤:
1.在处理解决RocketMQ4.x集群容器化支持外部服务反问方法,采用多阶构建RocketMQ镜像文件在部署运行阶段(Broker)服务组件的地址映射到宿主机,就可以保证同一子网内部可以访问使用宿主机的ip地址与端口, 开发Helm Chart yaml文件, 增加支持配置HostNetwork, 就可以看到部署的(Broker)服务组件, Pod已经使用宿主机的IP地址与端口了,在yaml配置文件中部署(Broker)服务组件增加环境变量, 把需要的变量属性传过去。
2.k8s(容器云)使用的网络组件不同,例如使用(Calico)在IPIP(模式)下会创建tunnl0, k8s(容器云)内部服务(Pod)内部网络数据包都会经过tunnl0设备封装一个IP头转发,即使修改了Pod IP但是经过tunnl0的网络包IP头其实都是被修改过, 原IP就变成tunnl0 IP地址, 查看IPIP模式为CrossSubnet,发现NameServer(消息队列服务组件)获取到的Broker地址还是来自tunnl0,但好在RocketMQ本身支持broker.conf里指定Broker IP地址,配置了Broker Pod HostNetwork为true, 然后在broker脚本里, 支持通过获取本机IP地址来映射brokerIP, echo "brokerIP1=${MY_POD_IP}">>${BROKER_CONF_FILE} 经过验证
3、 容器云平台(Broker)服务组件使用当前宿主机的IP地址和端口, 但网络通信解析还是(容器云)平台内部, 增加DNS解析策略ClusterFirstWithHostNet: 适用与HostnetWork模式运行的Pod
4、 服务启动注册需要获取到本机的主机名与主机名对应的地址,需要动态根据环境二变化例如: echo "$MY_POD_IP $MY_NODE_NAME">>/etc/hosts 经过实测验证,并成功注册。
5、以root用户运行容器定义Pod的特权和访问控制权限, 设置Pod安全性上下文,例如: securityContext:
fsGroup: 0 指定一个特定的用户组;
runAsUser: 0 指定一个特定的用户。
本发明以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (6)

1.一种集群容器化部署支持外部服务访问方法,其特征在于,包括:
采用多阶构建RocketMQ镜像文件,RocketMQ4.x集群容器化支持外部服务反问方法;
k8s容器云使用不同的的网络组件在不同 模式下会创建tunnl0 IP隧道;
容器云平台Broker服务组件使用当前宿主机的IP地址和端口,增加DNS解析策略;
服务启动注册需要获取到本机的主机名与主机名对应的地址,根据环境动态变化;
以root用户运行容器定义Pod的特权和访问控制权限,设置Pod安全性上下文。
2.根据权利要求1所述的一种集群容器化部署支持外部服务访问方法,其特征在于,所述采用多阶构建RocketMQ镜像文件具体包括:
RocketMQ镜像文件在部署运行阶段将Broker服务组件的地址映射到宿主机,保证同一子网内部可以访问使用宿主机的ip地址与端口;
开发Helm Chart yaml文件包管理工具,增加支持配置HostNetwork网络模式,得到部署的Broker服务组件;
在Helm Chart yaml 文件包管理工具中部署Broker服务组件增加环境变量,传递需要的变量属性。
3.根据权利要求1所述的一种集群容器化部署支持外部服务访问方法,其特征在于,所述增加DNS解析策略还包括:适用于HostnetWork 网络模式运行的Pod。
4.根据权利要求1所述的一种集群容器化部署支持外部服务访问方法,其特征在于,所述Pod安全性上下文包括: SecurityContext: fsGroup: 0 runAsUser: 0 Pod安全上下文。
5.根据权利要求4所述的一种集群容器化部署支持外部服务访问方法,其特征在于,所述在不同 模式下会创建tunnl0 IP隧道 还包括:k8s容器云内部服务Pod内部网络数据包经过tunnl0设备封装一个IP头进行转发。
6.一种集群容器化部署支持外部服务访问系统,用于实现权利要求1~5任意一所述的一种集群容器化部署支持外部服务访问方法,其特征在于,包括生产者和消费者模块,还包括:
注册中心Nameserver:帮助生产者和消费者在集群中定位正确的Broker, 并实现消息的可靠传递和负载均衡;
Broker-Master服务组件:服务运行过程中, 负责消息中转和存储消息;
BrokerSlave服务组件:在服务运行过程中, 集群模式里每个Broker-Master服务组件,一个Master主组件角色一般配置一个Slave从组件角色。
CN202311573901.5A 2023-11-23 2023-11-23 一种集群容器化部署支持外部服务访问方法及系统 Pending CN117544637A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311573901.5A CN117544637A (zh) 2023-11-23 2023-11-23 一种集群容器化部署支持外部服务访问方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311573901.5A CN117544637A (zh) 2023-11-23 2023-11-23 一种集群容器化部署支持外部服务访问方法及系统

Publications (1)

Publication Number Publication Date
CN117544637A true CN117544637A (zh) 2024-02-09

Family

ID=89795434

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311573901.5A Pending CN117544637A (zh) 2023-11-23 2023-11-23 一种集群容器化部署支持外部服务访问方法及系统

Country Status (1)

Country Link
CN (1) CN117544637A (zh)

Similar Documents

Publication Publication Date Title
CN110198231B (zh) 用于多租户的容器网络管理方法和系统以及中间件
US5594921A (en) Authentication of users with dynamically configurable protocol stack
JP4503225B2 (ja) 適応ディスパッチャを有する仮想ネットワーク
US6031977A (en) Object-oriented distributed communications directory service
CN106663033B (zh) 在事务中间件机器环境支持绕域和代理模型并更新服务信息以跨域消息传送的系统和方法
CN113596110B (zh) 一种面向异构云的云原生微服务平台
US9648084B2 (en) System and method for providing an in-memory data grid application container
US20030088659A1 (en) System and method for distributed state management
US7664818B2 (en) Message-oriented middleware provider having multiple server instances integrated into a clustered application server infrastructure
US20060212935A1 (en) Reliability and availablity of distributed servers
CN112202615B (zh) 一种多cni协同工作系统与方法
US20080235333A1 (en) Group access privatization in clustered computer system
CN113094182B (zh) 一种服务的负载均衡处理方法、装置及云端服务器
CN109213571B (zh) 一种内存共享方法、容器管理平台及计算机可读存储介质
CN114205342B (zh) 服务调试的路由方法、电子设备及介质
CN112333017B (zh) 一种服务配置方法、装置、设备及存储介质
US20020046228A1 (en) Method and system for facilitating access to a lookup service
CN114244654B (zh) 一种url的转发方法、装置、设备及计算机存储介质
CN117544637A (zh) 一种集群容器化部署支持外部服务访问方法及系统
CN115242791A (zh) 服务平台的访问方法、装置、设备及存储介质
US7685303B2 (en) Object-oriented discovery framework
CN112073449B (zh) 基于Kubernetes的环境切换处理方法和设备
EP1406171A1 (en) Data processing system and method
CN116339926A (zh) 一种ats软件的容器化部署方法
CN116880955A (zh) 基于docker容器的微服务应用部署方法及装置

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