当前位置: 首页 > article >正文

软考:论容器编排

容器的好处

是现代IT领域的关键技术之一,它提供了一种轻量级的虚拟化解决方案,使得应用程序可以在隔离的环境中运行,而无需关心底层操作系统。
2013年Docker的出现,极大地推动了容器技术的发展,它简化了应用的打包和部署过程,使得应用程序能够跨多个环境一致地运行。

容器的本质是进程
容器是应用程序层的抽象,将代码和依赖项打包在一起。多个容器可以在同一台计算机上运行,​​并与其他容器共享OS内核,每个容器在用户空间中作为隔离的进程运行。容器占用的空间少于VM,可以处理更多的应用程序,并且需要的VM和操作系统更少。

  • vm and container
    虚拟机: 在物理机模拟整台机器包含硬件 每台虚拟机就是自己的操作系统,虚拟机一旦 开启,预分配的资源全部占用
    容器:和 宿主机共享硬件和操作系统实现资源动态分配 容器包含所有的依 赖包都与其他容器共享内核

是什么

容器编排是对多个容器的部署,管理和监控。之所以有容器编排技术,其实是和业务量与系统复杂度与日俱增推动服务部署的演进方式息息相关的。

为什么需要容器编排:

我们将单体式的架构拆分成越来越多细小的服务,运行在各自的容器中,那么该如何解决它们之间的依赖管理,服务发现,资源管理,高可用等问题呢?

资源编排 - 负责资源的分配,如限制 namespace 的可用资源,scheduler 针对资源的不同调度策略;
工作负载编排 - 负责在资源之间共享工作负载,如 Kubernetes 通过不同的 controller 将 Pod 调度到合适的 node 上,并且负责管理它们的生命周期;
服务编排 - 负责服务发现和高可用等,如 Kubernetes 中可用通过 Service 来对内暴露服务,通过 Ingress 来对外暴露服务。

容器编排是管理大规模容器化应用程序的自动化过程,它对于现代云计算和微服务架构至关重要。以下是为什么需要容器编排的几个关键原因:

  1. 自动化管理:随着应用程序数量的增长和复杂化,手动管理成百上千个容器变得不切实际。容器编排工具可以自动化容器的部署、扩展、负载均衡和自我修复,从而简化容器基础设施的管理 。

  2. 资源优化:容器编排工具能够高效地管理资源,确保应用程序在分布式环境中的稳定性和可靠性,同时优化资源使用,降低成本 。

  3. 可扩展性:容器编排允许根据工作负载需求自动扩大或缩小容器部署,支持应用程序的无缝扩展 。

  4. 高可用性:容器编排工具可以检测和修复基础设施故障,自动重启或替换失败的容器,保持应用程序的高可用性和增加正常运行时间 。

  5. 微服务架构支持:在微服务架构中,应用程序被拆分成多个独立的服务。容器编排帮助管理这些服务的部署、扩展和通信,确保系统的稳定性和可靠性 。

  6. 多租户环境容器编排可以实现资源的隔离和分配,在多租户环境中确保每个租户的应用程序能够独立运行 。

  7. 持续集成和持续部署(CI/CD):容器编排可以与CI/CD工具链集成,实现应用程序的自动化构建、测试和部署,提高开发效率,缩短发布周期 。

  8. 混合云和多云环境:容器编排可以跨多个云提供商和私有数据中心部署和管理应用程序,实现混合云和多云环境的统一管理 。

  9. 安全性:容器编排允许跨平台管理安全策略,减少人为错误,隔离应用程序进程,减少攻击面并提高整体安全性 。

  10. 边缘计算:在边缘计算场景中,容器编排可以帮助管理和运行分布在边缘节点上的容器,实现资源的动态调度和故障恢复 。

综上所述,容器编排是实现大规模、高效、可靠容器化应用程序部署和管理的关键工具 。

应用编排

实际上我们管理的是应用包,一个应用会包含多个服务Pod,

  • K8S的好处
    通过上面的例子,我们发现 Kubernetes 已经为我们对大量常用的基础资源进行了抽象和封装,我们可以非常灵活地组合、使用这些资源来解决问题,同时它还提供了一系列自动化运维的机制:如 HPA, VPA, Rollback, Rolling Update 等帮助我们进行弹性伸缩和滚动更新,而且上述所有的功能都可以用 YAML 声明式进行部署。

  • 困境
    但是这些抽象还是在容器层面的,对于一个大型的应用而言,需要组合大量的 Kubernetes 原生资源,需要非常多的 Services, Deployments, StatefulSets 等,这里面用起来就会比较繁琐,而且其中服务之间的依赖关系需要用户自己解决,缺乏统一的依赖管理机制。

应用编排
一个对外提供服务的应用,首先它需要一个能够与外部通讯的网络,其次还需要能运行这个服务的载体 (Pods),如果这个应用需要存储数据,这还需要配套的存储:

应用单元 = 网络 + 服务载体 +存储


http://www.kler.cn/a/388003.html

相关文章:

  • 【Qt】在 Qt Creator 中使用图片资源方法(含素材网站推荐)
  • C++ QT 工具日志异步分批保存
  • Spring框架之适配器模式 (Adapter Pattern)
  • Nebula NGQL语言的使用 一
  • linux,1.NFS和autofs,2.podman容器,3.http服务和虚拟web主机,4.内网DNS服务搭建
  • 丹摩征文活动 | Kolors入门:从安装到全面活用的对比指南
  • 微信小程序——01开发前的准备和开发工具
  • C++builder中的人工智能(20):如何在C++中开发一个简单的Hopfield网络
  • 推荐一款管道数据检索工具:Pipedata-Pro
  • C语言复习第9章 字符串/字符/内存函数
  • 卫星授时服务器,单北斗授时服务器,北斗卫星时钟服务器
  • 域名邮箱推荐:安全与稳定的邮件域名邮箱!
  • 【go从零单排】迭代器(Iterators)
  • chrony服务器(linux)
  • w029基于springboot的网上购物商城系统研发
  • Kubernetes中的statefulset控制器
  • 构建智能防线 灵途科技光电感知助力轨交全向安全防护
  • 现代Web开发:React Hooks深入解析
  • 鸿蒙移动应用开发-------初始arkts
  • php 之添加图片水印,根据比例计算水印的新尺寸
  • ssm080削面快餐店点餐服务系统的设计与实现+jsp(论文+源码)_kaic
  • 在IDEA中使用Git
  • Unity——鼠标点击信息和当前位置获取
  • Java 处理 json 格式数据解析为 csv 格式
  • 在React项目中配置@作为路径别名
  • 企业资产管理:SpringBoot技术实践