这篇文章次要介绍了k8s和Docker关系简略阐明,本文利用图文解说的很透彻,有须要的同学能够钻研下
最近我的项目用到kubernetes(以下简称k8s,k和s之间有8个字母)。
尽管之前也有简略应用过,但最近发现k8s概念较多,命令也有些不够用了,故想借此机会写点货色,更全面意识并应用k8s。
本篇文章目标: 让你更全面理解k8s概念,以及学到在工作中罕用的操作。整体更偏差于原理和利用。在正式开始k8s之前,咱们先看看k8s和Docker的关系,别离从虚拟化角度、部署形式角度叙述why use容器,话不多说,开干。
目前发现并没有将kubernetes和Docker技术产生背景和需要进行比拟的文章,本文从最纯正的官网定义角度登程并开展,论述二者产生背景及与传统技术比照。
简要介绍:
官网定义1
:Docker是一个开源的利用容器引擎,开发者能够打包他们的利用及依赖到一个可移植的容器中,公布到风行的Linux机器上,也可实现虚拟化。
官网定义2
:k8s是一个开源的容器集群管理系统,能够实现容器集群的自动化部署、主动扩缩容、保护等性能。
与传统技术比照:
接下来咱们看两张经典的图:
一、从虚拟化角度:
上图是Docker容器(可用k8s治理的玩意儿)与传统虚拟化形式的不同之处:传统的虚构技术在将物理硬件虚构成多套硬件后,须要在每套硬件上都部署一个操作系统,接着在这些操作系统上运行相应的应用程序。
而Docker容器内的应用程序过程间接运行在宿主机(实在物理机)的内核上,Docker引擎将一些各自独立的应用程序和它们各自的依赖打包,互相独立间接运行于未经虚拟化的宿主机硬件上,同时各个容器也没有本人的内核,显然比传统虚拟机更轻便。每个集群有多个节点,每个节点可运行多个容器,咱们的kuberbete就是治理这些应用程序所在的小运行环境(container)而生。
二、从部署角度
留神,大家别把这幅图与下面Docker的那张图混同了,图1是从虚拟化角度,阐明了为利用提供必要的运行环境所须要做的虚拟化操作(即:传统:虚构出的虚拟机装操作系统、Docker:容器引擎治理下的容器)。
而图2是在这些具体运行环境上进行实在利用部署时的状况,传统形式是将所有利用间接部署在同一个物理机器节点上,这样每个App的依赖都是完全相同的,无奈做到App之间隔离,当然,为了隔离,咱们也能够通过创立虚拟机的形式来将App部署到其中(就像图1上半局部那样),但这样太过沉重,故比虚拟机更轻便的Docker技术呈现,当初咱们通过部署Container容器的技术来部署利用,全副Container运行在容器引擎上即可。
既然厌弃虚拟机沉重,想用Docker,那好,你用吧,怎么用呢?手动一个一个创立?当然不,故kubernetes技术便呈现了,以kubernetes为代表的容器集群管理系统,这时候就该上场表演了。
说白了,咱们用kubernetes去治理Docker集群,即能够将Docker看成Kubernetes外部应用的低级别组件。另外,kubernetes不仅仅反对Docker,还反对Rocket,这是另一种容器技术。心愿我这篇文章中简略的形容能让你对两者有所了解和意识。
更多 Docker 系列教程请关注公众号浏览以前的文章。
原文链接:https://blog.csdn.net/yanghao...
版权申明:本文为CSDN博主「Harlan60」的原创文章,遵循CC 4.0 BY-SA版权协定,转载请附上原文出处链接及本申明。
近期热文举荐:
1.600+ 道 Java面试题及答案整顿(2021最新版)
2.终于靠开源我的项目弄到 IntelliJ IDEA 激活码了,真香!
3.阿里 Mock 工具正式开源,干掉市面上所有 Mock 工具!
4.Spring Cloud 2020.0.0 正式公布,全新颠覆性版本!
5.《Java开发手册(嵩山版)》最新公布,速速下载!
感觉不错,别忘了顺手点赞+转发哦!