首页 / 资讯中心 / 文章详情

Meshery 中的 Harbor Operator 模型:六大 Kubernetes 组件与镜像仓库即代码实践

Meshery 中的 Harbor Operator 模型:六大 Kubernetes 组件与镜像仓库即代码实践 ★ FEATURED ARTICLE
云原生微服务运维DevOps【免费下载链接】mesheryMeshery, the cloud native manager项目地址https://gitcode.com/GitHub_Trending/me/meshery点击查看免费下载Harbor Operator 模型是 Meshery 内置的 Provisioning / Container Registry 类集成源自 Artifact Hub 的 Harbor Operator Helm Chart模型版本 1.6.3。本文以该模型的组件定义为骨架逐一拆解 Instance、Instance Chart Repository、Project、Registry、Replication、User 六大组件的 Kubernetes CRD schema并结合仓库中的模型定义文件与渲染模板说明如何在 Meshery 中通过 Design 与注册表将 Harbor 的部署、项目、复制策略等基础设施以代码Infrastructure as Design方式可视化编排。Harbor Operator 模型在 Meshery 中的定位Harbor Operator 是 Meshery 注册表中一个面向容器镜像仓库供给的模型。根据其官方文档页 docs/content/en/extensions/models/harbor-operator/index.md 的 Front Matter 声明integrations-categoryProvisioning供给类integrations-subcategoryContainer Registry容器镜像仓库registrantArtifact Hub模型由 Artifact Hub 注册表发现并导入components-count6 个组件relationship-count0该模型当前未注册任何组件间关系该模型对应上游 Harbor Operatorregistries.mittwald.de/v1alpha2分组1.6.3 版本的 CRD 集合目标是在 Kubernetes 中把 Harbor 私有镜像仓库的全部管理面——实例、项目、用户、远端 registry、复制策略——声明式地抽象为自定义资源再由 Operator 调谐为 Harbor 的真实状态。文档同时列出了模型的核心能力清单featureListContent signing and validation镜像内容签名与校验Security and vulnerability analysis安全与漏洞分析Replication across many registries, including Harbor跨多个 registry 的复制含 Harbor 自身这三点分别对应 Harbor 的内容信任Content Trust、漏洞扫描以及复制策略能力正是后面 Project 与 Replication 组件 schema 中参数设计的业务来源。模型与组件的仓库级定义在仓库中该模型的完整定义位于 models/harbor-operator/1.6.3/v1.0.0/遵循 Meshery 的模型标准 schema模型文件 model.jsonschemaVersion: models.meshery.io/v1beta2version: v1.0.0status: enabledcategory: ProvisioningsubCategory: Container Registry。组件文件位于components/子目录下每个文件schemaVersion: components.meshery.io/v1beta1并在component字段内嵌 Kubernetes CRD 的 JSON Schemaversion: registries.mittwald.de/v1alpha2。所有组件均标记isNamespaced: true即这些 CR 都是命名空间级资源。组件图标的 source 元数据中记录来源为https://helm.mittwald.de/charts/harbor-operator-1.6.3.tgz印证模型由 Harbor Operator 1.6.3 Helm Chart 提取而来。在 Meshery 的注册表中模型属于启用enabled状态用户可以直接在目录中浏览或按需禁用、导出、自定义与重新导入参见 docs/content/en/extensions/models/_index.md 中关于 Meshery 注册表与模型的管理说明。六大组件逐一拆解以下按仓库中components/目录下的 JSON 定义对每个组件的核心 spec 参数做完整说明。Instance——Harbor 实例的一键供给对应 CRD 文件 components/Instance.jsonkind 为Instance。它的职责是声明一个 Harbor 实例的期望状态spec 必需字段为helmChart、instanceURL、name、type。基础字段字段类型说明namestring实例名称instanceURLstring实例对外访问地址typestring实例类型会被转换为 Operator 侧的OperatorTypeschema 注释指出因泛型限制这里用字符串承载枚举garbageCollectionobject垃圾回收计划cron定时表达式、scheduleType调度类型、deleteUntagged是否删除无 tag 镜像helmChart字段Harbor 实例本身也由 Helm 交付参数最丰富字段类型说明chart/release/namespacestring必填Chart 名、Release 名与部署命名空间versionstringChart 版本atomicboolean原子安装开启后wait自动为 truetimeoutint64单个 Kubernetes 操作的等待超时wait/waitForJobsboolean是否等待发布完成 / 是否等待 Job 完成createNamespaceboolean目标 namespace 不存在时是否自动创建dryRun/dryRunOptionboolean/string演练运行及是否与远端集群交互force/replace/recreateboolean强制、替换、重建已有 ReleasereuseValues/resetValuesboolean升级时复用或重置 values.yamlcleanupOnFailboolean失败时清理 ReleasedisableHooksboolean是否禁用 Helm hooksskipCRDs/upgradeCRDsboolean安装时跳过 / 升级 CRDkeepHistory/maxHistoryboolean/integer卸载时保留历史 / 限制每个 Release 最大修订数generateName/nameTemplateboolean/string使用模板生成 Release 名subNotesboolean是否打印子 Chart 备注descriptionstring自定义 Release 描述secretValuesobject从 Secret 注入额外 Chart 值含key与secretRef.namevaluesYamlstring直接内联 values.yaml 内容valuesOptionsobject对标helm install命令的 values 覆盖values(--set)、stringValues(--set-string)、jsonValues(--set-json)、fileValues(--set-file)、valueFiles(-f/--values)这套字段几乎完整映射了 Helm SDK 的安装/升级选项意味着在 Meshery 画布中配置一个 Instance 组件等价于声明一次完整的helm upgrade --install操作是以声明式资源驱动 Helm 交付的典型实现。Instance Chart Repository——为实例挂载 Helm Chart 仓库对应 components/InstanceChartRepository.jsonkind 为InstanceChartRepository。它描述 Harbor 实例使用的 Chart 仓库源url必填Chart 仓库地址secretRef.name可选的 Secret 引用用于存放访问 Chart 仓库所需的认证信息。Project——镜像项目与安全策略对应 components/Project.jsonkind 为Project必填name与parentInstance指向创建该项目的 Harbor 实例。Project 是 Harbor 中权限与安全边界的基本单位其metadata字段直接对应 Harbor 项目级策略字段类型说明publicboolean必填。项目是否公开可见autoScanbooleanpush 镜像时是否自动扫描漏洞enableContentTrustboolean是否启用内容信任启用后用户无法从该项目拉取未签名镜像preventVulboolean是否阻止运行存在漏洞的镜像severitystring漏洞严重度阈值超过该阈值则禁止拉取合法值none、low、medium、high、criticalreuseSysCVEAllowlistboolean是否复用系统级 CVE 白名单作为项目白名单为 true 时忽略项目自有白名单此外还支持memberRequests项目成员数组每项包含role角色与user.name引用同一命名空间下的User资源proxyCache可选的registry引用指定后该项目会以Proxy Cache代理缓存类型创建storageLimit整数项目存储配额。Registry——远端镜像仓库接入对应 components/Registry.jsonkind 为Registry必填name、parentInstance、type、url。它声明 Harbor 需要对接的远端 registryurl目标 registry 地址typeregistry 类型insecureHarbor 访问该 registry 时是否跳过 TLS 证书校验description描述credential全部必填type凭据类型如basic、oauthsecretRef.name存放凭据的 SecretsecretKeyAccessKey/secretKeyAccessSecretSecret 中AccessKey与AccessSecret字段的 key 名。可见 Registry 组件是 Replication 的前置依赖——复制策略必须指向一个已声明的远端 registry 作为源或目标。Replication——跨 registry 复制策略对应 components/Replication.jsonkind 为Replication必填name、override、parentInstance。它对应 Harbor 的复制规则replication policy字段如下字段类型说明srcRegistry/destRegistryobject源 / 目标 registry 引用name指向 Registry 组件destNamespace可指定目标命名空间留空则与源相同filtersarray复制过滤器数组每项typevalue如按名称/标签筛选镜像triggerobject触发类型type与triggerSettings.cron定时表达式enabledboolean策略是否启用overrideboolean是否覆盖目标 registry 上的同名资源replicateDeletionboolean是否同步复制删除操作triggerAfterCreationboolean创建后是否立即触发一次description/creatorstring描述与创建者这正对应文档 featureList 中Replication across many registries, including Harbor的能力Harbor 可以把自己也注册为一个 Registry从而构建 Harbor 到 Harbor、Harbor 到其他仓库、乃至跨机房的双向镜像同步拓扑。User——用户与系统管理员对应 components/User.jsonkind 为User必填email、name、parentInstance、realname、userSecretRef字段类型说明email/realname/commentsstring邮箱、真实姓名、备注sysAdminboolean是否为 Harbor 系统管理员passwordStrengthinteger生成的用户密码有效长度取值范围 8128schema 中minimum: 8, maximum: 128userSecretRef.nameobject引用同命名空间 SecretOperator 据此生成/读取用户密码避免明文写入 CR组件能力Capabilities与 Meshery 中的可视化操作仓库中每个组件 JSON 都内置了 Meshery 注册表声明的capabilitiescapability.meshery.io/v1alpha1这些能力决定了组件在 Meshery UI 中可执行的交互主要包括Performance Testtype: operator, subType: perf-test对实例态组件发起性能测试由 Meshery 执行负载生成、采集指标并呈现结果Workload ConfigurationsubType: config对组件做工作负载级配置Labels and Annotations Configuration配置组件标签与注解Relationships查看组件关系视图Json Schema查看组件定义即上文所述的 CRD schemaStyling / Change Shape调整组件在画布中的视觉样式与形状Compound Drag And Drop在图视图中将组件拖入父组件形成嵌套关系。这些能力由文档渲染层 docs/layouts/models/single.html 与 docs/layouts/partials/integration/models-components.html 配合呈现页面会按 Front Matter 中的components列表展示每个组件的彩色/白色图标并动态列出包含该模型的 Catalog 设计与相关教程。将 Harbor Operator 纳入你的设计工作流在 Meshery 中的典型使用路径如下浏览与启用模型在 Meshery 的 Models注册表页面中搜索Harbor Operator确认其为 enabled 状态模型自带 categoryProvisioning与 subCategoryContainer Registry标签便于按类目过滤。拖入画布构建 Design从设计画布左侧组件面板将 Instance、Project、Registry、User、Replication 等组件拖入设计画布。按依赖顺序编排先声明 Instance含 helmChart 完整参数供给 Harbor 实例再通过parentInstance把 Project、Registry、User 挂到该实例名下最后用 Registry 引用与 Replication 策略串起复制拓扑。配置 CRD 参数选中任意组件后通过 Workload Configuration 能力编辑其 spec 字段与本文表格中的参数一一对应必要时使用 Json Schema 视图核对完整定义。协同与交付Design 支持团队内多人同步共享对应文档howItWorks: Collaborative Infrastructure as Design。设计完成后可直接执行部署由 Meshery 将组件声明下发到集群再由 Harbor Operator 调谐为真实 Harbor 状态。总结Harbor Operator 模型是 Meshery 供给类集成的典型范例它把 Harbor 实例的 Helm 交付、项目安全策略、远端仓库接入、跨仓库复制与用户管理完整映射为六个声明式组件使镜像仓库的运维从界面点击 手工脚本演进为可版本化、可协作、可回放的 Infrastructure as Design。其组件定义与 CRD schema 均可在仓库 models/harbor-operator/1.6.3/v1.0.0/ 中直接查阅作为配置时的权威参考。赞分享云原生微服务运维DevOps【免费下载链接】mesheryMeshery, the cloud native manager项目地址https://gitcode.com/GitHub_Trending/me/meshery点击查看免费下载相关推荐Flutter Starter Kit深度解析Bloc模式在移动应用架构中的实战应用Flutter Starter Kit深度解析Bloc模式在移动应用架构中的实战应用 想要快速上手Flutter开发却不知道如何组织代码结构FlutterDjango River API使用指南RESTful工作流接口设计与实现Django River API使用指南RESTful工作流接口设计与实现 Django River是一个强大的Django工作流库支持动态实时更改状态、转Meshery 中 Ambassador 模型的注册表解析组件清单、工作原理与设计即代码实践Meshery 中 Ambassador 模型的注册表解析组件清单、工作原理与设计即代码实践 Ambassador 是一个 Kubernetes 原生的 AP云原生微服务运维DevOps创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站