Docker和k8s知识概括

Docker和k8s知识概括

  • Docker简介
  • K8S简介

Docker简介

Docker简介:

  • 2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司。这家公司主要提供基于PaaS的云计算技术服务。具体来说,是和LXC有关的容器技术。
  • LXC,就是Linux容器虚拟技术(Linux container),后来dotCloud公司将自己的容器技术进行了简化和标准化,并命名为——Docker。
  • Docker技术诞生之后,并没有引起行业的关注。而dotCloud公司,作为一家小型创业企业,在激烈的竞争之下,也步履维艰。正当他们快要坚持不下去的时候,脑子里蹦出了“开源”的想法。
  • Docker和容器技术为什么会这么火爆?说白了,就是因为它“轻”。在容器技术之前,业界的网红是虚拟机。虚拟机技术的代表,是VMWare和OpenStack。

虚拟化技术简介:

  • 虚拟机属于虚拟化技术。而Docker这样的容器技术,也是虚拟化技术,属于轻量级的虚拟化。虚拟机虽然可以隔离出很多“子电脑”,但占用空间更大,启动更慢,虚拟机软件可能还要花钱(例如VMWare)。而容器技术恰好没有这些缺点。它不需要虚拟出整个操作系统,只需要虚拟一个小规模的环境(类似“沙箱”)。
  • Sandboxie(又叫沙箱、沙盘)即是一个虚拟系统程序,允许你在沙盘环境中运行浏览器或其他程序,因此运行所产生的变化可以随后删除。它创造了一个类似沙盒的独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响。 在网络安全中,沙箱指在隔离环境中,用以测试不受信任的文件或应用程序等行为的工具。
  • 沙箱它启动时间很快,几秒钟就能完成。而且,它对资源的利用率很高(一台主机可以同时运行几千个Docker容器)。此外,它占的空间很小,虚拟机一般要几GB到几十GB的空间,而容器只需要MB级甚至KB级。Docker和k8s知识概括_第1张图片

Docker详解:

  • 大家需要注意,Docker本身并不是容器,它是创建容器的工具,是应用容器引擎。
  • 想要搞懂Docker,其实看它的两句口号就行。
    ①第一句,是“Build, Ship and Run”。也就是,“搭建、发送、运行”,三板斧。
    ②Docker的第二句口号就是:“Build once,Run anywhere(搭建一次,到处能用)”。
  • Docker技术的三大核心概念,分别是:
    ①镜像(Image)
    ②容器(Container)
    ③仓库(Repository)
  • 负责对Docker镜像进行管理的,是Docker Registry服务(类似仓库管理员)。最常使用的Registry公开服务,是官方的Docker Hub,这也是默认的Registry,并拥有大量的高质量的官方镜像。

K8S简介

K8S简介:

  • 就在Docker容器技术被炒得热火朝天之时,大家发现,如果想要将Docker应用于具体的业务实现,是存在困难的——编排、管理和调度等各个方面,都不容易。于是,人们迫切需要一套管理系统,对Docker及容器进行更高级更灵活的管理。就在这个时候,K8S出现了。
  • K8S,就是基于容器的集群管理平台,它的全称,是kubernetes。
  • 一个K8S系统,通常称为一个K8S集群(Cluster)。
  • 这个集群主要包括两个部分:
    ①一个Master节点(主节点):负责管理和控制
    ②一群Node节点(计算节点):工作负载节点
    Docker和k8s知识概括_第2张图片

K8S详解:

  • Master节点:
    ①Master节点包括API Server、Scheduler、Controller manager、etcd。
    ②API Server是整个系统的对外接口,供客户端和其它组件调用,相当于“营业厅”。
    ③Scheduler负责对集群内部的资源进行调度,相当于“调度室”。
    ④Controller manager负责管理控制器,相当于“大总管”。
    Docker和k8s知识概括_第3张图片
  • 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知识概括_第4张图片

写给核心网工程师甚至所有通信工程师看的:

  • 从几十年前的1G,到现在的4G,再到将来的5G,移动通信发生了翻天覆地的变化,核心网亦是如此。
  • 但是,如果你仔细洞察这些变化,会发现,所谓的核心网,其实本质上并没有发生改变,无非就是很多的服务器而已。不同的核心网网元,就是不同的服务器,不同的计算节点。
  • 变化的,是这些“服务器”的形态和接口:形态,从机柜单板,变成机柜刀片,从机柜刀片,变成X86通用刀片服务器;接口,从中继线缆,变成网线,从网线,变成光纤。
  • 就算变来变去,还是服务器,是计算节点,是CPU。
  • 既然是服务器,那么就势必会和IT云计算一样,走上虚拟化的道路。毕竟,虚拟化有太多的优势,例如前文所说的低成本、高利用率、充分灵活、动态调度,等等。
  • 前几年,大家以为虚拟机是核心网的终极形态。目前看来,更有可能是容器化。这几年经常说的NFV(网元功能虚拟化),也有可能改口为NFC(网元功能容器化)。
  • 以VoLTE为例,如果按以前2G/3G的方式,那需要大量的专用设备,分别充当EPC和IMS的不同网元。
    Docker和k8s知识概括_第5张图片
  • 而采用容器之后,很可能只需要一台服务器,创建十几个容器,用不同的容器,来分别运行不同网元的服务程序。
    ①这些容器,随时可以创建,也可以随时销毁。还能够在不停机的情况下,随意变大,随意变小,随意变强,随意变弱,在性能和功耗之间动态平衡。
    ②5G时代,核心网采用微服务架构,也是和容器完美搭配——单体式架构(Monolithic)变成微服务架构(Microservices),相当于一个全能型变成N个专能型。每个专能型,分配给一个隔离的容器,赋予了最大程度的灵活。
    Docker和k8s知识概括_第6张图片

你可能感兴趣的:(微服务,docker)