CN113688010B - 一种基于注解的k8s与harbor项目一致性控制器 - Google Patents

一种基于注解的k8s与harbor项目一致性控制器 Download PDF

Info

Publication number
CN113688010B
CN113688010B CN202110986478.6A CN202110986478A CN113688010B CN 113688010 B CN113688010 B CN 113688010B CN 202110986478 A CN202110986478 A CN 202110986478A CN 113688010 B CN113688010 B CN 113688010B
Authority
CN
China
Prior art keywords
harbor
controller
kubernetes
annotation
namespace
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
CN202110986478.6A
Other languages
English (en)
Other versions
CN113688010A (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.)
Zhejiang Jiuzhou Future Information Technology Co ltd
Original Assignee
Zhejiang 99Cloud Information 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 Zhejiang 99Cloud Information Service Co Ltd filed Critical Zhejiang 99Cloud Information Service Co Ltd
Priority to CN202110986478.6A priority Critical patent/CN113688010B/zh
Publication of CN113688010A publication Critical patent/CN113688010A/zh
Application granted granted Critical
Publication of CN113688010B publication Critical patent/CN113688010B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Abstract

本发明提供的一种基于注解的k8s与harbor项目一致性控制器,建立一个部署在容器云平台上的Kubernetes控制器应用程序;所述控制器应用程序读取配置文件中的harbor镜像仓库参数;将所述harbor镜像仓库参数与harbor建立连接并监视Kubernetes集群中的命名空间资源。能够同步Harbor镜像仓库中的项目与Kubernetes命名空间生命周期,自动化地根Kubernetes需要使用Harbor镜像仓库的命名空间在Harbor中创建或删除与之关联的项目,降低管理员误操作的几率。

Description

