Docker 三剑客 到 k8s 介绍

一、Docker 三剑客

Docker-Compose

Docker-Compose 是用来管理你的容器的,有点像一个容器的管家,想象一下当你的Docker中有成百上千的容器需要启动,如果一个一个的启动那得多费时间。有了Docker-Compose你只需要编写一个文件,在这个文件里面声明好要启动的容器,配置一些参数,执行一下这个文件,Docker就会按照你声明的配置去把所有的容器启动起来,但是Docker-Compose只能管理当前主机上的Docker,也就是说不能去启动其他主机上的Docker容器

单机上的容器编排

Docker Swarm

Docker Swarm 是一款用来管理多主机上的Docker容器的工具,可以负责帮你启动容器,监控容器状态,如果容器的状态不正常它会帮你重新帮你启动一个新的容器,来提供服务,同时也提供服务之间的负载均衡,而这些东西Docker-Compose 是做不到的

分布式多主机容器编排 监控

Docker Machine

docker技术是基于Linux内核的cgroup技术实现的,那么问题来了,如果在非Linux平台上使用docker技术需要依赖安装Linux系统的虚拟机。docker-machine就是docker公司官方提出的,用于在各种平台上快速创建具有docker服务的虚拟机的技术。你可以把它理解为virtualbox或者vmware,最开始在win7上用得比较多,但是win10开始自带了hyper-v虚拟机,已经不再需要docker-machine了,docker可以直接运行在安装了Linux系统得hyper-v上。

docker-machine是解决docker运行环境问题。负责在多种平台上快速安装 Docker 环境

二、k8s

Kubernetes它本身的角色定位是和Docker Swarm 是一样的,也就是说他们负责的工作在容器领域来说是相同的部分,当然也有自己一些不一样的特点。这个就像是Eclipse和IDEA一样,也是一个跨主机的容器管理平台。它是谷歌公司根据自身的多年的运维经验研发的一款容器管理平台。而Docker Swarm则是由Docker 公司研发的。

既然这两个东西是一样的,那就面临选择的问题,应该学习哪一个技术呢?实际上这两年Kubernetes已经成为了很多大公司的默认使用的容器管理技术,而Docker Swarm已经在这场与Kubernetes竞争中已经逐渐失势,如今容器管理领域已经开始已经逐渐被Kubernetes一统天下了。

关于k8s去除Docker

未来kubernetes实际要去除的是对现有Docker运行时(Docker Daemon)的支持,通过去除了kubelet中Docker Shim来实现。这是kubernetes的一种标准化和简化,同时,应该注意到Docker实际在这些相关标准的制定中一直以来起着非常重要的作用。并且Docker给出的相关参考实现,如containerd,runC将继续被使用。

  1. Docker运行时1.20中只是deprecated而不是removed,即Docker运行时可以正常使用。
  2. 即使在1.22版本kubelet移除docker shim后,docker 镜像还是可以使用的(docker镜像是符合OCI的)
  3. 这个影响主要是运维和管理,对于开发的影响极小。即使要替换为podman,podman也是docker cli兼容的。

Reference

原文地址:https://www.cnblogs.com/wei57960/p/14210200.html