CN113965546A - 一种容器云平台为应用设置租户专用dns服务器的方法 - Google Patents
一种容器云平台为应用设置租户专用dns服务器的方法 Download PDFInfo
- Publication number
- CN113965546A CN113965546A CN202111063744.4A CN202111063744A CN113965546A CN 113965546 A CN113965546 A CN 113965546A CN 202111063744 A CN202111063744 A CN 202111063744A CN 113965546 A CN113965546 A CN 113965546A
- Authority
- CN
- China
- Prior art keywords
- tenant
- dns server
- cloud platform
- domain name
- name resolution
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000008569 process Effects 0.000 claims description 10
- 230000000051 modifying effect Effects 0.000 claims description 5
- 238000011161 development Methods 0.000 abstract description 5
- 230000008859 change Effects 0.000 abstract description 4
- 230000008878 coupling Effects 0.000 abstract description 4
- 238000010168 coupling process Methods 0.000 abstract description 4
- 238000005859 coupling reaction Methods 0.000 abstract description 4
- 238000012423 maintenance Methods 0.000 abstract description 4
- 230000007246 mechanism Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Images
Abstract
本发明公开了一种容器云平台为应用设置租户专用DNS服务器的方法,包括:步骤一、在集群初始化时,将dnspolicy自动设置工具注册到k8s容器编排系统对外服务接口的参数中;步骤二、在为工作负载创建实例pod时,k8s容器编排系统的对外服务接口自动调用所述的dnspolicy自动设置工具,将实例pod的dnspolicy设置为租户专属DNS服务器IP。无需在创建工作负载时指定dnspolicy,从而减少应用开发与运维在DNS服务器配置上的耦合,避免租户内有大量应用场景下DNS服务器变更带来的遗漏、时间和人力成本等风险。
Description
技术领域
本发明涉及租户专用DNS服务器的设置技术领域,尤其涉及一种容器云平台为应用设置租户专用DNS服务器的方法。
背景技术
当前容器云平台大部分基于k8s(k8s是kubernetes的简称,是容器云平台通用的开源容器编排架构,能够实现容器的自动调度、扩展、故障恢复等)框架,面向用户提供以应用管理为核心的功能体系。容器化应用以工作负载的形式部署在kubernetes集群上,每个工作负载可以同时运行1个或多个实例(pod),pod是k8s的最小管理单元,由1个或多个容器组成,这些容器共享进程、网络等命名空间。每个pod具有独自的网络信息配置,比如DNS配置文件/etc/resolv.conf。
在生产环境中,应用之间经常通过域名来相互访问,每个应用在其所在网络空间的DNS服务器配置文件中配置固定的DNS服务器的IP,通过域名服务器解析并返回被调用方的实际IP。这样做的好处是当被调用方的访问IP发生变化时,只要域名不变化,请求发起方无需做任何改动。在容器云平台中,每个pod所在网络空间会有独自的/etc/resolv.conf文件中,该文件中记录了域名服务器的IP。默认情况下,该IP为k8s集群自带的DNS服务器IP,同时k8s也支持为每个工作负载单独设置dnspolicy(域名解析策略),修改/etc/resolv.conf文件,用来填写指定的DNS服务器IP。工作负载是k8s上应用组件的部署形式,包括deployment(无状态负载)/statefulset(有状态负载)/job(任务)/cronjob(定时任务)/daemonset(守护进程)等多种形式。
在实际场景中,每个租户往往有自己的一套专用DNS服务器,租户内部所有的应用按照规范都需要连接该DNS服务器去做域名解析,从而进行相互访问。按照k8s标准的设计机制,在这种场景下,租户的所有应用在创建工作负载时都需要指定dnspolicy。这种设计方案带来的问题包括:应用开发人员在部署应用时需要准确知晓DNS服务器的IP,并进行相关的配置,会导致开发和运维在DNS服务器设置上的耦合;当租户内有大量应用时,一旦DNS服务器IP发生变化,那所有应用都需要重新修改工作负载的配置并重新创建,极易造成遗漏,不同应用开发团队之间的沟通也会带来一定的时间和人力成本。对于这些问题,我们需要一种更加智能化、自动化的租户级专用DNS服务器设置的方法。
发明内容
本发明的目的就是为了解决上述问题,提供一种容器云平台为应用设置租户专用DNS服务器的方法,无需在创建工作负载时指定dnspolicy,从而减少应用开发与运维在DNS服务器配置上的耦合,避免租户内有大量应用场景下DNS服务器变更带来的遗漏、时间和人力成本等风险。
为了实现上述目的,本发明采用如下技术方案:
一种容器云平台为应用设置租户专用DNS服务器的方法,包括:
步骤一、在集群初始化时,将域名解析策略自动设置工具注册到k8s容器编排系统对外服务接口的参数中;
步骤二、在为工作负载创建实例pod时,k8s容器编排系统的对外服务接口自动调用所述的域名解析策略自动设置工具,将实例pod的域名解析策略设置为租户专属DNS服务器IP。
所述域名解析策略自动设置工具的工作方法包括:
步骤1.1、与云平台数据库交互,获取租户对应的专属DNS服务器IP;
步骤1.2、在为工作负载创建实例pod的过程中,获取当前实例pod所属的租户,并查询到租户对应的专用DNS服务器;
步骤1.3、修改当前实例pod的域名解析策略为租户专属DNS服务器IP。
所述云平台数据库中存储有租户与专属DNS服务器IP信息的对应关系。
当租户专属DNS服务器IP发生变化时,一次性批量删除所有租户下的pod,等待pod自动重新创建,创建过程中再次调用域名解析策略自动设置工具,将实例pod的域名解析策略设置为最新的租户专属DNS服务器IP。
本发明的有益效果:
(1)无需在每个工作负载创建的时候设置DNS服务器,做到DNS服务器设置与工作负载解耦。
(2)DNS服务器地址有变动时,无需更新工作负载,直接删除所有pod,等待pod自动创建即可应用最新的DNS服务器地址设置,提高整体更新效率。
(3)整体方案灵活,易于扩展,有新的需求直接修改adminssion controller处理逻辑,无需修改。
附图说明
图1为本发明的方法流程图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
如图1所示,一种容器云平台为应用设置租户专用DNS服务器的方法,包括:
在云平台层,将租户与专属DNS服务器IP信息的关系维护在数据库中;
在集群初始化时,将dnspolicy自动设置controller注册到kube-apiserver的参数中;kube-apiserver为k8s容器编排系统的对外服务API,k8s中所有资源的相关操作需要调用kube-apiserver相关接口来实现;
当有pod创建时,kube-apiserver自动调用已注册的controller,对pod信息进行修改,将dnspolicy修改为租户专属DNS服务器IP。
dnspolicy自动设置controller的工作方法包括:
与云平台数据库交互,获取租户对应的专属DNS服务器IP;
对pod信息进行修改,根据pod所属namespace对应租户,设置dnspolicy为租户专属DNS服务器IP。Namespace为k8s的一类资源,用来进行k8s资源的分组管理,常用来与云平台中的租户相对应,即一个namespace中的资源归属于同一个租户。
当租户专属DNS服务器IP发生变化时,一次性批量删除所有租户下的pod,等待pod自动重新创建,创建过程中同样调用dnspolicy自动设置controller,基于最新的租户专属DNS服务器IP实现pod dnspolicy修改。
本发明基于k8s的adminssion webhook机制,通过开发dnspolicy自动设置工具,在为工作负载创建pod的过程中查询到当前工作负载所属租户(namespace)与专用DNS服务器的关系,并自动设置相应的dnspolicy,无需在创建工作负载时指定dnspolicy,从而减少应用开发与运维在DNS服务器配置上的耦合,避免租户内有大量应用场景下DNS服务器变更带来的遗漏、时间和人力成本等风险。
k8s提供admission webhook机制,允许在创建资源的过程中,调用自定义的admission controller,进行校验、修改动作。基于此机制,可以实现dnspolicy自动设置controller,在为工作负载创建pod的过程中,获取当前pod所属namespace,并查询到该namespace对应的专用DNS服务器,修改pod的dnspolicy,设置为专用DNS服务器IP。
应用开发人员在创建工作负载时无需指定dnspolicy。当租户专用DNS服务器IP地址发生变更时,只需要批量删除该租户下所有的pod,pod会自动重建并在创建过程中再次根据admission webhook机制自动更新dnspolicy为最新的DNS服务器IP地址,避免修改工作负载带来的遗漏、时间和人力成本。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (4)
1.一种容器云平台为应用设置租户专用DNS服务器的方法,其特征是,包括:
步骤一、在集群初始化时,将域名解析策略自动设置工具注册到k8s容器编排系统对外服务接口的参数中;
步骤二、在为工作负载创建实例pod时,k8s容器编排系统的对外服务接口自动调用所述的域名解析策略自动设置工具,将实例pod的域名解析策略设置为租户专属DNS服务器IP。
2.如权利要求1所述一种容器云平台为应用设置租户专用DNS服务器的方法,其特征是,所述域名解析策略自动设置工具的工作方法包括:
步骤1.1、与云平台数据库交互,获取租户对应的专属DNS服务器IP;
步骤1.2、在为工作负载创建实例pod的过程中,获取当前实例pod所属的租户,并查询到租户对应的专用DNS服务器;
步骤1.3、修改当前实例pod的域名解析策略为租户专属DNS服务器IP。
3.如权利要求2所述一种容器云平台为应用设置租户专用DNS服务器的方法,其特征是,所述云平台数据库中存储有租户与专属DNS服务器IP信息的对应关系。
4.如权利要求1所述一种容器云平台为应用设置租户专用DNS服务器的方法,其特征是,当租户专属DNS服务器IP发生变化时,一次性批量删除所有租户下的pod,等待pod自动重新创建,创建过程中再次调用域名解析策略自动设置工具,将实例pod的域名解析策略设置为最新的租户专属DNS服务器IP。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111063744.4A CN113965546A (zh) | 2021-09-10 | 2021-09-10 | 一种容器云平台为应用设置租户专用dns服务器的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111063744.4A CN113965546A (zh) | 2021-09-10 | 2021-09-10 | 一种容器云平台为应用设置租户专用dns服务器的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113965546A true CN113965546A (zh) | 2022-01-21 |
Family
ID=79461690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111063744.4A Pending CN113965546A (zh) | 2021-09-10 | 2021-09-10 | 一种容器云平台为应用设置租户专用dns服务器的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113965546A (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105897946A (zh) * | 2016-04-08 | 2016-08-24 | 北京搜狐新媒体信息技术有限公司 | 一种访问地址的获取方法及系统 |
CN108989091A (zh) * | 2018-06-22 | 2018-12-11 | 杭州才云科技有限公司 | 基于Kubernetes网络的租户网络隔离方法、存储介质、电子设备 |
WO2019184116A1 (zh) * | 2018-03-30 | 2019-10-03 | 平安科技(深圳)有限公司 | 自动搭建Kubernetes主节点的方法、装置、终端设备及可读存储介质 |
CN111262908A (zh) * | 2020-01-09 | 2020-06-09 | 中国工商银行股份有限公司 | 基于jenkins的任务构建方法及系统 |
CN111770159A (zh) * | 2020-06-26 | 2020-10-13 | 中信银行股份有限公司 | 服务发现系统、方法、第一服务器及存储介质 |
CN111786984A (zh) * | 2020-06-28 | 2020-10-16 | 杭州海康威视数字技术股份有限公司 | Pod通信连接方法、装置及电子设备、存储介质 |
CN111857873A (zh) * | 2020-07-15 | 2020-10-30 | 浪潮云信息技术股份公司 | 一种实现云原生容器网络的方法 |
CN111901203A (zh) * | 2020-08-03 | 2020-11-06 | 北京启明星辰信息安全技术有限公司 | 一种捕获网络流量的方法及Kubernetes集群 |
CN112035123A (zh) * | 2020-08-28 | 2020-12-04 | 北京浪潮数据技术有限公司 | 一种基于kubernetes平台实现无服务器的方法 |
WO2021017279A1 (zh) * | 2019-07-30 | 2021-02-04 | 平安科技(深圳)有限公司 | 基于Kubernetes和网络域的集群安全管理方法、装置及存储介质 |
-
2021
- 2021-09-10 CN CN202111063744.4A patent/CN113965546A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105897946A (zh) * | 2016-04-08 | 2016-08-24 | 北京搜狐新媒体信息技术有限公司 | 一种访问地址的获取方法及系统 |
WO2019184116A1 (zh) * | 2018-03-30 | 2019-10-03 | 平安科技(深圳)有限公司 | 自动搭建Kubernetes主节点的方法、装置、终端设备及可读存储介质 |
CN108989091A (zh) * | 2018-06-22 | 2018-12-11 | 杭州才云科技有限公司 | 基于Kubernetes网络的租户网络隔离方法、存储介质、电子设备 |
WO2021017279A1 (zh) * | 2019-07-30 | 2021-02-04 | 平安科技(深圳)有限公司 | 基于Kubernetes和网络域的集群安全管理方法、装置及存储介质 |
CN111262908A (zh) * | 2020-01-09 | 2020-06-09 | 中国工商银行股份有限公司 | 基于jenkins的任务构建方法及系统 |
CN111770159A (zh) * | 2020-06-26 | 2020-10-13 | 中信银行股份有限公司 | 服务发现系统、方法、第一服务器及存储介质 |
CN111786984A (zh) * | 2020-06-28 | 2020-10-16 | 杭州海康威视数字技术股份有限公司 | Pod通信连接方法、装置及电子设备、存储介质 |
CN111857873A (zh) * | 2020-07-15 | 2020-10-30 | 浪潮云信息技术股份公司 | 一种实现云原生容器网络的方法 |
CN111901203A (zh) * | 2020-08-03 | 2020-11-06 | 北京启明星辰信息安全技术有限公司 | 一种捕获网络流量的方法及Kubernetes集群 |
CN112035123A (zh) * | 2020-08-28 | 2020-12-04 | 北京浪潮数据技术有限公司 | 一种基于kubernetes平台实现无服务器的方法 |
Non-Patent Citations (1)
Title |
---|
杨传胜: "Kubernetes DNS高阶指南", pages 1 - 12, Retrieved from the Internet <URL:https://mp.weixin.qq.com/s/r1ZjtBVe4XPLmsMTj2oZNQ> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111371627B (zh) | 一种在Kubernetes中Pod设置多IP的方法 | |
EP3182678B1 (en) | Method for upgrading network function virtualization application, and related system | |
EP3200393A1 (en) | Method and device for virtual network function management | |
JP5753629B2 (ja) | モバイルブロードバンドデバイスを管理する方法、デバイス及びシステム | |
CN105959302B (zh) | 一种终端管理系统及方法 | |
CN113778623B (zh) | 资源处理方法和装置、电子设备及存储介质 | |
WO2004109978A1 (en) | A method, a controller, an arrangement and a computer program for managing a configuration of clustered computers | |
CN111245634B (zh) | 一种虚拟化管理方法及装置 | |
CN105490826B (zh) | 基于自动发现的配置管理系统及方法 | |
US20110258620A1 (en) | Method and Apparatus for Making a BPM Application Available to Multiple Tenants | |
CN105164660A (zh) | 基于云的服务设计承继 | |
US20230342183A1 (en) | Management method and apparatus for container cluster | |
CN108399095B (zh) | 支持动态管理定时任务的方法、系统、设备和存储介质 | |
CN107463390A (zh) | 一种软件升级方法及升级服务器 | |
CN114285852A (zh) | 基于多级服务平台的服务调用方法及装置 | |
CN114443226A (zh) | 一种基于kubernetes的IDE应用云上部署方法及系统 | |
CN111565120B (zh) | 一种5g网络切片产品配置方法、系统及电子设备 | |
CN104410511A (zh) | 一种服务器管理方法及系统 | |
CN113965546A (zh) | 一种容器云平台为应用设置租户专用dns服务器的方法 | |
CN104333806A (zh) | 一种机顶盒的参数操作方法和装置 | |
CN109660379B (zh) | 一种网络方法和系统、及终端 | |
CN105812178A (zh) | 一种终端升级方法及终端 | |
CN109753320B (zh) | 一种应用参数的处理方法及装置 | |
CN110442421B (zh) | 一种基于Kubernetes的通用服务转换方法及系统 | |
CN109189786B (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 |