容器安全技术容器管理与应用

news/2024/5/9 17:30:49/文章来源:https://blog.csdn.net/m0_73803866/article/details/127303318

容器管理与应用

容器技术之所以在微服务、云计算
等领域得到广泛应用,除了其轻量化的技术外,弹性、敏捷的容器管理和 编排系统支持也是重要因素之一。#### 容器管理
集群化、弹性化和敏捷化是容器应用的显著特点,如何有效地对容器集群进行管理,是容器技术落地应用的 一个重要方面。集群管理工具(编排工具)能够帮助用户以集群的方式在主机上启动容器,并能够实现相应的网 络互联,同时提供负载均衡、可扩展、容错和高可用等保障。当前关注度和使用率比较高的几种容器集群管理工 具主要包括:Kubernetes、Apache Mesos、Docker Swarm 和 Docker Compos
e。1. Kubernetes
Kubernetesl[23] 是由 Google 基于其内部大规模集群管理系统
Borg 发布的开源分布式容器管理平台,简称 K8S。Kubernetes 为用户提供了集群管理能力、多租户应用支撑能力、透明的服务注册和服务发现机制、负载均 衡能力以及故障发现和自我修复等能力。Kubernetes 的架构如下图所示,主要由一个或多个 Master 节点和一个或多个 Node 节点组成。

Master 节点包含多个重要组件,例如和存储相关的 Etcd 组件、和调度相关的 Scheduler 组件、集群控制高 可用组件 Controller Manager、与外部通讯协调整个集群的组件 API Server 等。
Node 节点含有两个重要的组件,分别是管理集群中 Pod 生命周期
的组件 Kubelet 和负责 Kubernetes 中网络 配置的组件 Kube-proxy。在 Kubernetes 中,包括以下几个重要操作单元:

  • Pod:Kubernetes 中运行应用或服务的最小单元,其设计理念是支持多个容器在一个 Pod 中共享网络地 址和文件系统。
  • Service:访问 Pod 的代理抽象服务,主要用于集群内部的服务发现和负载均衡。
  • Replication Set:用于伸缩 Pod 副本数量的组件。
  • Scheduler:集群中资源对象的调度控制器
    。- Controller Manager:负责集群中资源对象管理同步的组件。
  • Etcd:分布式键值对(k,v)存储服务,存储整个集群的状态信息。
  • Kubelet:负责维护 Pod 的生命周期。
  • Labels:一组键值对,与某种资源关联以提供标识定位能力的属性。
  • Deployment:用于管理 Pod 对象,集成了上线部署、滚动升级、创建副本、暂停 / 恢复上线任务、回 滚等功能。
  • Volumes:即目录,其中存有数据,在容器启动时指定参数会自动挂载至容器内部,Volumes 分静态和 动态,其具有不同的生命周期。
  • Stateful Set:通常创建的 Pod 是无状态的,这样会导致一旦 Pod 挂掉再重启后会找不到之前挂载的 Volume,所以可以通过 Stateful Set 来保留 Pod 的状态。
    Kubernetes Pod 工作流程为:
    (1)提交请求
    用户通常提交一个 yaml 文件,向 API Server 发送请求创建一个 Pod,yaml 文件含有此 Pod 的详细信息,包 含此 Pod 运行副本数、镜像、Labels、名称,端口暴露情况等。API Server 接收到请求后将 yaml 文件中的 spec 数据存入 Etcd 中。
    (2)资源分配
    Scheduler 通过 API Server 的 watch 接口定时监听 Etcd 数据库中资源的变化(此处指上一步待分配的 Pod),当监测到了 Pod 后,通过 Scheduler 的调度策略选择出具有运行 Pod 能力的 Node 节点并将 Pod 与目标 Node 节点进行绑定,同时更新 Etcd 数据库中 Pod 的分配情况。
    (3)新建容器
    此时目标 Node 节点上的 Kubelet 通过 API Server 的 Watch 接口监测到 Etcd 中 Pod 的分配信息,同时将 Pod 的相关数据传递给容器运行时以负责此 Pod 的整个生命周期,之后 Kubelet 还会通过容器运行时获取 Pod 的 状态信息并通过 API Server 更新至 Etcd。
    (4)资源状态同步
    为了保证此 Pod 在 Node 节点中运行正常(Pod 可能会因为某些原因被杀死),Controller Manager 中的 Replication Set 组件通过 API Server 定时监听 Etcd 以获得 Pod 的最新状态并最终对 Pod 进行数量上的同步,从 而保证了 Pod 运行副本数与用户指定副本数相同。

