一文搞懂K8S的基础概念_第1页
一文搞懂K8S的基础概念_第2页
一文搞懂K8S的基础概念_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一文搞懂K8S的基础概念Kubernetes是Google团队发起的开源项目,它的目标是管理跨多个主机的容器,提供基本的部署,维护以及运用伸缩,主要实现语言为Go语言。Kubernetes构建于Google数十年经验,一大半来源于Google生产环境规模的经验。结合了社区最佳的想法和实践。在分布式系统中,部署,调度,伸缩一直是最为重要的也最为基础的功能。Kubernetes就是希望解决这一序列问题的。一、 什么是KubernetesKubernetes,从官方网站上可以看到,它是一个工业级的容器编排平台oKubernetes这个单词是希腊语,它的中文翻译是“舵手”或者“飞行员”。在一些常见的资料中也会看到“ks”这个词,也就是“K8s”,它是通过将8个字母“ubernete”替换为“8”而导致的一个缩写。Kubernetes为什么要用“舵手”来命名呢?比如:这是一艘载着一堆集装箱的轮船,轮船在大海上运着集装箱奔波,把集装箱送到它们该去的地方。我们之前其实介绍过一个概念叫做container,container这个英文单词也有另外的一个意思就是“集装箱”。Kubernetes也就借着这个寓意,希望成为运送集装箱的一个轮船,来帮助我们管理这些集装箱,也就是管理这些容器。这个就是为什么会选用Kubernetes这个词来代表这个项目的原因。更具体一点地来说:Kubernetes是一个自动化的容器编排平台,它负责应用的部署、应用的弹性以及应用的管理,这些都是基于容器的。二、 Kubernetes的核心的功能服务的发现与负载的均衡;容器的自动装箱,我们也会把它叫做scheduling,就是“调度”,把一个容器放到一个集群的某一个机器上,Kubernetes会帮助我们去做存储的编排,让存储的声明周期与容器的生命周期能有一个连接;Kubernetes会帮助我们去做自动化的容器的恢复。在一个集群中,经常会出现宿主机的问题或者说是OS的问题,导致容器本身的不可用,Kubernetes会自动地对这些不可用的容器进行恢复;Kubernetes会帮助我们去做应用的自动发布与应用的回滚,以及与应用相关的配置密文的管理;对于job类型任务,Kubernetes可以去做批量的执行;为了让这个集群、这个应用更富有弹性,Kubernetes也支持水平的伸缩。三、 Kubernetes的架构Kubernetes架构是一个比较典型的二层架构和server-client架构°Master作为中央的管控节点,会去与Node进行一个连接。所有UI的、clients、这些user侧的组件,只会和Master进行连接,把希望的状态或者想执行的命令下发给Master,Master会把这些命令或者状态下发给相应的节点,进行最终的执行。Kubernetes的Master包含四个主要的组件:APIServer、Controller、Scheduler以及etcdoAPIServer:顾名思义是用来处理API操作的,Kubernetes中所有的组件都会和APIServer进行连接,组件与组件之间一般不进行独立的连接,都依赖于APIServer进行消息的传送;Controller:是控制器,它用来完成对集群状态的一些管理。比如第一个自动对容器进行修复、第二个自动进行水平扩张,都是由Kubernetes中的Controller来进行完成的;Scheduler:是调度器,“调度器”顾名思义就是完成调度的操作,就是把一个用户提交的Container,依据它对CPU、对memory请求大小,找一台合适的节点,进行放置;etcd:是一个分布式的一个存储系统,APIServer中所需要的这些原信息都被放置在etcd中,etcd本身是一个高可用系统,通过etcd保证整个Kubernetes的Master组件的高可用性。四、 Kubernetes的组件KubernetesMaster控制组件,调度管理整个系统(集群),包含如下组件:1、 KubernetesAPIServer作为Kubernetes系统的入口,其封装了核心对象的增删改查操作,以RESTfulAPI接口方式提供给外部客户和内部组件调用。维护的REST对象持久化到Etcd中存储。2、 KubernetesScheduler为新建立的Pod进行节点(node)选择(即分配机器),负责集群的资源调度。组件抽离,可以方便替换成其他调度器。3、 KubernetesController负责执行各种控制器,目前已经提供了很多控制器来保证Kubernetes的正常运行。4、 ReplicationController管理维护ReplicationController,关联ReplicationController和Pod,保证ReplicationController定义的副本数量与实际运行Pod数量一致。5、 NodeController管理维护Node,定期检查Node的健康状态,标识出(失效|未失效)的Node节点。6、 NamespaceController管理维护Namespace,定期清理无效的Namespace,包括Namesapce下的API对象,比如Pod、Service等。7、 ServiceController管理维护Service,提供负载以及服务代理。8、 EndPointsController管理维护Endpoints,关联Service和Pod,创建Endpoints为Service的后端,当Pod发生变化时,实时更新Endpoints。9、 ServiceAccountController管理维护ServiceAccount,为每个Namespace创建默认的ServiceAccount,同时为ServiceAccount创建ServiceAccountSecret。10、 PersistentVolumeController管理维护PersistentVolume和PersistentVolumeClaim,为新的PersistentVolumeClaim分配PersistentVolume进行绑定,为释放的PersistentVolume执行清理回收。11、 DaemonSetController管理维护DaemonSet,负责创建DaemonPod,保证指定的Node上正常的运行DaemonPod。12、 DeploymentController管理维护Deployment,关联Deployment和ReplicationController,保证运行指定数量的Pod。当Deployment更新时,控制实现Replication

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论