干货满满!10分钟看懂Docker和K8S

  • 时间:
  • 浏览:0

IT之家注:本文来源于微信公众号鲜枣课堂(ID:xzclasscom),作者: 小枣君,IT之家获授权转载。

前情阅读:《涨知识!云计算到底是为什在么在玩的》

2010年,几次搞IT的年轻人,在美国旧金山成立了一家全名是“dotCloud”的公司。

这家公司主要提供基于PaaS的云计算技术服务。具体来说,是和LXC有关的容器技术。

LXC,只要Linux容器虚拟技术(Linux container)

之后,dotCloud公司将当时人的容器技术进行了繁杂和标准化,并命名为——Docker。

Docker技术诞生另一另另一个多多多,并没法 引起行业的关注。而dotCloud公司,作为一家小型创业企业,在激烈的竞争之下,也步履维艰。

正当我们都都都 快要坚持不下去的另一另另一个多多多,脑子里蹦出了“开源”的想法。

哪几种是“开源”?开源,只要开放源代码。也只要将另一另另一个多多多组织组织结构保密的线程池池池源代码开放给各自 ,之后你里还还都可以 们 同去参与进来,贡献代码和意见。

Open Source,开源

有的软件是一另一另另一个多多多始于就开源的。有的是的软件,是混不下去,创造者又你还还都可以 放弃,却说我选用开源。当时人养不活,就吃“百家饭”嘛。

2013年3月,dotCloud公司的创始人之一,Docker之父,28岁的Solomon Hykes正式决定,将Docker项目开源。

Solomon Hykes(今年刚从Docker离职)

不开则已,一开惊人。

没法 来太大的IT工程师发现了Docker的优点,之后蜂拥而至,加入Docker开源社区。

Docker的人气迅速攀升,时延之快,令人瞠目结舌。

开源当月,Docker 0.1版本发布。此后的每一另另一个多多多月,Docker一定会发布一另另一个多多多版本。到2014年6月9日,Docker 1.0版本正式发布。

此时的Docker,可能性成为行业里人气最火爆的开源技术,没法 之一。甚至像Google、微软、Amazon、VMware另一另另一个多多多的巨头,都对它青睐有加,表示将全力支持。

Docker火了另一另另一个多多多,dotCloud公司干脆把公司名字也改成了Docker Inc.。

Docker和容器技术为哪几种会没法 火爆?说白了,只要可能性它“轻”。

在容器技术另一另另一个多多多,业界的颜值是虚拟机。虚拟机技术的代表,是VMWareOpenStack

相信却说我人都用过虚拟机。虚拟机,只要在你的操作系统底下,装一另另一个多多多软件,之后通过你你你这个 软件,再模拟一台甚至多台“子电脑”出来。

虚拟机,累似 于“子电脑”

在“子电脑”里,你里还还都可以 和正常电脑一样运行线程池池池,累似 开QQ。可能性你你还还都可以 ,你里还还都可以 变出好几次“子电脑”,底下都开上QQ。“子电脑”和“子电脑”之间,是相互隔离的,互不影响。

虚拟机属于虚拟化技术。而Docker另一另另一个多多多的容器技术,也是虚拟化技术,属于轻量级的虚拟化

虚拟机其实要能隔离出却说我“子电脑”,但占用空间更大,启动快一点 ,虚拟机软件可能性要能 花钱(累似 VMWare)。

而容器技术恰好没法 哪几种缺点。它不需要能 虚拟出整个操作系统,只要能 虚拟一另另一个多多多小规模的环境(累似 “沙箱”)。

沙箱

它启动时间快一点 ,几秒钟就能完成。之后,它对资源的利用率很高(一台主机要能同去运行几千个Docker容器)。此外,它占的空间很小,虚拟机一般要几GB到几十GB的空间,而容器只要能 MB级甚至KB级。

容器和虚拟机的对比

正可能性没法 ,容器技术受到了热烈的欢迎和追捧,发展迅速。

我们都都都 具体来看看Docker。

我们都都都 要能 注意,Docker两种并有的是容器,它是创建容器的工具,是应用容器引擎。

你还还都可以 学会英语Docker,其实看它的两句口号就行。

第一句,是“Build, Ship and Run”。

也只要,“搭建、发送、运行”,三板斧。

举个例子:

我来到一片空地,想建个房子,于是我搬石头、砍木头、画图纸,一顿操作,终于把你你你这个 房子盖好了。

结果,我住了一段时间,想搬到另一片空地去。这另一另另一个多多多,按以往的法律方法,我要能了再次搬石头、砍木头、画图纸、盖房子。

之后,跑来一另另一个多多多老巫婆,教会我两种魔法。

你你你这个 魔法,要能把我盖好的房子qq克隆好友 一份,做成“镜像”,放满我的背包里。

等我到了另一片空地,就用你你你这个 “镜像”,qq克隆好友 一套房子,摆在那边,拎包入住。

为什在么在样?是有的是很神奇?

却说我,Docker的第二句口号只要:“Build once,Run anywhere(搭建一次,到处能用)”。

Docker技术的三大核心概念,分别是:

  • 镜像(Image)

  • 容器(Container)

  • 仓库(Repository)

我刚才例子底下,那个放满包里的“镜像”,只要Docker镜像。而我的背包,只要Docker仓库。我在空地上,用魔法造好的房子,只要一另另一个多多多Docker容器

说白了,你你你这个 Docker镜像,是一另另一个多多多特殊的文件系统。它除了提供容器运行时所需的线程池池池、库、资源、配置等文件外,还所含了你你你这个为运行时准备的你你你这个配置参数(累似 环境变量)。镜像不所含任何动态数据,其内容在构建另一另另一个多多多只要会被改变。