Controller Manager
API Server Etcd Scheduler Kubelet Docker
Create Pod
Write
Watch(New Pod)
Bind Pod
Write
Watch(Bound Pod)
Docker Run Update Pod Status
Write

  1. Apache Mesos
    Apache Mesos[24]源自 UC Berkeley的一个对集群资源进行抽象和管理的开源项目,后在 Twitter 得到广泛使用。 Apache Mesos 将整个数据中心的资源进行抽象和管理调度,有类似主机操作系统的功能,使得多个应用同时运 行在集群中分享资源。
    Apache Mesos 的架构如下图所示,由一个或多个 Master 节点和一个或多个 Slave 节点,以及若干个 Framework 应用程序组成。
    Master 主要负责管理各个 Framework 和 Slave 节点,并将 Slave 节点上的资源分配给相关的 Framework。 Slave 负责管理当前节点上的任务分配。Framework 是外部计算框架,可插拔,常用的有 Marathon、Hadoop、MPI等, Framework 可通过注册的方式接入 Mesos,以便 Mesos 进行统一管理和资源分配。

Framework 主要由两个组件组成,分别是调度器和执行器。调度器与 Master 交互,根据可用资源,将任务 调度至 Slave 中加载;执行器从 Framework 中获取变量,在 Slave 节点中运行任务。
Apache Mesos 工作流程主要为:
(1)资源信息聚合
Slave 节点向 Master 节点上传其可用资源信息,Master 节点作为一个资源池对收集到的资源进行维护。
(2)任务分配
Master 节点将可用资源提供给某一应用的 Framework Scheduler,该应用的 Framework Scheduler 对比提供 的资源是否满足其任务的运行要求,如果不满足,则向 Master 节点传递拒绝提供的资源信息,而 Master 节点则 再次向其它 Framework 提供资源;如果满足,Framework Scheduler 则接受提供的资源信息。
(3)任务下发
Framework Scheduler 下发任务至 Master 节点,Master 节点接收并在 Slave 节点中使用 Executor 运行应用。

  1. Docker Swarm
    Docker Swarm[25] 是 Docker 公司在 2014 年 12 月初发布的一款容器管理工具,其功能较为简单,主要用于 管理 Docker 集群,使得 Docker 集群以一个虚拟整体暴露给用户。
    作为 Docker 的一个组件,Docker Swarm 最大的优势是其 API集成到了标准的 Docker API,这使得 Docker 应用开发者可以很容易与 Docker Swarm 进行集成。目前,包括 Rackspace 等平台都采用了 Docker Swarm,用 户也很容易在 AWS等公有云平台使用 Docker Swarm。
    Docker Swarm 由若干管理节点 Manager 和工作节点 Worker 组成,架构如图所示。Manager 节点负责接 收来自用户的请求,并将任务分配至 Worker 节点,Manager 节点同时也可以执行 Worker 节点的工作职责。 Worker 节点接收来自于 Manager 节点调度的任务并运行。