一种基于注解的k8s与harbor项目一致性控制器
技术领域
本发明涉及容器领域,尤其涉及一种基于注解的k8s与harbor项目一致性控制器。
背景技术
Kubernetes是一个开源的容器集群管理系统,越来越多的公司将服务迁移至基于Kubernetes的容器云平台上,使用它来编排容器化的应用程序。Harbor是一个基于RBAC的开源的镜像仓库,相比于Docker公司开源的镜像仓库,提供了更友好的图形界面与权限管理功能,许多企业会使用Harbor作为Kubernetes集群的镜像仓库,将服务所使用的容器镜像存储在Harbor中。两者都有项目的概念:在Kubernetes中通常使用命名空间作为项目,用户自己的服务必须要部署在指定的命名空间中;Harbor镜像仓库也有项目,将镜像存储至Harbor中时必须要指定项目,但是两套系统的数据并不共享,分别存储在两套不同的数据库中。这就意味需要同步管理Kubernetes和Harbor两套系统:当用户想要创建一个项目,需要先通过命令行或容器云平台的控制台在Kubernetes中创建命名空间,然后再登录Harbor的web控制台,手动创建一个项目;如果用户删除了Kubernetes中的命名空间,往往也要前往Harbor的web控制台删除对应的项目以释放资源空间。目前这些步骤需要管理员手动来操作,不仅繁琐,而且容易遗漏,甚至有可能在命名空间未删除的情况下误删Harbor的项目而导致生产事故。
发明内容
鉴于上述问题,提出了本发明以便提供克服上述问题或者至少部分地解决上述问题的。
根据本发明的一个方面,提供了一种基于注解的k8s与harbor项目一致性控制器,所述控制器包括:
建立一个部署在容器云平台上的Kubernetes控制器应用程序;
所述控制器应用程序读取配置文件中的harbor镜像仓库参数;
将所述harbor镜像仓库参数与harbor建立连接并监视Kubernetes集群中的命名空间资源。
可选的,所述控制器还包括:
当集群中有命名空间资源创建、修改、删除的命令;
获取状态发生改变的命名空间的资源对象;
根据所述命名空间的资源对象的注解判断是否创建对应的harbor项目。
可选的,所述控制器还包括:
当所述控制器检查到命名空间资源对象包含注解;
调用harbor接口创建相应的harbor项目;
当所述控制器获取所述Kubernetes集群中有命名空间资源删除;
将自动删除所述harbor项目中关联的项目。
本发明提供的一种基于注解的k8s与harbor项目一致性控制器,建立一个部署在容器云平台上的Kubernetes控制器应用程序;所述控制器应用程序读取配置文件中的harbor镜像仓库参数;将所述harbor镜像仓库参数与harbor建立连接并监视Kubernetes集群中的命名空间资源。能够同步Harbor镜像仓库中的项目与Kubernetes命名空间生命周期,自动化地根Kubernetes需要使用Harbor镜像仓库的命名空间在Harbor中创建或删除与之关联的项目,降低管理员误操作的几率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的创建/删除Deployment时由控制器为其同步创建/删除Service流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明的说明书实施例和权利要求书及附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。
下面结合附图和实施例,对本发明的技术方案做进一步的详细描述。
如图1所示,控制器启动后会持续运行图中的“控制循环”流程。控制器将持续监听其所在的Kubernetes集群的命名空间资源对象的变化,具体包括新建,更新,删除。一旦出现某个命名空间资源被用户创建/修改/删除,控制器能够通过Informer技术获取到这个状态发生变化的命名空间资源对象。控制器首先将会检查该资源对象是否携带特定的注解,注解就是资源对象名为注解字段中的值,为键值对格式,并且特征字符串是由控制器开发人员自行定义的,如果命名空间资源对象未携带特定的注解,表示用户并不想要为该命名空间关联Harbor项目;如果命名空间资源对象携带了特定的注解,则说明用户希望通过控制器来自动管理Harbor项目。在命名空间资源对象携带注解的情况下,控制器接着会判断命名空间资源的变化事件,如果该命名空间是新创建的,控制器会调用Harbor的项目查询接口查询Harbor中是否已存在与该命名空间关联的项目,如果不存在控制器就继续调用Harbor的项目创建接口创建一个与该命名空间关联的项目;如果已经存在就无需重复创建与该命名空间关联的项目了。而如果该事件为删除命名空间,控制器会调用Harbor的项目查询接口查询Harbor中是否已存在与该命名空间关联的项目,如果存在就调用Harbor的项目删除接口删除与之管理的项目;如果不存在也无需调用Harbor的项目删除接口删除与之管理的项目了。控制循环将伴随控制器的整个生命周期,只要有命名空间资源对象出现变化,就会触发该流程。
环境说明:有个公司购买了我们的Kubernetes容器云平台与Harbor镜像仓库方案。
通过部署服务的控制台部署好Kubernetes集群以及容器云平台,部署服务会将该控制器一并部署在Kubernetes集群中。部署好Harbor镜像仓库。如果用户希望对接容器云平台和Harbor镜像仓库,在部署服务web页面填写Harbor相关参数即可。当用户通过容器云平台的控制台创建工作空间或者登录至服务器后台使用命令行创建命名空间时,控制器会根据携带的注解自动在Harbor中创建与之关联的项目,登录至Harbor管理控制台就能看到;当用户通过容器云平台的控制台或者登录至服务器后台使用命令行删除工作空间,控制器也会将与之关联的Harbor项目删除,登录至Harbor管理控制台能够看到相关项目消失。在容器云平台的控制台中填写Harbor的用户名与密码,即可在命名空间中创建的服务启动时从Harbor镜像仓库与之关联的项目拉取容器镜像。
有益效果:能够同步Harbor镜像仓库中的项目与Kubernetes命名空间生命周期,自动化地根Kubernetes需要使用Harbor镜像仓库的命名空间在Harbor中创建或删除与之关联的项目,降低管理员误操作的几率。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种基于注解的k8s与harbor项目一致性控制器,其特征在于,所述控制器包括:
建立一个部署在容器云平台上的Kubernetes控制器应用程序;
所述控制器应用程序读取配置文件中的harbor镜像仓库参数;
将所述harbor镜像仓库参数与harbor建立连接并监视Kubernetes集群中的命名空间资源;
所述控制器还包括:
当集群中有命名空间资源创建、修改、删除的命令;
获取状态发生改变的命名空间的资源对象;
根据所述命名空间的资源对象的注解判断是否创建对应的harbor项目。
2.根据权利要求1所述的一种基于注解的k8s与harbor项目一致性控制器,其特征在于,所述控制器还包括:
当所述控制器检查到命名空间资源对象包含注解;
调用harbor接口创建相应的harbor项目;
当所述控制器获取所述Kubernetes集群中有命名空间资源删除;
将自动删除所述harbor项目中关联的项目。
CN202110986478.6A 2021-08-26 2021-08-26 一种基于注解的k8s与harbor项目一致性控制器 Active CN113688010B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110986478.6A CN113688010B (zh) 2021-08-26 2021-08-26 一种基于注解的k8s与harbor项目一致性控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110986478.6A CN113688010B (zh) 2021-08-26 2021-08-26 一种基于注解的k8s与harbor项目一致性控制器

Publications (2)

Publication Number Publication Date
CN113688010A CN113688010A (zh) 2021-11-23
CN113688010B true CN113688010B (zh) 2024-02-27

Family

