本文目录导航:
docker和k8s的相关
概念: 官网定义1: Docker是一个开源的运行容器引擎,开发者可以打包他们的运行及依赖到一个可移植的容器中,颁布到盛行的Linux机器上,也可成功虚构化。
官网定义2: k8s是一个开源的容器集群治理系统,可以成功容器集群的智能化部署、智能扩缩容、保养等配置。
docker普通是和传统的虚构技术对比 传统的虚构技术:将物理配件虚构成多套配件后,须要在每套配件上都部署一个操作系统,接着在这些操作系统上运转相应的运行程序,十分重。
docker:Docker容器内的运行程序进程间接运转在宿服务器(实在物理机)的内核上,Docker引擎将一些各自独立的运行程序和它们各自的依赖打包,相互独立间接运转于未经虚构化的宿服务器配件上,同时各个容器也没有自己的内核,显然比传统虚构机更轻巧。
K8s:每个集群有多个节点,每个节点可创立多个容器,kuberbete就是治理这些运行程序所在的小运转环境(container)而生。
在普通的认知中,Kubernetes 和 Docker 是互补相关:
Docker 源于 Linux Container,可以将一台机器的资源分红 N 份容器,做到资源的隔离,并将可运转的程序定义为规范的 docker image;Kubernetes 则可以把不同机器的每份容器启动编排、调度,组成散布式系统。
近几年,Kubernetes 曾经成为自无机房、云上宽泛经常使用的容器编排计划,最宽泛的经常使用模式是 Kubernetes+Docker。
从 DevOps 人员的角度,一面用 kubectl 命令、k8s API 来操作集群,一面在单机用 docker 命令来治理镜像、运转镜像。
独自用 docker 的状况,在一些公司的场景外面也是有的。
一种场景是“只分不合”,把一台机器用 docker 做资源隔离,然而不须要将多容器“编排”。
[1][2][3][4]
既然有了 Docker,为什么还要 Kubernetes?
“一千个读者眼里有一千个哈姆雷特”。
雷同的话也实用于 Kubernetes,雷同的系统在不同的开发人员眼中也是不同的,甚至在不同阶段关于它的了解也一模一样。
在尚未开局经常使用Kubernetes之前,我以为它是一套十分复杂的系统,各种形象概念以及复杂的装置环节。
差点由于装置不顺,计划就此丢弃。
理由很便捷: 既然有了 Docker,为什么还要 Kubernetes ?
之所以觉得Kubernetes系统复杂、难,关键是不知道它究竟是干啥的?再加上老版本繁琐的装置环节,情愿啃它是须要一点毅力的。如今,就经过一张便捷的对比图通知你,它究竟干了啥!
单看图示上局部,出现的变动仅仅是HOST换成了POD,底层网络由实在网络换成了笼罩网络,即虚构网络。
关于APP运行开发者而言, 即使你齐全疑问容器技术也没相关.这是Kubernetes的凶猛之处,它提供的形象层关于APP运行开发者而言是齐全透明的。
运行在POD中和在HOST服务器上并没有实质区别。
还是老疑问: 既然有了 Docker,为什么还要 Kubernetes ?
回答这个疑问,得从为什么须要引入Docker这个疑问先开局。
你会说,由于须要 容器化部署 。
那为什么须要 容器化部署 呢?就这个疑问还可以走得更远一点。
这里我就偷懒了,先打住。
看看 容器化部署 后出现的新疑问,即容器实例越来越多。
由于容器实例越来越多,就像鸡蛋太多须要一个篮子来装一样,Kubernetes就是那个篮子。
当然这不是一个便捷的篮子,此处也不裁减了。
规范答案就是: 由于有了 Docker,所以才要Kubernetes 。
是不是觉得进入一个loop,我也这觉得。
从图中也可以看出,Docker容器技术是Kubernetes平台的基础。
容器技术关键作用是 隔离 ,经过对系统的关键资源的隔离,成功了 服务器形象 。
Kubernetes平台则是在 形象服务器 的基础上,成功了 集群形象 。
用一句话做个总结,就是:
一篇短文,宿愿可以帮到还徘徊在Kubernetes大门之外的初学者。
当然,新版本Kubernetes曾经十分容易装置了。
k8s和docker区别
K8s与Docker的区别
一、概念及配置定位
Docker是一种容器化技术,用于将运行程序及其依赖项打包到可移植的容器中,从而在不同的计算环境中成功无缝运转。
而Kubernetes是一个开源的容器编排平台,用于智能化部署、裁减和治理容器化运行程序。
便捷地说,Docker关注单个容器的生命周期治理,而K8s则关注多个容器间集群的治理和调度。
二、配置特点
Docker提供了容器运转时环境,成功了运行的极速部署和轻量级运转。
它并重于单个或多个容器在繁多宿服务器上的治理。
而K8s则是一个弱小的集群治理系统,可以在大规模集群上运转不可胜数的容器,并提供了诸多配置如智能扩缩容、负载平衡、缺点转移等初级服务。
相较于Docker而言,K8s更实用于复杂多变的企业级运行环境。
三、运行场景及经常使用范畴
在日常开发、测试环境中,Docker因其轻量性和极速部署的特点,常被用于极速构建和部署运行镜像。
而在消费环境或许须要大规模部署的场景下,K8s则能更好地施展其集群治理和编排的长处。
K8s能智能化治理和调度跨多个宿服务器和容器的复杂运行架构,确保运行的高可用性、可裁减性和容错性。
四、外围差异点
Docker和K8s在容器治理和运行部署方面都有其共同长处。
Docker更器重容器的生命周期治理,提供了容器镜像的构建和运转环境;而K8s则更并重于集群治理和编排,提供了一套完整的处置计划来智能化部署和治理大规模的容器化运行。
两者可以相互单干,共同构建一个高效稳固的容器化运行环境。
总的来说,它们在不同层面和运行场景中各自施展着关键作用。