新闻详情

新闻详情

首页 / 资讯中心 / 详情

用 Meshery 部署多容器 Pod:Pod Multi Containers 设计模式实战解析

发布时间:2026/11/4 13:19:12来源:尧图网络
用 Meshery 部署多容器 Pod:Pod Multi Containers 设计模式实战解析
云原生微服务运维DevOps【免费下载链接】mesheryMeshery, the cloud native manager项目地址https://gitcode.com/GitHub_Trending/me/meshery点击查看免费下载本文基于 Meshery 仓库中的 Catalog 设计条目Pod Multi Containersdocs/catalog/resiliency/17c46515-50ef-436c-9383-451e13348ddd.md及其配套的 design.yml 展开讲解该设计在 Kubernetes 集群中的组件构成、配置语义与部署方式。读完本文你将掌握如何读懂一个 Meshery Catalog 设计文件Design File的组件与关系结构以及如何用mesheryctl design命令将多容器 Pod 设计导入并部署到真实集群。一、设计文件Meshery 中可复用的部署单元在 Meshery 中设计Design是一个声明式的可视化与部署单元它描述了一组 Kubernetes 组件的期望状态以及组件之间的关系Relationship。Catalog目录是 Meshery 社区共享设计的集合每个目录条目都通过 frontmatter 元数据描述其名称、类型、兼容性、作者与下载入口。以本文的主角为例其 catalog 条目的 frontmatter见 docs/catalog/resiliency/17c46515-50ef-436c-9383-451e13348ddd.md包含了以下关键字段字段值含义namePod Multi Containers设计名称typeresiliency目录分类归属于弹性/韧性类目compatibilitykubernetes兼容的平台/运行时patternId17c46515-50ef-436c-9383-451e13348ddd全局唯一标识符patternInfo见下文设计用途说明patternCaveatsNo caveats使用注意事项本文档声明为无downloadLink17c46515-…/design.yml设计文件的下载路径其中patternInfo对设计用途的原始描述为Pod Multi Containers design facilitates the deployment of Kubernetes Pods that consist of multiple containers, each serving a distinct role within a single cohesive unit.即该设计用于部署由多个容器组成的 Kubernetes Pod每个容器在同一个整体单元Pod内承担不同的职责。这正是 Kubernetes 多容器 Pod如 Sidecar、Adapter、Ambassador 等模式的常见落地形态。catalog 条目的元数据还配套在 docs/data/catalog/17c46515-50ef-436c-9383-451e13348ddd/0.0.1/artifacthub-pkg.yml 中其中明确给出了安装方式提示mesheryctl design import -f并注明许可证为 Apache-2.0。说明Catalog 条目的 frontmatter 结构遵循 docs/catalog/_defaults.md 定义的模板约定layout: item、patternId、patternInfo、downloadLink等字段这为所有 Catalog 条目提供了统一的元数据规范。二、design.yml 整体解剖组件、配置与关系该设计的实际内容全部承载在 docs/data/catalog/17c46515-50ef-436c-9383-451e13348ddd/0.0.1/design.yml 中其 schema 版本为designs.meshery.io/v1beta1设计版本号为0.0.135。文件主要包含两大块components组件组成设计的所有资源每个组件都携带component类型声明、configuration实际配置、model来源模型、styles可视化样式等元数据relationships关系组件之间的拓扑与配置继承关系schema 版本为relationships.meshery.io/v1alpha3。2.1 组件拓扑一览该设计共声明了 4 个组件构成如下的嵌套结构Namespace default父级inventory 关系 └── Pod pods-multi-container-pod父级alias 关系 ├── Container container-chmannotations 组件注入 spec.containers[1] └── Container container-edtannotations 组件注入 spec.containers[0]其中 Namespace 与 Pod 来自Kubernetes模型models.meshery.io/v1beta1版本基于 kubernetes v1.32.0-alpha.3 的 OpenAPI 定义而两个 Container 组件来自Meshery Core模型category 为 Orchestration Management它们被标记为isAnnotation: true在图形化编辑器中表现为可拖放到 Pod 内的注释/子组件。2.2 Pod 的核心配置两个各司其职的容器Pod 组件的configuration是该设计最关键的部分它直接对应一个标准的 Kubernetes Pod 清单{ metadata: { annotations: {}, labels: {}, namespace: default }, spec: { containers: [ { command: [sleep, 3600], image: busybox, name: pods-multi-container-container-1 }, { command: [sleep, 3601], image: busybox, name: pods-multi-container-container-2 } ] } }要点解读两个容器共享同一个 Pod 生命周期它们属于default命名空间共用一个网络命名空间、同一个 IP 与存储卷这正是单一凝聚单元single cohesive unit的技术本质镜像与命令示例采用busybox镜像分别以sleep 3600和sleep 3601作为启动命令保持容器存活便于后续验证多容器共存与日志观察。实际生产使用时只需在 Meshery 的可视化设计器中把镜像、命令替换为真实业务镜像即可namespace通过关系自动继承Pod 配置中metadata.namespace的取值来自 Namespace 组件的注入详见下文关系分析无需手工重复编写。三、Relationships设计如何实现配置自动注入design.yml 中的 3 条 relationship 揭示了 Meshery 设计系统配置自动补全的底层机制——这与 Kubernetes 原生清单的编写方式截然不同是理解该设计价值的关键。3.1 Alias 关系Container → Pod两对两条kind: hierarchical、type: parent、subType: alias的关系把 Container 子组件的配置打补丁到 Pod 的容器数组上关系 ID源from目标topatch 策略mutatorRef29937222-…Containercontainer-chmid deb2ec96-…Podpods-multi-container-podreplaceconfiguration.spec.containers[1]cb1bdb6c-…Containercontainer-edtid 456edab8-…Podpods-multi-container-podreplaceconfiguration.spec.containers[0]其元数据中的通用语义描述为A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component.也就是说当你在可视化画布上把container-chm拖入 Pod 时Meshery 会根据这条关系将子组件的配置以replace策略写入父组件 Pod 的spec.containers[1]container-edt则写入spec.containers[0]。两个容器由此获得确定的数组下标顺序从而保证容器在 Pod 中的声明顺序稳定、可预测。3.2 Inventory 关系Pod → Namespace第三条关系id 649519d8-…同样是 hierarchical/parent 类型但subType: inventory其作用是把 Pod 的metadata.namespace自动补全为 Namespace 组件的 displayName即default。这正是上一节 Pod 配置中namespace: default的来源——从源码结构看用户在画布上只需放置 Namespace 与 Pod命名空间归属便会自动建立无需手动填写。这种关系驱动配置的机制使得 Catalog 中的设计天然具备可移植性组件配置与关系拓扑分离导入到不同集群时Meshery 会依据关系重新计算并生成最终的 Kubernetes 清单。四、实操一导入设计mesheryctl design importCatalog 条目在 artifacthub-pkg.yml 中给出的安装方式即为mesheryctl design import -f。该命令的实现位于 mesheryctl/internal/cli/root/design/import.go支持两种输入形态# 方式一从本地文件导入文件内容会被读取并上传 mesheryctl design import -f 17c46515-50ef-436c-9383-451e13348ddd/design.yml # 方式二从远程 URL 导入 mesheryctl design import -f https://.../design.yml # 可选指定源类型与设计名称 mesheryctl design import -f design.yml -s Kubernetes Manifest -n my-pod-design从 import.go 的实现可以确认以下行为-f是必填参数未提供时命令直接报错ErrDesignFileNotProvided-s源类型可选合法取值为Helm Chart、Kubernetes Manifest、Meshery Design、Docker Compose未指定时由服务端自动识别未通过-n指定名称时默认以文件名path.Base(file)作为设计名命令最终通过POST /api/pattern/import接口把文件内容或 URL 交给 Meshery Server 解析入库import.go成功后返回设计 ID 与名称。提示本设计文件是标准的 Meshery DesignJSON格式导入时可显式声明-s Meshery Design以跳过类型探测。五、实操二部署设计mesheryctl design apply设计导入后即可部署到集群。mesheryctl design apply实现见 mesheryctl/internal/cli/root/design/apply.go支持两种调用方式# 方式一直接 apply 一个设计文件 mesheryctl design apply -f 17c46515-50ef-436c-9383-451e13348ddd/design.yml # 方式二按名称部署已保存的设计 mesheryctl design apply pod-multi-containers从 apply.go 的实现可以看到传入设计名时命令会先调用GET /api/pattern?populatepattern_filesearch名称检索已保存的设计并取出pattern_file若存在多个同名设计会弹出交互式确认传入文件时若参数不是https://github.com或https://raw.githubusercontent.com开头的 URL则按本地文件读取内容最终通过POST /api/pattern/deploy触发真正的 Kubernetes 部署apply.goMeshery 会根据设计中的组件与关系生成最终资源清单下发到集群。部署完成后可以验证多容器 Pod 是否就绪kubectl get pods -n default kubectl logs -n default pods-multi-container-pod -c pods-multi-container-container-1 kubectl logs -n default pods-multi-container-pod -c pods-multi-container-container-2六、适用场景与注意事项该 Catalog 条目的patternCaveats声明为No caveats无使用注意项说明它作为入门级的多容器 Pod 模板可直接使用。结合 Kubernetes 多容器 Pod 的通用实践它适合作为以下场景的起点Sidecar 模式一个容器承载主业务另一个容器承载日志采集、网络代理等辅助职责Adapter / Ambassador 模式为业务容器附加协议转换或流量代理容器共享网络与存储的多进程协作多个容器通过 localhost 通信、共享 EmptyDir 卷。需要留意的是示例中的容器仅以busyboxsleep保持存活并未定义ports、volumeMounts、resources等字段生产使用时应基于该骨架在 Meshery 可视化编辑器中补充这些配置并遵循 Kubernetes 官方建议如多容器场景下合理设置resources与就绪探针。同时Catalog 中与本条目同属 resiliency 分类的其余条目见 docs/catalog/resiliency 目录也提供了更多可参考的弹性设计模板。七、参考文件速览Catalog 条目元数据docs/catalog/resiliency/17c46515-50ef-436c-9383-451e13348ddd.md设计文件组件 关系完整定义docs/data/catalog/17c46515-50ef-436c-9383-451e13348ddd/0.0.1/design.ymlCatalog 安装元数据docs/data/catalog/17c46515-50ef-436c-9383-451e13348ddd/0.0.1/artifacthub-pkg.ymlCatalog 条目模板约定docs/catalog/_defaults.mdmesheryctl design import实现mesheryctl/internal/cli/root/design/import.gomesheryctl design apply实现mesheryctl/internal/cli/root/design/apply.go同类 resiliency 设计条目docs/catalog/resiliency赞分享云原生微服务运维DevOps【免费下载链接】mesheryMeshery, the cloud native manager项目地址https://gitcode.com/GitHub_Trending/me/meshery点击查看免费下载相关推荐Meshery Catalog 实战使用 Pod Privileged Simple 设计模式在 Kubernetes 中部署特权容器Meshery Catalog 实战使用 Pod Privileged Simple 设计模式在 Kubernetes 中部署特权容器 导读 本文以 M云原生微服务运维DevOps使用 Meshery 在 Kubernetes 上部署 WordPress 与 MySQLMeshMap 设计模式实战解析使用 Meshery 在 Kubernetes 上部署 WordPress 与 MySQLMeshMap 设计模式实战解析 本篇技术指南基于 Meshery云原生微服务运维DevOps使用 Meshery 设计模式部署 Nginx ControllerCatalog 条目解析与实战指南使用 Meshery 设计模式部署 Nginx ControllerCatalog 条目解析与实战指南 Meshery Catalog 中的每个部署类设计d云原生微服务运维DevOps创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/3 7:07:39

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/3 12:09:35

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/3 12:09:38

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/4 12:33:12

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/4 1:25:31

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/4 3:51:11

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