《叶凯峰—如何在边缘设备上运行与管理云原生负载.pdf》由会员分享,可在线阅读,更多相关《叶凯峰—如何在边缘设备上运行与管理云原生负载.pdf(34页珍藏版)》请在三个皮匠报告上搜索。
1、使用Kubernetes 管理在边缘节点上的云原生负载叶凯峰红帽软件高级顾问1.来自边缘计算节点的挑战2.Why Kubernetes3.如何在边缘设备上运行与管理云原生负载边缘节点的准备负载均衡与服务发现边缘节点的安全性边缘节点与服务能力的扩展监控和日志管理4.以gitops 的方法部署和更新应用5.边缘侧的有些什么开源社区目 录来自边缘侧的挑战资源紧缺CPU/内存少网络延迟大,带宽低,可能长期断网没有外部存储工作环境恶劣(高温,潮湿,沙尘,震动)安装与维护难无专业现场工程师实施安装软硬件合一,业务应用无法升级 多架构x86_64,ARM节点与应用恢复能力监控数据采集可靠性差告警成本高度敏感
2、硬件成本的小幅增加导致总成本 xN 成倍增长OT 向IT 化的转变I TOT敏态为主稳态为主标准、可扩展的硬件云原生应用灵活性和敏捷性数据平台的融合专有的硬件专有应用与真实物理世界交互封闭的系统OT 向IT 化的转变集团数据中心生产线服务器工厂机房分厂数据中心工控设备与传感器IT(Information Technology)OT(Operational Technology)边缘数据中心解决办法让边缘应用也跑在Kubernetes上!资源隔离运行环境一致性快速部署,一键升级场景适应性强复用已有的K8S工具与流程使你专注业务创新Why Kubernetes 数据中心工厂DevOps开发-运营G
3、itOps自动化物联网数据流数据湖资源隔离快速部署一致的运行环境适应性强复用已有的K8S工具与流程如何在边缘设备上运行与管理云原生负载部署方案设计根据部署环境的特点选择合适的部署方案,确保节点具备所需的资源和环境,包括网络连接、存储、计算能力准备计算资源购买设备,预装镜像到设备中现场部署设备上架,连接网络上电检测设备上电自检设备上线设备提供服务边缘节点的准备云或数据中心复合复合单节单节点点适合于低带宽,空间较限制的环境区域数据中心边缘侧远远端端计计算算节节点点适用于空间有限的环境3节节点集群点集群占地面积小,具备高可用能力复合复合边缘单节边缘单节点点适合于低带宽,甚至断网,空间严重不足的环境边
4、缘集群管理与应用部署Kubernetes 节点控制lKubernetes 控制节点Kubernetes 工作节点CWCCWCWWCW极限环境一般环境边缘节点管理负载均衡与服务发现ServiceIngressKuberetes Ingress功能点功能点基于域名提供http/https 转发能力会话保持负载均衡策略(roundrobin,source,etc)Rate-limit and throttlingIP 白名单TLS edge terminationTLS re-encryptionTLS passthroughAppAppHTTP/HTTPS负载均衡与服务发现Service(Node
5、Port)Service NodePort功能点功能点TCP 协议基于Kube-Proxy端口转发没有LB 能力AppAppTCPPort:32758负载均衡与服务发现Service(LoadBalancer)Service Loadbalancer功能点功能点TCP/HTTPS 协议基于外置Loadbalancer 提供转发能力外部可达的IP地址私有云可使用 BGP as LoadBalancerAppAppTCPLoadBalancer边缘节点的安全性硬件安全部署的物理安全安装过程TPM、HSM、RIoT软件安全制品风险容器运行时风险基础设施风险(K8S)平台升级安全网络安全HTTPS服务
6、入口IP 白名单NetworkPolicy(网络隔离)eBPF(可观察性)边缘节点的安全性板载 FIDO 设备(FDO)解决“后期绑定”设备到管理平台或加载其他指令/加密信息的问题。在注册和传递配置和其他机密之前,以密码方式识别系统身份和所有权。使非技术用户能够打开节点电源并轻松离开。https:/fidoalliance.org/internet-of-things/?lang=zh-hans边缘节点与服务能力的扩展云或数据中心复合复合单节单节点点适合于低带宽,空间较限制的环境区域数据中心边缘侧远远端端计计算算节节点点适用于空间有限的环境3节节点集群点集群占地面积小,具备高可用能力复合复合边
7、缘单节边缘单节点点适合于低带宽,甚至断网,空间严重不足的环境边缘集群管理与应用部署Kubernetes 节点控制lKubernetes 控制节点Kubernetes 工作节点CWCCWCWWCW极限环境一般环境边缘节点管理CWCWW边缘节点与服务能力的扩展Service(LoadBalancer)AppAppTCPLoadBalancerService(LoadBalancer)AppAppTCPLoadBalancerHPA Horizontal Pod AutoscalerHPA Horizontal Pod AutoscalerApp监控和日志管理CWCWCWCWCWCWCWCWKafk
8、aKafkaMirror maker发布管理、数据汇聚、可观测数据湖车间1ActiveMQ分厂数据中心中央数据中心log/metrics工业设备工业设备工业设备工业设备Kamel-KMQTT以gitops 的方法部署和更新应用Kubernetes应用发布视图CI/CD 流水线Source Code容器镜像Manifests应用配置ApplicationKubernetesKubernetes应用发布方式Kubernetes YAMLKustomizeHelm ChartKubernetes-native声明式配置管理避免重复Kubernetes原生支持模板化灵活基础设施即【代码】什么是Gito
9、ps GitOps AgentPull/PushGit仓库保存配置检查sync结果Synchronize期望状期望状态态实实施状施状态态容器化应用Kubernetes 集群GitOps 一组利用 Git 工作流来管理基础设施和应用程序配置的实践。通过使用 Git 存储库作为事实来源,它允许 DevOps 团队将集群配置的整个状态存储在 Git 中,以便任何更改都是可见和可审计的。GitOps原则Declarative由 GitOps 管理的系统必须以声明式表达其所需状态Versioned and Immutable所需状态以强制不变性和版本控制并保留完整版本历史的式存储Pulled Autom
10、atically软件代理会动从源中拉取所需的状态声明Continuously Reconciled软件代理持续观察实际系统状态并尝试实施所需状态1234Gitops 工具选择ArgoCDJenkinsXFlux以gitops 的方法部署和更新应用CWCWCWCWArgoCDGit Repo车间1分厂数据中心中央数据中心log/metrics工业设备工业设备工业设备工业设备Git pullCWW以gitops 的方法部署和更新应用|_deployment.yaml|_service.yaml|_route.yaml|_configmap-976cchk896.yaml(FZ)|_deployme
11、nt.yaml|_service.yaml|_route.yaml|_configmap-236cbhk239.yaml(SH)Sync|_base|_deployment.yaml|_kustomization.yaml|_service.yaml|_route.yaml|_configmap.yaml|_dc-fz|_application.property|_kustomization.yaml|_dc-sh|_application.property|_kustomization.yamlkustomization.yamlconfigMapGenerator:-name:conten
12、t-config files:-application.propertyApplicationSetApplicationApplicationArgoCD1.修改k8s yaml 定义2.提交commit单元A单元B以gitops 的方法部署和更新应用CW镜像仓库版本 v1.16.1工业设备CW版本 v1.16.1/v1.16.22 MixCW版本 v1.16.2以gitops 的方法部署和更新应用|_deployment.yaml(1.16.2)|_service.yaml|_route.yaml|_configmap-976cchk896.yaml(FZ)|_deployment.yam
13、l(1.16.2)|_service.yaml|_route.yaml|_configmap-236cbhk239.yaml(SH)Sync|_base|_deployment.yaml(1.16.1)|_kustomization.yaml|_service.yaml|_route.yaml|_configmap.yaml|_dc-fz|_application.property|_kustomization.yaml|_dc-sh|_application.property|_kustomization.yamlkustomization.yamlimages:-name:quay.io/
14、kye/nginx newTag:1.16.2ApplicationSetApplicationApplicationArgoCD1.修改k8s yaml 定义2.提交commit单元A单元B滚动升级nginx:1.16.1-nginx:1.16.2边缘侧的有些什么开源社区KubeEdgeCEOKubeEdge是面向边缘计算场景、专为边云协同设计的业界首个云原生边缘计算框架,在 Kubernetes 原生的容器编排调度能力之上实现了边云之间的应用协同、资源协同、数据协同和设备协同等能力,完整打通了边缘计算中云、边、设备协同的场景。2020年9月,KubeEdge正式晋级为CNCF孵化级别的托管
15、项目。EdgeXFoundryCEOEdgeX Foundry 是一个由Linux基金会主持,供应商中立的边缘计算开源项目,旨在为物联网边缘计算提供开放、可扩展的平台。EdgeX 在许多方面都独具特色,比如服务范围、广泛的行业支持、可信度、投入,以及由 Linux 基金会旗下 LF Edge 组织所提供的不受供应商限制的 Apache 2.0 开源许可模式。EdgeX 本身也是在所有垂直市场物联网用例和企业中推动数字转型与 AI 技术发展的核心要素。K3SCEOK3s 是首个进入 CNCF 沙箱项目的 K8S 发行版,同时也是当前全球用户量最大的 CNCF 认证轻量级 K8S 发行版。自201
16、9年3月发布以来,备受全球开发者们关注,至今GitHub Star数已超过 23.6K,成为了开源社区最受欢迎的边缘计算 K8S 解决方案。截至目前,K3s全球下载量超过100万次,每周平均被安装超过2万次,其中30%的下载量来自中国。MicroshiftCEOMicroShift 是 Red Hat CTO Office 边缘计算团队创建的一个开源项目,它提供了一个针对小型边缘计算环境优化的 OpenShift/Kubernetes 运行环境,Microshift 具备以下特点:轻量级,节约使用系统资源 2 cpu core,2G 内存支持以 rpm 或容器的方式部署RHEL8,CentOS8 Stream提供与标准Kubernets一致的开发和管理体验容忍严苛网络环境限制,安全、安全、快速且无缝地更新(或回滚)(不会中断工作负载)。构建并与边缘优化的操作系统(例如 Fedora IoT 和 RHEL for Edge)完美集成。https:/microshift.io谢谢关注!max growth