前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >kubernetes学习记录(1)——kubernetes初理解

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

作者头像
胡了了
发布2017-12-28 17:16:18
1.2K0
发布2017-12-28 17:16:18
举报

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

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

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

这里写图片描述
这里写图片描述

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

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

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

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

这里写图片描述
这里写图片描述

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

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

这里写图片描述
这里写图片描述

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

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

这里写图片描述
这里写图片描述

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

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

这里写图片描述
这里写图片描述

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

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

这里写图片描述
这里写图片描述

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

这里写图片描述
这里写图片描述

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

这里写图片描述
这里写图片描述

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-08-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档