也只要说,每次变出房子,房子是一样的,但生活用品累似 的,有的是不管的。谁住谁负责添置。

每一另另一个多多多镜像要能变出两种房子。没法 ,我要能 要有多个镜像呀!

也只要说,我盖了一另另一个多多多欧式豪华别墅,生成了镜像。另一另另一个多多多哥们可能性盖了一另另一个多多多中国四合院,也生成了镜像。还有哥们,盖了一另另一个多多多非洲茅草屋,也生成了镜像。。。

没法 一来,我们都都都 要能交换镜像,你用我的,我用你的,简直很爽?

于是乎,就变成了一另另一个多多多大的公共仓库。

负责对Docker镜像进行管理的,是Docker Registry服务(累似 仓库管理员)。

有的是任何人建的任何镜像有的是合法的。万一大家盖了一另另一个多多多有难题的房子呢?

却说我,Docker Registry服务对镜像的管理是非常严格的。

最常使用的Registry公开服务,是官方的Docker Hub,这也是默认的Registry,并拥有少量的高质量的官方镜像。

好了,说完了Docker,我们都都都 再把目光转向K8S。

就在Docker容器技术被炒得热火朝天之时,我们都都都 发现,可能性你还还都可以 将Docker应用于具体的业务实现,是占据 困难的——编排、管理和调度等各个方面,有的是容易。于是,我们都都都 迫切要能 一套管理系统,对Docker及容器进行更高级更灵活的管理。

就在你你你这个 另一另另一个多多多,K8S总出 了。

K8S,只要基于容器的集群管理平台,它的全称,是kubernetes。

Kubernetes你你你这个 单词来自于希腊语,含义是舵手或领航员。K8S是它的缩写,用“8”字替代了“ubernete”这8个字符。

和Docker不同,K8S的创造者,是众人皆知的行业巨头——Google

然而,K8S并有的是一件全新的发明家 家 。它的前身,是Google当时人捣鼓了十多年的Borg系统

K8S是2014年6月由Google公司正式公布出来并公布开源的。

同年7月,微软、Red Hat、IBM、Docker、CoreOS、Mesosphere和Saltstack等公司,相继加入K8S。

另一另另一个多多多的一年内,VMware、HP、Intel等公司,也陆续加入。

2015年7月,Google正式加入OpenStack基金会。与此同去,Kuberentes v1.0正式发布。

目前,kubernetes的版本可能性发展到V1.13。

K8S的架构,略微有你你你这个繁杂,我们都都都 简单来看一下。

一另另一个多多多K8S系统,通常称为一另另一个多多多K8S集群(Cluster)

你你你这个 集群主要包括另另一个多多多次要:

  • 一另另一个多多多Master节点(主节点)

  • 一群Node节点(计算节点)

一看就明白:Master节点主要还是负责管理和控制。Node节点是工作负载节点,底下是具体的容器。

深入来看这两种节点。

首先是Master节点。

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,主要负责日志分类分类整理、存储与查询。

是有的是有点硬懵?唉,三言两语真的没法 讲清楚,继续跳过吧。

Docker和K8S都介绍完了,然而文章并没法 另一另另一个多多多始于。

接下来的次要,是写给核心网工程师甚至所有通信工程师看的

从几十年前的1G,到现在的4G,再到将来的5G,移动通信占据 了翻天覆地的变化,核心网亦是没法 。

之后,可能性你仔细洞察哪几种变化,会发现,所谓的核心网,其实本质上并没法 占据 改变,无非只要却说我的服务器而已。不同的核心网网元,只要不同的服务器,不同的计算节点。

变化的,是哪几种“服务器”的形态学 和接口:形态学 ,从机柜单板,变成机柜刀片,从机柜刀片,变成X86通用刀片服务器;接口,从中继线缆,变成网线,从网线,变成光纤。

就算变来变去,还是服务器,是计算节点,是CPU。

既然是服务器,没法 就势必会和IT云计算一样,走上虚拟化的道路。毕竟,虚拟化有没法 来太大的优势,累似 前文所说的低成本、高利用率、充分灵活、动态调度,等等。

前几年,我们都都都 以为虚拟机是核心网的终极形态学 。目前看来,更有可能性是容器化。这几年突然说的NFV(网元功能虚拟化),有的是可能性改口为NFC(网元功能容器化)。

以VoLTE为例,可能性按另一另另一个多多多2G/3G的法律方法,那要能 少量的专用设备,分别充当EPC和IMS的不同网元。

VoLTE相关的网元

而采用容器另一另另一个多多多,很可能性只要能 一台服务器,创建十几次容器,用不同的容器,来分别运行不同网元的服务线程池池池。

哪几种容器,随时要能创建,要要能随时销毁。还要能在不停机的请况下,随意变大,随意变小,随意变强,随意变弱,在性能和功耗之间动态平衡。

简直完美!

5G时代,核心网采用微服务架构,也是和容器完美搭配——单体式架构(Monolithic)变成微服务架构(Microservices),大约一另另一个多多多全能型变成N个专能型。每个专能型,分配给一另另一个多多多隔离的容器,赋予了最大程度的灵活。

精细化分工

按照另一另另一个多多多的发展趋势,在移动通信系统中,除了天线,剩下的次要有的是可能性虚拟化。核心网是第一另另一个多多多,但有的是最后一另另一个多多多。虚拟化另一另另一个多多多的核心网,与其说属于通信,实际上更应该归为IT。核心网的功能,只要容器中普通一另另一个多多多软件功能而已。

至于说在座的各位核心网工程师,恭喜我们都都都 ,马上就要成功转型啦!