容器 K8S Docker Kata 学习(一)

Kubemetes:

Kubemetes使用 Linux容器技术来提供应用的隔离,所以在钻研 Kubemetes之前, 需要通过熟悉容器的基本知识来更加深入地理解 **Kubemetes,**包括认识到存在的容 器技术分支, 诸如 Docker或者 rkt。

什么是容器:

用 Linux 容器技术隔离组件:

开发者不是使用虚拟机来隔离每个微服务环境 (或者通常说的软件进程), 而是正在转向 Linux容器技术。 容器允许你在同一台机器上运行多个服务, 不仅提不同的环境给每个服务, 而且将它们互相隔离。 容器类似虚拟机, 但开销小很多。
一个容器里运行的进程实际上运行在宿主机的操作系统 上, 就像所有其他进程一样(不像虚拟机, 进程是运行在不同的操作系统上的)。但在容器里的进程仍然是和其他进程隔离的。 对于容器内进程本身而言, 就好像是在机器和操作系统上运 行的唯一一个进程。

容器实现隔离机制:

用 Linux 命名空间隔离进程:
使每个进程只看到它自己的系统视图(文件、进程、网络接口、主机名等)
限制进程的可用资源:
Linux控制组 (cgroups), 限制了进程能使用的资源量 (CPU、 内存、 网络带宽等)

Docker:

Docker 是一个打包、分发和运行应用程序的平台。
正如我们所说,它允许将你的应用程序和应用程序所依赖的整个环境打包在一起 。这既可以是一些应用程序需要的库 ,也可以是一个被安装的操作系统所有可用的文件。 Docker 使得传输这个包到一个中央仓库成为可能,然后这个包就能被分发到任何运行 Docker 的机器上,在那儿被执行(大部分情况是这样的,但并不尽然)。

三个主要概念组成了这种情形:
镜像: Docker镜像里包含你打包的应用程序及其所依赖的环境。
镜像仓库: Docker镜像仓库用于存放Docker镜像,以及促进不同人和不同电脑之间共享这些镜像。
容器: Docker容器通常是一个Linux容器,它基于Docker镜像被创建。一个运行中的容器是一个运行在Docker主机上的进程,但它和主机,以及所有运行在主机上的其他进程都是隔离的。这个进程也是资源受限的,意味着它只能访问和使用分配给它的资源(CPU、内存等)

docker 与 虚拟机:

Kata Containers:

Kata源自希腊文Καταπστευμα(ka-ta-PI-stev-ma) ,原意是值得信任的人,kata container正是解容器安全的问题而诞生的。传统的容器是基于namespace和cgroup进行隔离 ,在带来轻量简洁的同时,也带来了安全的隐患。事实上容器虽然提供一个与系统中的其它进程资源相隔离的执行环境,但是与宿主机系统是共享内核的,一旦容器里的应用逃逸到内核,后果不堪设想,尤其是在多租户的场景下。

Kata就是在这样的背景下应运而生,kata很好的权衡了传统虚拟机的隔离性、安全性与容器的简洁、轻量 。这一点和firecracker很相似,都是轻量的虚拟机。但是他们的本质的区别在于:kata虽然是基于虚机,但是其表现的却跟容器是一样的,可以像使用容器一样使用kata;而firecracker虽然具备容器的轻量、极简性,但是其依然是虚机,一种比QEMU更轻量的VMM,暂时不能兼容容器生态。

Kata的基本原理是,为每一个容器单独开一个虚机(如果是k8s下作为runtime,则是一个pod对应一个虚机而不是容器),具有独立的内核,这样交付的容器就具备了虚机级别的隔离和安全性。

参考:《Kubernetes in Action》

相关推荐
小白的码BUG之路1 小时前
Docker -- No space left on device
运维·docker·容器
wzq11_6662 小时前
Kubernetes集群——Service篇(详细讲解!!!)
云原生·容器·kubernetes
程序员老陆2 小时前
Docker 命令全景指南:从镜像构建到生产运维
运维·docker·容器
灯澜忆梦13 小时前
【minio】#1 | 简介与安装
docker·对象存储·minio
江湖有缘1 天前
3款开源绘图工具整理合集,可Docker一键部署!
docker·容器·开源
TTATTC1 天前
告别协议选型内耗:深入拆解微服务“内部 gRPC + 边界 REST”混合通信架构与 Envoy 转码实战
docker·开源
小匠石钧知1 天前
06_在k8s集群中安装MetalLB实现LoadBalancer
云原生·容器·kubernetes·service·loadbalancer·metallb
troy1282 天前
阿里云 vs 谷歌云:Kubernetes 部署深度对比分析
阿里云·kubernetes·云计算
光依旧2 天前
PageIndex没翻车,翻车的是我的解析器
docker·langchain·大模型·向量数据库·pdf解析·rag·pageindex
谢亮_vipxieliang2 天前
容器排障实战手册:从日志到内核的分层排障
docker·云原生·容器·eureka