• 【容器化】浅析容器化以及容器编排


    容器化概念

    容器化的本质是一个“视图隔离、资源受限”的进程运行环境,运行在该环境(容器内)的进程可以理解为是被操作系统附加了很多属性的进程,本质上还是操作系统的标准进程。

    视图隔离

    请添加图片描述

    资源隔离

    请添加图片描述

    Docker

    docker是一种Linux容器技术,容器由单个操作系统通过资源管理划分,把资源管理
    划分到相互隔离的组中,每个容器运行一个运行一个应用,不同的容器之间相互隔离,互不影响。
    请添加图片描述

    docker有如下3个基本概念,分别为

    1. 镜像
    2. 容器
    3. 镜像仓库

    请添加图片描述

    镜像(Image)

    操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。而Docker 镜像(Image),就相当于是一个 root 文件系统。

    Docker image是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。 镜像不包含任何动态数据,其内容在构建之后也不会被改变,因此镜像是一个静态的定义。

    容器(Container)

    容器可以简单理解为image的运行态,是一个动态的定义。可以类比操作系统的程序和进程,程序是静态的,运行起来就是进程,是动态的。容器本质上是操作系统中的标准进程,可以被创建,启动,停止,删除等。

    镜像仓库

    镜像仓库是用于集中统一存储镜像的地方,比如某个镜像要在多台CVM上运行,则这些CVM上的docker client会主动去镜像仓库,把对应的镜像拉取到本地进行运行。

    请添加图片描述

    容器编排

    docker主要解决的是保证开发生产环境强一致、资源隔离、在任何地方运行、轻量化的痛点。但是如下几个问题需要考虑:
    场景:给你1000台CVM

    1. 如果要同时在1000台上部署某个容器,该怎么处理?

    2. 如果只需要在500台CVM上运行某个容器,这500台CVM该如何选择?

    3. 如果一台机上运行了上百个容器,这些容器该如何运维以及管理?

    4. 如果CVM出现故障,大量容器需要迁移,该如何处理?

    为解决上述提到的种种问题,引申出一系列容器化的管理问题,即容器编排。

    容器编排

    容器编排是对容器的整个生命周期进行管理,包含容器管理、调度、集群定义和服务发现等,通过容器编排引擎、容器被组合成微服务应用,目前常见的容器编排技术有2种,一个是docker swarm,另外一个是K8S。

    TKE

    腾讯云容器服务(Tencent Kubernetes Engine,TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,解决用户开发、测试及运维过程的环境问题、帮助用户降低成本,提高效率。容器服务平台完全兼容原生 Kubernetes API, 并扩展了 CBS、CLB 等 Kubernetes 插件,实现了高可靠、高性能的网络方案。

    TKE集群与CVM的关系如下,下图是一个完整的TKE集群架构,由MASTER集群+NODE集群组成。

    节点(NODE):节点是组成容器集群的基本元素。节点取决于业务,可以为虚拟机或物理机。每个节点都包含运行 Pod 所需要的基本组件,包括 Kubelet、Kube-proxy 等。

    容器(Container):Docker 容器旨在让用户在相对独立的环境中运行独立的程序,一个节点可运行多个容器。

    镜像(IMAGE):Docker 镜像用于部署容器服务,每个镜像有特定的唯一标识(镜像的 Registry 地址+镜像名称+镜像 Tag)。

    实例(Pod):由相关的一个或多个容器构成一个实例,这些容器共享相同的存储和网络空间。
    镜像仓库:用于存放 Docker 镜像,Docker 镜像用于部署容器服务。

    集群:指容器运行所需云资源的集合,包含若干云服务器CVM、CLB等云资源集合。

    容器集群(Node集群):由若干NODE节点组成的集群。

    MASTER集群:管理整体TKE集群调度编排的集群。
    请添加图片描述

    TKE通过不同的控制器类型,如deployment、service等,可以实现对POD的编排调度,控制其副本数、对外服务、调度策略等。

  • 相关阅读:
    14:00面试,14:06就出来了,问的问题有点变态。。。
    Vue封装一个按钮组件(不使用框架)
    自定义容器控件之C#设计笔记(十五)
    当所有行业都在数字化转型时,企咨行业如何快速“破局”
    YoloV5-SPD+TensorRT:基于YoloV5-SPD的小目标检测算法训练
    铁蛋白颗粒Tf包载多肽/凝集素/细胞色素C/超氧化物歧化酶/多柔比星(定制服务)
    pytorch最后一步安装失败显示false怎么办?
    继电器模块讲解
    [PHP毕业设计源码]精品基于PHP实现的美食菜谱网站[包运行成功]
    Java版分布式微服务云开发架构 Spring Cloud+Spring Boot+Mybatis 电子招标采购系统功能清单
  • 原文地址:https://blog.csdn.net/x1032019725/article/details/125624676