
在 Meshery 中一键部署 AWS VPC 网络工作流基于 aws-ec2-controller 的 VPC-WORKFLOW-DESIGN 实战指南【免费下载链接】mesheryMeshery, the cloud native manager项目地址: https://gitcode.com/GitHub_Trending/me/meshery本指南围绕 Meshery Catalog 中的VPC-WORKFLOW-DESIGN版本 0.0.11展开讲解如何借助 Meshery 的可视化设计与部署能力在 Kubernetes 集群中通过 ACKAWS Controllers for KubernetesEC2 控制器编排创建一套完整的 AWS 网络环境VPC、公网/私网子网、IGW、NAT 网关、EIP、安全组与路由表并为后续部署 EC2 实例Bastion Host 与 Private Instance铺平网络基础。读完本文你将掌握该设计的组件构成、底层引用关系design.yml 中的Ref引用与 annotation 标注、前置条件EC2 Controller 设计以及通过 Meshery UI 与mesheryctl部署的完整操作流程。设计概览一次部署一套 EC2 就绪的网络基础设施VPC-WORKFLOW-DESIGN是 Meshery Catalog 中一个类型为deployment的官方可部署设计其目录入口位于 docs/catalog/deployment/2f7597bd-9713-461e-b64f-c571415d2a86.md实际的设计清单design.yml与包元数据artifacthub-pkg.yml位于 docs/data/catalog/2f7597bd-9713-461e-b64f-c571415d2a86/0.0.11/。按照设计文档的原始说明patternInfo该设计包含创建 VPC 及其 EC2 实例所需网络组件的全部必要资源This design contains all the necessary resources required to create the VPC and other networking components for EC2 instances. The resources that will be deployed include VPC, Private and Public Subnet, Internet gateway, NAT gateway, Elastic IP, Security Group, Route tables.部署完成后你将得到以下 AWS 网络资源资源类型Kubernetes 组件kind实例名称displayName关键配置VPCec2.services.k8s.aws/v1alpha1VPCtutorial-vpcCIDR10.0.0.0/16启用 DNS Support 与 DNS Hostnames公网子网Subnettutorial-public-subnet1CIDR10.0.0.0/20mapPublicIPOnLaunch: true可用区 us-east-1a私网子网Subnettutorial-private-subnet1CIDR10.0.128.0/20可用区 us-east-1a互联网网关InternetGatewaytutorial-igw绑定 tutorial-vpc弹性 IPElasticIPAddresstutorial-eip1带 tagnameeip-tutorialNAT 网关NATGatewaytutorial-natgateway1挂在公网子网关联上述 EIP公网路由表RouteTabletutorial-public-route-table默认路由经 IGW 出公网0.0.0.0/0私网路由表RouteTabletutorial-private-route-table-az1默认路由经 NAT 网关出公网安全组SecurityGrouptutorial-security-group放行 22 端口SSH入站前置条件先部署 EC2 Controller 设计本设计有一个硬性前置依赖EC2 Controller 必须已部署在目标 Kubernetes 集群上。这一要求同时体现在两个地方目录文档的patternCaveats字段Ensure the EC2 Controller has been deployed on your Kubernetes Cluster.设计画布中的文字注释annotation TextBoxTo deploy this design, you have to ensure that the [EC2 controller design] has been deployed first. Clone the Controller design from the catalog and deploy it first.EC2 Controller 设计对应的目录条目是 docs/catalog/deployment/8f7e1431-3885-4ebf-9ef7-d2ec64bd4eb5.mdEC2-CONTROLLER-DESIGN。它的作用是在集群中安装 ACK EC2 控制器包括 CRD、RBAC 权限和控制器 Pod从而让 Kubernetes 能直接管理 EC2 资源。其前置要求包括集群连接确保你的 Kubernetes 集群已经连接到 MesheryAWS 凭据 Secret将 AWS access key 与 secret access key 做 Base64 编码后存入 Kubernetes Secret环境变量注入控制器设计已预配置为从该 Secret 读取凭据作为环境变量只需填入编码后的密钥AWS 区域在控制器 Pod 配置中指定正确的区域该设计使用us-east-1与本文 VPC 设计保持一致专用命名空间控制器资源部署在ack-system命名空间内。完成控制器部署后返回 Catalog 克隆VPC-WORKFLOW-DESIGN即可进行下一步部署。组件拆解design.yml 中的九类 AWS 资源该设计的真实可执行定义是 JSON 格式的 design.yml其schemaVersion为designs.meshery.io/v1beta1。所有可部署组件均来自aws-ec2-controller模型版本 v1.2.28CRD 组为ec2.services.k8s.aws/v1alpha1可证明它们是 ACK 托管资源。下面逐一解析各组件及其引用关系。VPCtutorial-vpcVPC 是整个网络的地基配置如下configuration: { spec: { tags: [{key: name, value: vpc-tutorial}], cidrBlocks: [10.0.0.0/16], enableDNSSupport: true, enableDNSHostnames: true }, metadata: {name: tutorial-vpc} }cidrBlocksVPC 网段10.0.0.0/16提供了 65536 个 IP足以划分两个/20子网并预留扩展空间enableDNSSupport/enableDNSHostnames启用 DNS 解析与主机名分配是后续 EC2 实例通过 DNS 通信的基础。公网与私网子网两个子网都通过vpcRef引用tutorial-vpc并通过routeTableRefs绑定各自的路由表体现了设计内部的组件引用关系// tutorial-public-subnet1 spec: { vpcRef: {from: {name: tutorial-vpc}}, cidrBlock: 10.0.0.0/20, routeTableRefs: [{from: {name: tutorial-public-route-table}}], availabilityZone: us-east-1a, mapPublicIPOnLaunch: true } // tutorial-private-subnet1 spec: { vpcRef: {from: {name: tutorial-vpc}}, cidrBlock: 10.0.128.0/20, routeTableRefs: [{from: {name: tutorial-private-route-table-az1}}], availabilityZone: us-east-1a }关键差异公网子网设置了mapPublicIPOnLaunch: true实例启动自动获得公网 IP私网子网则没有这正是公网/私网分层的实现方式。互联网网关与弹性 IPIGW 通过vpcRef绑定 VPCEIP 通过 tag 标记用途// tutorial-igw spec: {tags: [], vpcRef: {from: {name: tutorial-vpc}}} // tutorial-eip1 spec: {tags: [{key: name, value: eip-tutorial}]}NAT 网关NAT 网关是私网子网访问公网的关键它位于公网子网subnetRef并复用 EIPallocationRefspec: { subnetRef: {from: {name: tutorial-public-subnet1}}, allocationRef: {from: {name: tutorial-eip1}} }公网与私网路由表两条路由表都引用 VPC并在routes中定义默认路由分别指向 IGW 与 NAT 网关// 公网路由表默认路由经 IGW routes: [{gatewayRef: {from: {name: tutorial-igw}}, destinationCIDRBlock: 0.0.0.0/0}] // 私网路由表默认路由经 NAT 网关 routes: [{natGatewayRef: {from: {name: tutorial-natgateway1}}, destinationCIDRBlock: 0.0.0.0/0}]由此形成完整的数据通路公网流量Internet - IGW - Public Subnet私网出站流量Private Subnet - NAT Gateway - IGW - Internet而私网入站则依赖后续设计中部署的 Bastion Host。安全组安全组同样通过vpcRef归属 VPC并放行 SSH 入站spec: { name: tutorial-sg, vpcRef: {from: {name: tutorial-vpc}}, description: ack security group, ingressRules: [{ toPort: 22, fromPort: 22, ipRanges: [{cidrIP: 0.0.0.0/0, description: ingress}], ipProtocol: tcp }] }注意0.0.0.0/0表示对全网开放 22 端口生产环境建议将其收敛为运维跳板机的固定 IP 段。画布设计逻辑注解组件如何辅助部署设计文件中除了可部署的 AWS 资源外还包含大量 Meshery 注解annotation组件与 annotation 关系edgesubType: annotation它们仅用于画布展示与说明不参与实际资源下发。从 design.yml 可以清晰还原画布的分区布局标题区标注AWS VPC WORKFLOW DESIGN、DESIGN LEGEND的 TextBox步骤说明区带编号 1/2/3 的 Circle 节点对应三步操作部署控制器 → 点击 Actions 部署 → 部署 EC2 实例分区框名为Public Subnet、Private Subnet、Routes、virtual private network的 Rectangle用于视觉上圈定资源归属角色图例Internet、Users图片注解以及 Bastion Host、Private Instance 两个 EC2 图标注解图例说明The green arrows are annotations that indicate the traffic flow between the AWS resources.从源码结构可以推断这些 annotation 关系如Internet - IGW、Users - Bastion Host、Bastion Host - Private Instance用于在画布上绘制绿色箭头表达流量走向帮助使用者直观理解网络的访问路径这是 Meshery 设计文件用注解表达架构语义的典型做法。部署步骤从 Catalog 到 AWS 控制台方式一Meshery UI推荐打开 Meshery UI进入Catalog页面找到VPC-WORKFLOW-DESIGN也可按类型deployment筛选点击Clone/Import将设计导入到My Designs在Designer中打开设计画布核对组件与注解说明点击右上角Actions按钮选择Deploy将设计下发到已连接且装有 EC2 Controller 的集群等待 ACK 控制器调和完成导航到AWS Management Console查看已部署的 VPC、子网、IGW、NAT 网关、EIP、安全组与路由表资源。方式二mesheryctl CLIMeshery CLI 提供等价的导入与部署能力。导入设计mesheryctl design import --file PATH/URL --source-type TYPE例如将本设计的 design.yml 导入mesheryctl design import -f docs/data/catalog/2f7597bd-9713-461e-b64f-c571415d2a86/0.0.11/design.yml -s manifest导入成功后可通过mesheryctl design子命令如list、view、deploy、delete管理并部署该设计。导入过程中Meshery 会对设计文件进行解析、校验与格式转换参见 导入与导出设计指南将组件与注册表中的kind、apiVersion匹配并把非 Meshery 格式转换为 Meshery Design 后存储。部署后的验证与后续衔接部署完成后可按以下顺序验证网络是否按设计生效在 AWS 控制台的VPC Dashboard中确认 VPCvpc-tutorialCIDR10.0.0.0/16及两个子网存在且分别关联了正确的路由表检查公网路由表是否包含指向 IGW 的0.0.0.0/0路由私网路由表是否包含指向 NAT 网关的0.0.0.0/0路由确认 NAT 网关状态为Available且与 EIPtutorial-eip1正确绑定确认安全组放行 22 端口后续实例可以 SSH 接入。本设计是完整 EC2 工作流的第一步。设计画布中的注解明确提示后续还需要从 Catalog 部署两个 EC2 实例——Bastion Host公网子网作为 SSH 跳板与Private Instance私网子网无公网 IP。由于本设计已在画布中预留了这两个实例的注解占位网络资源就绪后直接导入实例部署设计并执行 Actions Deploy 即可完成整条链路。注意事项与局限硬性前置必须在集群中先完成 EC2 Controller 设计 的部署且 AWS 凭据、区域本设计为us-east-1需配置正确否则 ACK 无法调和任何资源单可用区设计本设计仅使用us-east-1a一个可用区属于低成本教学/演示形态生产环境应扩展为多可用区以保障高可用安全组策略22 端口对0.0.0.0/0开放仅适合演示请根据实际安全策略收紧来源网段云资源成本NAT 网关与 EIP 均会产生 AWS 费用演练完毕后建议及时删除设计资源避免持续计费区域一致性VPC 设计中指定的区域必须与 EC2 Controller 中配置的区域一致。延伸阅读设计元数据与下载入口docs/catalog/deployment/2f7597bd-9713-461e-b64f-c571415d2a86.md设计清单含全部组件与引用关系docs/data/catalog/2f7597bd-9713-461e-b64f-c571415d2a86/0.0.11/design.yml包元数据ArtifactHub 格式docs/data/catalog/2f7597bd-9713-461e-b64f-c571415d2a86/0.0.11/artifacthub-pkg.yml前置控制器设计docs/catalog/deployment/8f7e1431-3885-4ebf-9ef7-d2ec64bd4eb5.md设计的导入/导出方法docs/content/en/guides/configuration-management/import-export-designs.md设计Designs概念文档docs/content/en/concepts/【免费下载链接】mesheryMeshery, the cloud native manager项目地址: https://gitcode.com/GitHub_Trending/me/meshery创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考