美文网首页
2019-11-06(云原生第一课)

2019-11-06(云原生第一课)

作者: 特仑苏纯牛乳 | 来源:发表于2019-11-07 22:19 被阅读0次

    让应用更有弹性、容错性、观测性的基础技术,让应用更容易部署、管理的基础软件、让应用更容易编写、编排的运行框架等。
    云原生技术元年。
    kubernetes等云原生集成成为技术人员必修课。kubernetes与云原生架构。
    【容器作为集装箱,可以保证应用在不同的环境中快速迁移,提高迭代的效率。但是如果要形成容器集团军,还需要一个集团军作战的调度平台,这就是 Kubernetes。它可以灵活地将一个容器调度到任何一台机器上,并且当某个应用扛不住的时候,只要在 Kubernetes 上修改容器的副本数,一个应用马上就能变八个,而且都能提供服务。
    然而集团军作战有个重要的问题,就是通信。这里面包含两个问题,第一个是集团军的 A 部队如何实时地知道 B 部队的位置变化,第二个是两个部队之间如何相互通信。
    第一个问题位置变化,往往是通过一个称为注册中心的地方统一管理的,这个是应用自己做的。当一个应用启动的时候,将自己所在环境的 IP 地址和端口,注册到注册中心指挥部,这样其他的应用请求它的时候,到指挥部问一下它在哪里就好了。当某个应用发生了变化,例如一台机器挂了,容器要迁移到另一台机器,这个时候 IP 改变了,应用会重新注册,则其他的应用请求它的时候,还是能够从指挥部得到最新的位置。】


    image.png

    让application 生在云上,长在云上;最大化的利用“云”的能力;发挥“云”的价值的最佳路径。全新软件开发,发布,运维模式。


    image.png

    云原生的两个理论基础:
    1.不可变技术设施(当前通过容器镜像镜像:自包含、自描述、可漂移、水平拓展)
    2.云应用编排理论(容器设计模式:)

    容器与镜像:
    容器,如何为进程提供一个独立的运行环境呢?

    针对不同进程使用同一个文件系统所造成的问题而言,Linux 和 Unix 操作系统可以通过 chroot 系统调用将子目录变成根目录,达到视图级别的隔离;进程在 chroot 的帮助下可以具有独立的文件系统,对于这样的文件系统进行增删改查不会影响到其他进程;

    因为进程之间相互可见并且可以相互通信,使用 Namespace 技术来实现进程在资源的视图上进行隔离。在 chroot 和 Namespace 的帮助下,进程就能够运行在一个独立的环境下了;

    但在独立的环境下,进程所使用的还是同一个操作系统的资源,一些进程可能会侵蚀掉整个系统的资源。为了减少进程彼此之间的影响,可以通过 Cgroup 来限制其资源使用率,设置其能够使用的 CPU 以及内存量。

    那么,应该如何定义这样的进程集合呢?

    其实,容器就是一个视图隔离、资源可限制、独立文件系统的进程集合。
    什么是镜像?

    综上所述,我们将这些容器运行时所需要的所有的文件集合称之为容器镜像。

    那么,一般都是通过什么样的方式来构建镜像的呢?通常情况下,我们会采用 Dockerfile 来构建镜像,这是因为 Dockerfile 提供了非常便利的语法糖,能够帮助我们很好地描述构建的每个步骤。当然,每个构建步骤都会对已有的文件系统进行操作,这样就会带来文件系统内容的变化,我们将这些变化称之为 changeset。当我们把构建步骤所产生的变化依次作用到一个空文件夹上,就能够得到一个完整的镜像。

    changeset 的分层以及复用特点能够带来几点优势:

    第一,能够提高分发效率,简单试想一下,对于大的镜像而言,如果将其拆分成各个小块就能够提高镜像的分发效率,这是因为镜像拆分之后就可以并行下载这些数据;

    第二,因为这些数据是相互共享的,也就意味着当本地存储上包含了一些数据的时候,只需要下载本地没有的数据即可,举个简单的例子就是 golang 镜像是基于 alpine 镜像进行构建的,当本地已经具有了 alpine 镜像之后,在下载 golang 镜像的时候只需要下载本地 alpine 镜像中没有的部分即可;

    第三,因为镜像数据是共享的,因此可以节约大量的磁盘空间,简单设想一下,当本地存储具有了 alpine 镜像和 golang 镜像,在没有复用的能力之前,alpine 镜像具有 5M 大小,golang 镜像有 300M 大小,因此就会占用 305M 空间;而当具有了复用能力之后,只需要 300M 空间即可。

    image.png image.png

    相关文章

      网友评论

          本文标题:2019-11-06(云原生第一课)

          本文链接:https://www.haomeiwen.com/subject/mueubctx.html