所有的节点都具有基本的 Docker 运行组件:Docker Daemon、负载均衡,为容器的运行提供了环境。以下 介绍几个重要组件 :

  • Master 节点:主要由 Manager CLI(Swarm 命令行工具)、Scheduler(调度器)、Discovery Service(服 务发现)组件构成;
  • Slave 节点:主要组件为 Swarm Agent;
  • 服务发现组件:集群中的物理和通讯环境复杂,服务中断无法准确预测,服务发现组件为集群提供了服 务保障。当某个 Slave 节点宕机之后,服务发现组件会快速发现,通过调度器快速在另一个节点恢复已 经失效的服务。
    Docker Swarm 工作流程为:
    (1)集群操作
    用户使用 Master 节点的 Manage CLI 对应用部署进行规划。
    (2)应用分发
    用户使用 Manage CLI 对应用部署规划之后,由调度器对应用进行集群分发,Swarm Agent 负责节点间通讯 的传输。
    (3)服务高可用
    Docker Swarm 使用其服务发现组件维护 Slave 节点中运行的应用信息,保持集群中稳定运行应用的数量, 以达到集群应用高可用的目的。
  1. Docker Compose
    Docker Compose[26] 是 Docker 推出的另一个编排工具,用于对用户需要的应用服务进行描述和部署。需要 说明的是,Docker Compose 只能在单节点上进行应用的部署,如果编排场景是设定在集群中,那么还需要依赖 Docker Swarm 来进行应用的集群化部署。
  2. 工具对比
    本节对 Github 上 Kubernetes、Apache Mesos、Docker Swarm、Docker Compose 项目的活跃程度进行了 对比分析,分析结果从一定程度体现了开源社区对这四款编排工具的关注和支持程度。
    从 Pull Requests、Issues、Commits、Branches、Releases、Contributors、Watch、Star、Fork 等指标可以看出, 开发者们对 Kubernetes 的关注度最高,其后依次是 Apache Mesos、Docker Swarm 与 Docker Compose。
    对比 Releases 可以发现,Kubernetes 与 Apache Mesos 的迭代总量较大,其次是 Docker Compose 与 Docker Swarm。那么将项目关注度和项目迭代总量结合起来看,不难发现 Kubernetes 与 Docker Mesos 目前处 于编排工具的第一梯队,Docker Swarm、Docker Compose 热度则较为缓和,处于第二梯队。

除了上述工具外,Rancher[27]、Docker Machine[28]等也是常见的容器集群管理工具,不同工具的侧重点和功 能点不尽相同。正是这些集群管理工具的快速发展,使得容器技术在生产、落地的时候更容易被用户所接受和使用。

参考资料

绿盟 容器安全技术报告

友情链接

CSA 云原生安全技术规范(征求意见表)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_589206.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TOREX | 如何延长设备的电池寿命?——充电IC

适用于支持无线电力传输的锂离子电池 XC6810系列是用于锂离子电池的超小型充电IC,适用于小型的可穿戴设备、可听设备和物联网设备。具有充放电控制、无线供电支持等多种功能。 充电电流为1mA~25mA,适用于小型锂离子电池,可提供3.8V~4.4V的大范…

网课查题公众号题库接口系统-在线直接查题功能

网课查题公众号题库接口系统-在线直接查题功能 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 题库:题库后台&#x…

《设计模式》原型模式

《设计模式》原型模式《设计模式》设计模式的基本原则 《设计模式》单例模式 《设计模式》工厂模式 《设计模式》原型模式 定义: 原型模式就是指用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象。它是一种创建型设计模式&a…

SpringBoot+Vue+ElementUI实现头像上传

SpringBootVueElementUI实现头像上传1.基础知识(补充)2.后端依赖导入Maven3.后端Controller代码(核心)4.配置代码(核心)5.前端代码6.总结1.基础知识(补充) File协议: FI…

【Transform3D】转换详解(看完就会)

文章内包含个人理解,如有错误请指出。 往期文章 【css动画】移动的小车 【CSS3】 float浮动与position定位常见问题(个人笔记) 如何完成响应式布局,有几种方法?看这个就够了 详解 CSS3中最好用的布局方式——flex…

【python】准点跑路人必备小程序~ 不信你用不到

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 有时候下班~忙着跑路,忘记关电脑,逮到了会被老板扣工资!!怎么办? python带你制做一个小程序,到点自动关机~ 再也不怕忘关电…

APS计划排产软件在食品饮料行业的应用

