中国DevOps社区峰会2023·广州 海量K8S集群的应用部署和管理实践 邓宇星SUSE架构师 邓宇星 SUSE软件架构师云原生/多集群 在Rancher/SUSE工作,负责产品研发/项目交付 多集群管理/CICD/监控日志告警 RFO(Rancher/RKE2foropenEuler)发行版维护 目录 1 2 DC与Edge集群共同管理 海量K3s边缘集群管理 3基于fleet的海量集群应用部署分享 4门户整合以及平台推广 5Q&A DC与Edge集群共同管理 汽车制造业客户–云边协同/边缘自治 •转向Java技术栈,工厂应用重构并容器化后进行了微服务改造。解决业务快速发展与创新时面临的系统弹性可扩展、敏捷迭代、技术驱动业务创新等难题。 •基于K3S实现了MES、WMS等系统在节省约35%硬件成本的前提下的高可用,工厂网络在线时可批量管理、更新、发版、维护,工厂网络离线时K3S本地自治,服务不中断,产线不停产。 •通过Rancher纳管全球工厂K3S及数据中心K8S,统一平台、统一权限、统一管理。立足上海,管理全球。 L7LB https://<rancherdomainname> LocalCluster ShanghaiDC Factory ProdCluster ProdCluster GermanyDC … … … ShanghaiDC … … … Harbor L7LB LocalCluster ShanghaiDC ProdCluster GermanyDC … … Harbor MES系统管理端运行在数据中心K8S 集群,作为配置分发的控制台 Factory https://<rancherdomainname> ProdCluster … ShanghaiDC … … … LocalCluster ShanghaiDC ProdCluster GermanyDC … L7LB 通过Rancher平台统一管理各个工厂的K3s集群,实现了各个工厂应用容器…化的发布与管理。 Harbor … ProdClusterShanghaiDC https://<rancherdomainname> Factory MES本地端部署在每个工厂轻…量级的K3S集群当中,控制产线生产过程、设备管理、产品条形码等,数据本地存储…并异步传输到远端数据中心。… 海量K3s边缘集群管理 海量ManagedK3s管理实践 •IAC(InfrastructureAsCode)Tools •Puppet–Server/AgentModewithstatefile •Ansible–CLItoolswithscriptlikeconfiguration •Terraform–CLItoolswithstatefile variables.tfvars Rancherconfig Machineconfig 1.Calculatetheclustercountfromthemachinelist(1master/1worker) 2.Createk3sclusterwithpre-definedconfiguration Terraform EdgeRegion1 EdgeRegion2 3.SSHtoeachtorunclusterregistrationcommand. Fleet的应用部署分享 GitOps背景 Fleet架构 Fleet应用管理/部署实践 GitOps背景 GitOps是一种持续交付的方式,是DevOps中的一部分,它的核心思想是将应用系统的声明性基础架构存放在Git版本库中。 GitOps背景–架构 Fleet架构 •FleetManager(gitjob组件pollingmode)从githubpull代码 •FleetManager运行“fleetapply”通过k8sresource文件生成bundles资源对象 •为每个下游cluster生成bundleDeployment资源对象 •下游agent从FleetManager中pullbundleDeployment资源对象 •生成helmcharts/manifests •运行helm/manifest部署 •更新状态信息 Fleet应用管理/部署实践–Cluster/Group Fleet应用管理/部署实践–Repo&Target •Kustomize和Helm于Fleet来说是共生关系,可以通过Fleet配置文件驱动Kustomize与HelmChart部署/升级 •针对不同的部署目标(target),也支持override操作 门户整合以及平台推广 门户集成案例 项目难点 1、如何与当前XX云门户进行统一对接 2、已容器化运行的单机Docke应用服务和 VM运行的应用服务如何改造上云 3、平台运行在openstack上,存储对接CEPH,问题范围划分和职责划分 4、以有的Kubernetes集群及部署的业务如何进行管理 处理方式 1、确认展示功能,梳理对接接口,配合接口对接调试 2、梳理用户需要上云的系统,划分出kubernetes支撑的和VM支撑的,对于kubernetes划分有状态和无状态,制定迁移计划,对于原VM支撑的应用,梳理其技术架构,选择典型进行尝试,积累经验再内部逐步推广 3、上线前进行各项功能、性能测试数据归档,提供常见问题处理手册和技术培训指导。 4、实现先导入纳管,后迁移统一管理的方案 容器云管理平台 数据中台 T信 MES系统 仓库管理系统 物流管理系统 其他· 集群体验 统一的安全策略多租户管理能力 共享工具集成(监控、日志、流水线等) Kub 容器 多租户应用商店 一致的多运维和管理 ernetes 应用管理 用户认证 Pod安全策略管理 网络策略管理集群安全合规管控RBAC管控 配置合规 一体化的K8S集群运行管理 中心化认证授权 高可用可扩展 监控、告警 、日志 持久化存储 主机资源池管理 升级、备份、回滚 Kubernetes 版本管理 apollo.svg 外部系统对接 日志分析平台 告警通知平台 统一监控平台 策略管理 计算资源 x86BM VMwareVM OpenStackVM 存储资源 OSS 网络资源 F5orELB 所有集群统一建设和管理 业务向kubernetes集群都从Rancher平台创建并进行管理,原集群业务迁移到Rancher集群运行 为DevOps平台管理集群提供支撑,DevOps平台调用 Rancher接口实现多集群发布 成立独立部门后续对内推广 为客户提供容器管理标准化经验,在新部门成立的道路上减少障碍 配合客户将现容器解决方案,推广到其他应用系统,逐 步进行迁移 计算资源 存储资源 网络资源 备份恢复 日志 告警 监控 VMX86 NAS Ingres Velero ElasticSearch Email/Webhook Zabbix ········ SCCT供应链系统 MES生产制造系统 IDP产品管理系统 容器云管理平台 外部认证 ActiveDirectory 平台能力 应用发布 集群管理 应用管理 开箱即用 CloudOS-DevOps平台 运维中心 服务上架 测试管理 CICD 开发模版 低代码 可视化架构 需求管理 项目管理 业务类集群–RancherCustomKubernetes 管理类集群–RancherCustomKubernetes Q&A