kubernetes学习记录(1)——kubernetes初理解

入门时,学习阅读的为《你闺女也能看懂的插画版Kubernetes指南》。由Deis的平台架构师Matt Butcher向他女儿介绍什么是Kubernetes,内容短小精悍、浅显易懂。

Kubernetes是一个开源的Docker容器编排系统,它可以调度计算集群的节点,动态管理上面的作业,保证它们按用户期望的状态运行。通过使用「labels」和「pods」的概念,Kubernetes将应用按逻辑单元进行分组,方便管理和服务发现。

以只有一个界面的简单PHP应用为例。
PHP应用运行在一个托管服务里,与其他的应用共享环境。
如果想与其他应用分离,则可以通过一个web server提供给该PHP应用一个专属的环境。

kubernetes学习记录(1)——kubernetes初理解_第1张图片

每个应用的运行都要依赖一个环境,对于一个PHP应用来说,这个环境包括了一个webserver,一个可读的文件系统和PHP的engine。

这个环境也可以封装进一个容器里。容器可以为应用提供隔离的环境,在这个环境里应用就能运行起来。但是这些相互隔离的容器需要管理,也需要跟外面的世界沟通。共享的文件系统、网络、调度、负载均衡和资源分配等都是挑战。

Kubernetes就可以管理这些容器。Kubernetes项目由Google发起,旨在为生产环境中成千上万的容器构建一个健壮的平台。

Kubernetes使用label作为nametag来区分事物,也可以根据label来查询。label是开发式的,可以根据角色、稳定性或其它重要的特性来指定。

kubernetes学习记录(1)——kubernetes初理解_第2张图片

Label是用于区分Pod、Service、RC的Key/Value对。每个对象可以有多个Label,但每个Label的Key只能对应一个Value。

Kubernetes在容器上又做了一层封装,将容器封装到pod里。在Kubernetes中,创建、调度和管理的最小单位是pod而不是容器。

kubernetes学习记录(1)——kubernetes初理解_第3张图片

在Kubernetes中,pod代表着一个运行着的工作单元。一般情况下,每个pod中只有一个容器(原因是为了避免容器之间发生端口冲突)。如果几个容器是紧耦合的,也可以放在同一个pod中,但一定要避免同一个pod下容器之间发生端口冲突。Kubernetes承担了pod与外界环境的通信工作。

Kubernetes是使用Replication controller,可以管理任意数量的pod。一个replication controller包含了一个pod模板,这个模板可以被不限次数地复制。通过replication controller,Kubernetes可以管理pod的生命周期,包括扩/缩容,滚动部署和监控等功能。

kubernetes学习记录(1)——kubernetes初理解_第4张图片

RC可以确保在任何时候Kubernetes集群中有指定数量的Pod副本在运行。如果少于指定数量,RC会自动创建新的Pod副本,反之会杀死多余的副本以保证数量不变。RC是实现弹性伸缩、滚动升级的核心。

Kubernetes通过Service能够提供pod间的相互通信。service可以和Kubernetes环境中其它部分(包括其它pod和replication controller)进行通信,告诉它们你的应用提供什么服务。Pod可以四处移动(会改变IP地址),但是service的IP地址和端口号是不变的。而且其它应用可以通过Kubernetes的服务发现找到对应的service。

kubernetes学习记录(1)——kubernetes初理解_第5张图片

Service是真实应用服务的抽象。将代理的Pod对外表现为一个单一的访问接口,外部不需要了解后端Pod如何运行,提供了一套简化的服务代理和发现机制。

Volume代表一块容器可以访问和存储信息的空间,对于应用来说,volume是一个本地的文件系统。实际上,除了本地存储,Ceph、Gluster、Elastic Block Storage和很多其它后端存储都可以作为volume。

kubernetes学习记录(1)——kubernetes初理解_第6张图片

Namespace是Kubernetes内的分组机制。Service,pod,replication controller和volume可以很容易地和namespace配合工作。namespace为集群中的组件间提供了一定程度的隔离。

kubernetes学习记录(1)——kubernetes初理解_第7张图片

最后放一张Kubernetes的架构图。摘自《云计算架构技术与实践第2版》第五章。

kubernetes学习记录(1)——kubernetes初理解_第8张图片

目前打算看的书有两本,一本为《Kubernetes实战》,一本为《Kubernetes权威指南-从Docker到Kubernetes实践全接触》

你可能感兴趣的:(Kubernetes,从零学习云计算)