Kubernetes

容器化应用程序

应用程序运行的时候总是有很多的依赖项(我们开发一个软件的时候总是需要先安装各种乱七八糟的东西,如果之前安装过什么还可能导致环境中出现各种问题),所以如果能够将项目和所有依赖项打包,一次启动,直接运行(docker会自动地搭建和配置开发环境),就能够给使用者和开发者带来很大的便利.这个包就是镜像.

一个镜像打包好后,直接运行在操作系统上(它包含了除内核外的完整运行时环境,同一镜像可以运行在同种操作系统(linux/mac/windows…)的任意机器上(现在有了LCOW可以同时运行Linux和Windows容器了

通常容器是基于Dockerfile脚本构建的,这个脚本你需要自己编写,固定所需的基础镜像(比如需要的java/nodejs环境等等)以及需要执行的操作,以及启动时的指令

容器则是通过镜像创建出来的,是这个程序的具体执行时的实体,本质上是一个进程

Kubernetes

大型的生产型应用会涉及到很多个容器,需要在多台服务器上部署.如果采用传统的方式,开发人员需要对这些服务器及其上的容器进行复杂的管理,而Kubernetes就是可以代替人来提供自动化的编排和管理

主机(Master):用于控制 Kubernetes 节点的计算机。所有任务分配都来自于此。

节点(Node):负责执行请求和所分配任务的计算机。由 Kubernetes 主机负责对节点进行控制。

容器集(Pod):部署在单个节点上的,且包含一个或多个容器的容器组。同一容器集中的所有容器共享同一个 IP 地址、IPC、主机名称及其它资源。容器集会将网络和存储从底层容器中抽象出来。这样,您就能更加轻松地在集群中移动容器。

复制控制器(Replication controller):用于控制容器集在集群上运行的实例数量。

服务(Service):将工作内容与容器集分离。Kubernetes 服务代理会自动将服务请求分发到正确的容器集——无论这个容器集会移到集群中的哪个位置,甚至可以被替换掉。

Kubelet:运行在节点上的服务,可读取容器清单(container manifest),确保指定的容器启动并运行。

kubectl: Kubernetes 的命令行配置工具。

0%