专栏首页萝卜大杂烩从入门到跑路之Kubernetes(六)

从入门到跑路之Kubernetes(六)

今天我们来一起学习下Kubernetes的基本概念,基础架构篇

神奇的家伙,基本概念,基础架构

先上一张架构图

01.Master

Master节点主要由四个模块组成,APIServer,Schedule, Controller Manager, etcd。

APIServer

负责对外提供RESTful的KubernetesAPI服务,它是系统管理指令的统一入口,任何对资源进行增删改查的操作都要交给APIServer处理后再提交给etcd。Kubectl(Kubernetes提供的客户端工具,该工具内部就是对Kubernetes API的调用)是直接和APIServer交互的。

Schedule

Schedule的职责很明确,就是负责调度Pod到Node上。如果把schedule看成一个黑匣子,那么它的输入是Pod和由多个Node组成的列表,输出是Pod和一个Node的绑定,即将这个Pod部署到这个Node上。Kubernetes目前提供了调度算法,同样也保留了接口,我们可以根据自己的需求定义自己的调度算法。

ControllerManager

如果说APIServer做的是“前台“的工作的话,那Controller Manager就是负责”后台“的。每一个资源一般都对应一个控制器,而Controller Manager就是负责管理这些控制器的。比如我们通过APIServer创建一个Pod,当这个Pod创建成功后,APIServer的任务就算完成了,而后面保证Pod的状态始终和我们预期的一样的重任就由Controller Manager去保证。

Etcd

Etcd是一个高可用的键值存储系统,Kubernetes使用它来存储各个资源状态,从而实现RESTful的API。

02.Node

每一个Node节点主要由三个模块组成,kubelet,kube-proxy, runtime。

Runtime

Runtime指的是容器运行环境,目前Kubernetes支持Docker和RKT两种容器。

Kube-proxy

该模块实现了Kubernetes中的服务发现和反向代理功能。反向代理方面:kube-proxy支持TCP和UDP连接转发,默认基于Round Robin算法将客户端流量转发到与service对应的一组后端Pod。服务发现方面:kube-proxy使用etcd的watch机制,监控集群中service和endpoint对象数据的动态变化,并且维护一个service到endpoint的映射关系,从而保证了后端Pod的IP变化不会对访问者造成影响。另外kube-proxy还支持session affinity。

Kubelet

Kubelet是Master在每个Node节点上面的agent,是Node节点上最重要的模块。它负责维护和管理该Node上面的所以容器,但是如果容器不是通过Kubernetes创建的,它并不会管理。本质上,它负责Pod的运行状态与期望的状态一致。

03.Pod

Pod是Kubernetes的基本操作单元,也是运行应用的载体。整个Kubernetes系统都是围绕着Pod展开的,比如如何部署运行Pod,如何保证Pod的数量,如何访问Pod等。另外,Pod是一个或多个相关容器的集合,提供了一种容器的组合模型。

Pod与容器

在Docker中,容器是最小的处理单元,增删改查的对象是容器,容器之间是相互隔离的。而在Kubernetes中,Pod包含一个或多个相关的容器,Pod可以认为是容器的一种延伸扩展,一个Pod也是一个隔离体,而Pod内部包含的一组容器又是共享的(包括PID,Network,IPC,UTS)。除此之外,Pod中的容器可以访问共同的数据卷来实现文件系统的共享。

Pod生命周期

Pod被分配到一个Node上之后,就不会离开这个Node,直到被删除。当某个Pod失败,首先会被Kubernetes清理掉,之后Replication Controller将会在其他机器上(或者本机)重建Pod,重建之后的Pod的ID发生了变化,会是一个新的Pod。

04. 下期预告

一些其他的概念,比如Replication Controller,Job,Deployment,Service等等,我们下次再学习吧!

本文分享自微信公众号 - 萝卜大杂烩(zhouluoboluandun),作者:萝卜大杂烩

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 从入门到跑路之Kubernetes(十)

    Deployment并不能满足所有的应用场景,因为它默认对应用做了一个简化假设处理,认为一个应用的所有Pod是完全一样的,但往往在实际应用中,多个实例相互间是存...

    周萝卜
  • 从入门到跑路之Kubernetes(八)

    我们知道,容器的本质就是进程,那么就可以把Kubernetes类比为“操作系统“,因为它和操作系统类似,都是用来管理进程和进程之间关系的。

    周萝卜
  • 从入门到跑路之Kubernetes(七)

    Replication Controller(RC)是Kubernetes的另一个核心概念,应用托管在Kubernetes上之后,Kubernetes需要保证应...

    周萝卜
  • 了解Kubernetes主体架构(二十七)

    接下来还会逐步完善本教程,比如Helm、ELK、Windows Server容器等等。

    雪雁-心莱科技
  • 了解Kubernetes主体架构(二十八)

    接下来还会逐步完善本教程,比如Helm、ELK、Windows Server容器等等。

    心莱科技雪雁
  • Kubernetes 的基本概念和术语

    Kubernetes 里的 Master 指的是集群的控制节点,负责整个集群的管理和控制。 在 Master 上运行中以下关键进程:

    tanmx
  • Kubernetes-核心资源之Pod

    在Kubernetes集群中,Pod是所有业务类型的基础,它是一个或多个容器的组合。这些容器共享存储、网络和命名空间,以及如何运行的规范。在Pod中,所有容器都...

    菲宇
  • Pod Topology Spread Constraints介绍

    拓扑域:就 Kubernetes 而言,它们是按节点标签定义和分组的一系列 Node,例如属于相同区域/可用区/机架/主机名都可以作为划分拓扑域的依据。

    CNCF
  • 我花了10个小时,写出了这篇K8S架构解析!

    互联网技术飞速发展的今天,为了承载请求的高并发和业务的多样性,微服务的架构成了各个公司的标配。

    macrozheng
  • 我花了10个小时,写出了这篇K8S架构解析

    互联网技术飞速发展的今天,为了承载请求的高并发和业务的多样性,微服务的架构成了各个公司的标配。

    马哥linux运维

扫码关注云+社区

领取腾讯云代金券