近年来,我国饮料行业飞速发展,已经成长为一个庞大、成熟的市场,形成了原料供应—制造—流通完整的产业链条和工业体系。 据报道,2022年上半年,国内饮料行业销量同比下滑6.8%,销售额同比下滑5.5%。消费行业整…

CUDA程序调试的一些经验

目录 1. 存储分配检查 2. 变量名检查 3. 核函数输出检查 4. 核函数局部存储空间回收 最近在做一个点云配准的项目,重新把之前就开始玩的CUDA重新拾起来。本来想着稍微改改代码就能够愉快的跑起来,结果改Bug改的我相当上头。结合我之前的帖子和我最近的一…

使用油猴下载文库

简介 工作中经常需要下载资料,大多数情况下,我们搜索到的资料会在某度文库中,激动的准备存在本地方便以后观摩,又因为页面下方的VIP下载,露出尴尬的笑容。这里介绍两种方式,一种省钱省事,一种免…

matlab之Signal Labeled APP

APP工作流程 (1)导入数据进信号标注器 (2)创建或导入信号标注定义 (3)交互式或自动标记信号 (4)自定义标注视图 (5)仪表板 (6)导出标记…

“箭”指智能家居,卫浴龙头企业箭牌家居即将登陆A股

智哪儿获悉,2022年10月13日,国内卫浴龙头企业箭牌家居集团股份有限公司(以下简称箭牌家居,001322.SZ)刊登首次公开发行股份发行公告,计划近期在深市主板上市。据披露,箭牌家居本次共计发行新股9…

【Google三驾马车系列】GFS原理总结

这里写自定义目录标题GFS基本框架容错机制Master 的容错机制 :操作日志 Checkpoint ShadowMasterChunkServer的容错机制:复制多个副本 checksum一致性问题元数据的一致性Chunk的强一致性其它重要的技术点总结如何避免单一master的性能瓶颈垃圾延迟删除…

Keithley吉时利2182A/Keysight是德34420A纳伏表测量软件-纳伏表软件

1、软件概述 纳伏表程控软件用于需要更高精度的电压测量和温度测量的应用,操作简便、绘制测量波形图直观。 2、软件功能 ◆纳伏表程控软件可以满足GPIB、RS-232两种连接方式。 ◆纳伏表程控软件可以满足CH1、CH2两通道选择。 ◆纳伏表程控软件可以满足多量程及分辨率…

(附源码)计算机毕业设计ssm河南美丽乡村旅游信息网

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

支付模块-微信支付

目录 接口实现 第一步:当点击立即购买生成订单 第二步:根据订单id查询订单信息 第三步:生成微信支付的二维码 第四步:查询订单支付状态 前端实现 ​编辑 1.点击支付 2.订单详情页 接口实现 像这种微服务B2C模式的&#…

【牛客刷题】每日一练——最小K个数

✨hello,进来的小伙伴们,你们好耶!✨ 🍅🍅系列专栏:【牛客刷题】 ✈️✈️本篇内容: 最小K个数! ⛵⛵作者简介:一名双非本科大三在读的科班Java编程小白,道阻且长,你我同…

《漂浮城堡历险记》的云端之旅

《漂浮城堡历险记》是 The Sandbox 游戏制作基金支持的项目之一。让我们告诉你更多关于这个 The Sandbox 元宇宙独有的、令人上瘾的奇幻游戏的信息吧。它已在 The Sandbox Alpha 第 3 季中上线了! 关于体验 在《漂浮城堡历险记》这个冒险战斗游戏中,玩家…

基于深度学习的机载激光扫描森林单株茎的检测、分割与模型拟合

Abstract 精确测量树木的结构特征,如高度、直径、宽度和锥度,是森林资源调查的重要组成部分。目前,地面和空中激光雷达都被用来产生点云数据,通过这些数据可以确定清单指标。陆地/地面扫描通常提供每平方米数千个点的点云分辨率&…

(附源码)计算机毕业设计ssm核酸结果查询系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【 java 多线程】同步锁 (Lock) 解决线程的安全问题

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…