ID=78582840

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110986478.6A Active CN113688010B (zh) 2021-08-26 2021-08-26 一种基于注解的k8s与harbor项目一致性控制器

Country Status (1)

Country Link
CN (1) CN113688010B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10011358A1 (de) * 2000-03-10 2001-09-20 Inst Molekulare Biotechnologie Neuartige L-Form-Bakterienstämme, Verfahren zu deren Herstellung sowie deren Verwendung zur Herstellung von Genprodukten
CN109684420A (zh) * 2018-12-21 2019-04-26 郑州云海信息技术有限公司 一种基于kubernetes的高可用部署harbor镜像仓库的方法及装置
CN111858181A (zh) * 2020-07-22 2020-10-30 浪潮云信息技术股份公司 一种跨region容器镜像同步的实现方法及实现工具
CN111984371A (zh) * 2020-08-18 2020-11-24 济南浪潮高新科技投资发展有限公司 一种流程编排服务调度和发布方法
WO2021037379A1 (de) * 2019-08-30 2021-03-04 Siemens Aktiengesellschaft Verfahren zum betreiben eines clusters, cluster-arbeitsknoten, cluster, netzwerk, computerprogramm und computerlesbares medium
CN113032104A (zh) * 2021-04-19 2021-06-25 广州欢网科技有限责任公司 一种部署k8s容器应用的方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10011358A1 (de) * 2000-03-10 2001-09-20 Inst Molekulare Biotechnologie Neuartige L-Form-Bakterienstämme, Verfahren zu deren Herstellung sowie deren Verwendung zur Herstellung von Genprodukten
CN109684420A (zh) * 2018-12-21 2019-04-26 郑州云海信息技术有限公司 一种基于kubernetes的高可用部署harbor镜像仓库的方法及装置
WO2021037379A1 (de) * 2019-08-30 2021-03-04 Siemens Aktiengesellschaft Verfahren zum betreiben eines clusters, cluster-arbeitsknoten, cluster, netzwerk, computerprogramm und computerlesbares medium
CN111858181A (zh) * 2020-07-22 2020-10-30 浪潮云信息技术股份公司 一种跨region容器镜像同步的实现方法及实现工具
CN111984371A (zh) * 2020-08-18 2020-11-24 济南浪潮高新科技投资发展有限公司 一种流程编排服务调度和发布方法
CN113032104A (zh) * 2021-04-19 2021-06-25 广州欢网科技有限责任公司 一种部署k8s容器应用的方法和装置

Also Published As

Publication number Publication date
CN113688010A (zh) 2021-11-23

Similar Documents

Publication Publication Date Title
US10911518B2 (en) Network folder synchronization
US11630841B2 (en) Traversal rights
US11727035B2 (en) Hybrid workflow synchronization between cloud and on-premise systems in a content management system
JP6797290B2 (ja) メッセージングサービス向けのコンテンツ管理機能
EP2076057B1 (en) Method and apparatuses for information locking
CN107992537B (zh) 业务属性传递方法、装置、计算机设备及存储介质
CN104866391B (zh) 一种基于增量信息系统的终端信息备份方法和装置
US20180189311A1 (en) File system warnings for moves of shared content items
AU2020357554C1 (en) Content item sharing with context
CN113626286A (zh) 多集群实例处理方法、装置、电子设备及存储介质
US11586590B2 (en) Synchronizing an external location
EP2438709B1 (en) Network element integration
CN113688010B (zh) 一种基于注解的k8s与harbor项目一致性控制器
CN111596933A (zh) 文件处理方法、装置、电子设备及计算机可读存储介质
US11960529B2 (en) Restoring integrity of a social media thread from a social network export
US20240045838A1 (en) Enabling collaboration on an object from a backup service through integration with an object synchronization service
CN115454683A (zh) 消息处理方法、系统、电子设备及计算机可读存储介质
CN117056174A (zh) 一种通知信息处理方法及装置
CN115904615A (zh) K8s容器内的文件管理方法和装置
CN117459413A (zh) Sd-wan策略管理方法、装置、设备及存储介质

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
CP03 Change of name, title or address

Address after: 2 / F, building C, building 9, Huzhou multimedia Industrial Park, 999 Wuxing Avenue, Huzhou City, Zhejiang Province, 313000

Patentee after: Zhejiang Jiuzhou Future Information Technology Co.,Ltd.

Country or region after: China

Address before: 2 / F, building C, building 9, Huzhou multimedia Industrial Park, 999 Wuxing Avenue, Huzhou City, Zhejiang Province, 313000

Patentee before: Zhejiang Jiuzhou cloud Mdt InfoTech Ltd.

Country or region before: China