容器的架构组成(二)Docker + Kubernetes学习

容器的架构组成

  • 容器镜像:包含了阉割的操作系统以及所提供的应用程序的一个打包的文件
    • redis镜像
    • nginx镜像
    • httpd镜像
  • 镜像仓库:用于存储容器镜像,以便于镜像的分发
    • 公共镜像仓库
    • 私有镜像仓库
  • 容器:镜像运行起来就是容器,容器提供应用级别的服务


容器架构组件作用:

Docker:

docker-api:接收用户的请求;
runc:runc是一个工具,用来运行创建容器的,调用namespace和cgroup,在创建完后退出;
containerd(核心):标准的容器运行时,负责启动容器,计算资源的分配,隔离;本质上一个容器只包含计算部分,这部分被称为容器的“运行时
containerd-shim:在容器创建完成时,这个容器的父进程会被containerd接管,containerd为了避免docker挂掉造成容器退出所以containerd,将容器的父进程交给containerd-shim;

在这里插入图片描述

Kubernetes:容器编排(管理)系统

如有10台机器上有1000个容器,那么Kubernetes负责管理容器在众多节点上的调度
早期的Kubernetes将docker作为容器的运行时,对于网络和存储,Kubernetes是很开放的,允许接入第三方插件;
只需支持Kubernetes提供的cri(容器运行时接口)、cni(网络接口)、csi(存储接口)

如:opnestack除了支持KVM以外,同样也可以支持Xen,openstack本身不提供虚拟化功能;Kubernetes也是如此,他除了可以使用docker也可以使用其他的容器运行时,但必须支持cri

为什么Kubernetes要废除Docker了

虽然Kubernetes使用的是docker作为容器的运行时,但是docker本身是不支持Kubernetes支持的cri容器运行时接口的,当时的Kubernetes没有话语权,只好研发出了docker-shim,将cri的请求交给docker-shim翻译成docker-api能够识别的请求。
但docker败给Kubernetes后,dockcer将containerd单独剥离出来捐献给了云原生基金会(CNCF),社区基于containerd做了二次开发,支持了cri。
在1.22版本正式不支持docker(删除了docker-shim代码),Kubernetes使用的是containerd作为容器的运行时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nayuta_2000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值