前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从入门到跑路之Kubernetes(六)

从入门到跑路之Kubernetes(六)

作者头像
周萝卜
发布2019-07-17 15:17:33
2990
发布2019-07-17 15:17:33
举报
文章被收录于专栏:萝卜大杂烩萝卜大杂烩

今天我们来一起学习下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等等,我们下次再学习吧!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 萝卜大杂烩 微信公众号,前往查看

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

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

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