docker与k8s的关系



docker和k8s的关系:

原创内容来源连接:https://www.jianshu.com/p/f1f94c6968f5


`  VMware、Pivotal与Google Cloud合作推出的PKS,这个Cloud Foundry Container Runtime的全新商业支持版本致力于让虚拟化管理员轻松运行和运维Kubernetes,从而支持开发团队在vSphere或Google Cloud Platform上运行Kubernetes。这其中提到一个重要的名词——kubernetes(K8S)。

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200301010202649.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RnaGZ0dGd2,size_16,color_FFFFFF,t_70)
VMware、Pivotal与Google Cloud合作推出的PKS,这个Cloud Foundry Container Runtime的全新商业支持版本致力于让虚拟化管理员轻松运行和运维Kubernetes,从而支持开发团队在vSphere或Google Cloud Platform上运行Kubernetes。这其中提到一个重要的名词——kubernetes(K8S)。

那么K8S和我们熟知的Docker (开源的应用容器引擎)有怎么样的关系呢
先来回顾一下Docker 
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020030101053657.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RnaGZ0dGd2,size_16,color_FFFFFF,t_70)
我们具体来看看Docker。
大家需要注意,Docker本身并不是容器,它是创建容器的工具,是应用容器引擎。Docker有两句口号:第一句,是“Build, Ship and Run”。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200301010658790.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RnaGZ0dGd2,size_16,color_FFFFFF,t_70)
也就是,“搭建、发送、运行”
举个例子:   简单的说就好比建房子,我经过一系列的操作可以将房子建造起来然后在住了一段日子后,我发现另一个地段更好,然后我就可以将现在住的房子复制一份做成镜像,放在我的背包中等到了目的地我就可以用镜像,将一套房子复制出来Docker的第二句口号就是:“Build once,Run anywhere”。Docker技术的三大核心概念,分别是:镜像(Image)容器(Container)仓库(Repository)那个放在包里的“镜像”,就是Docker镜像。而我的背包,就是Docker仓库。我复制出来的房子,就是一个Docker容器。说白了,这个Docker镜像,是一个特殊的文件系统。它除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(例如环境变量)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。就好比,复制出来的房子(容器)是一样的,但是内在的内容是要靠使用者自己布置这样就产生了个设想,既然一个镜像只能复制一种房子,那我可以有不同的镜像,而且大家交换使用镜像不是更好吗于是乎,就变成了一个大的公共仓库。负责对Docker镜像进行管理的,是Docker Registry服务(类似仓库管理员)。不是任何人建的任何镜像都是合法的。万一有人盖了一个有问题的房子呢?所以,Docker Registry服务对镜像的管理是非常严格的。最常使用的Registry公开服务,是官方的Docker Hub,这也是默认的 Registry,并拥有大量的高质量的官方镜像。

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200301010805317.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RnaGZ0dGd2,size_16,color_FFFFFF,t_70)
说完了Docker,再把目光转向K8S
就在Docker容器技术被炒得热火朝天之时,大家发现,如果想要将Docker应用于具体的业务实现,是存在困难的——编排、管理和调度等各个方面,都不容易。于是,人们迫切需要一套管理系统,对Docker及容器进行更高级更灵活的管理。就在这个时候,K8S出现了K8S,就是基于容器的集群管理平台,它的全称,是kubernetes。Kubernetes 这个单词来自于希腊语,含义是舵手或领航员。K8S是它的缩写,用“8”字替代了“ubernete”这8个字符。和Docker不同,K8S的创造者,是众人皆知的行业巨头——Google。然而,K8S并不是一件全新的发明。它的前身,是Google自己捣鼓了十多年的Borg系统。一个K8S系统,通常称为一个K8S集群(Cluster)。这个集群主要包括两个部分:一个Master节点(主节点)一群Node节点(计算节点)Master节点主要还是负责管理和控制。Node节点是工作负载节点,里面是具体的容器

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200301010949826.jpg)
Master节点包括API Server、Scheduler、Controller manager、etcd。
API Server是整个系统的对外接口,供客户端和其它组件调用,相当于“营业厅”。Scheduler负责对集群内部的资源进行调度,相当于“调度室”。Controller manager负责管理控制器,相当于“大总管”。node节点Node节点包括Docker、kubelet、kube-proxy、Fluentd、kube-dns(可选),还有就是Pod。Pod是Kubernetes最基本的操作单元。一个Pod代表着集群中运行的一个进程,它内部封装了一个或多个紧密相关的容器。除了Pod之外,K8S还有一个Service的概念,一个Service可以看作一组提供相同服务的Pod的对外访问接口。这段不太好理解,跳过吧。Docker,不用说了,创建容器的。Kubelet,主要负责监视指派到它所在Node上的Pod,包括创建、修改、监控、删除等。Kube-proxy,主要负责为Pod对象提供代理。Fluentd,主要负责日志收集、存储与查询。

发布了93 篇原创文章 · 获赞 1 · 访问量 1926

猜你喜欢

转载自blog.csdn.net/dghfttgv/article/details/104585734