炼气境—第2层: 理解K8S 的组件和架构设计

天下武功,为快不破。 我是Go 写的!


K8S 的架构设计

  • C-S架构
basic.jpg
  • 说明
    K8S 使用的是Master —Worker 这种方式,Master 节点负责调度控制,Worker负责干活,也就是说Master 是地主老财,天天只会别人干着干那,Worker 就是农民,埋头耕种即可。

那么,Worker 是怎么向Master 通信及报告状态,Master实时怎么管理Worker的工作情况,怎么规划资源调度的呢?

K8S 基础组件的说明

重点

组件化,各个部门各司其职,分为master 组件和节点(Node)组件。不过还有个公用的都需要的组件,那就是网络组件,用来node 之间通信的。

master 组件

Master 组件既认为是k8s 的大脑,是控制核心组件,主要对于整个集群做决策,调度,检测,事件控制。
一般情况,我们至少有3个master 节点作高可用的k8s 集群。master 节点不做工作任务,只负责集群的控制。

  • Kube-apiserver

k8s 是有http api接口的,一般,我们操作集群会安装一个kubeClient 客户端,其实,这个客户端发出的命令既是调用了apiServer, 主要是方便用户通信。

  • ETCD

etcd 负责保存 Kubernetes Cluster 的配置信息和各种资源的状态信息。当数据发生变化时,etcd 会快速地通知 Kubernetes 相关组件。 比如pod 的状态,deploy 的状态等。

etcd是一个高可用的键值存储系统,主要用于共享配置和服务发现。etcd是由CoreOS开发并维护的,灵感来自于 ZooKeeper 和 Doozer,使用Go语言编写,并通过Raft一致性算法处理日志复制以保证强一致性

  • Kube-controller-manager

运行控制器,它们是处理集群中常规任务的后台线程。逻辑上,每个控制器是一个单独的进程,但为了降低复杂性,它们都被编译成独立的可执行文件,并在单个进程中运行。
这些控制器包括:

  • 节点控制器: 当节点移除时,负责注意和响应。
  • 副本控制器: 负责维护系统中每个副本控制器对象正确数量的 Pod。
  • 端点控制器: 填充 端点(Endpoints) 对象(即连接 Services & Pods)。
  • 服务帐户和令牌控制器: 为新的命名空间创建默认帐户和 API 访问令牌.
    说白了就是,控制pod 的个数,存活周期,秘钥,账户权限,令牌,pod 访问控制等。
  • Cloud-controller-manager

cloud-controller-manager 是用于与底层云提供商交互的控制器。云控制器管理器可执行组件是 Kubernetes v1.6 版本中引入的 Alpha 功能。像阿里云和华为云,其实都有一个pod 作为基础其他服务的控制。说白了,既是给其他云服务商提供的一个功能组件,结合他们的服务使用的。

以下控制器具有云提供商依赖关系:
节点控制器: 用于检查云提供商以确定节点是否在云中停止响应后被删除
路由控制器: 用于在底层云基础架构中设置路由
服务控制器: 用于创建,更新和删除云提供商负载平衡器
数据卷控制器: 用于创建,附加和装载卷,并与云提供商进行交互以协调卷

  • Kube-scheduler

kube-scheduler 监视新创建没有分配到NodePod,为Pod选择一个Node。

  • 插件addons

插件(addon)是实现集群pod和Services功能的 。Pod由Deployments,ReplicationController等进行管理。Namespace 插件对象是在kube-system Namespace中创建。

  • DNS

虽然其他插件并不是必需的,但所有 Kubernetes 集群都应该具有Cluster DNS,许多示例依赖于它。

Cluster DNS 是一个 DNS 服务器,和您部署环境中的其他 DNS 服务器一起工作,为 Kubernetes 服务提供DNS记录。

Kubernetes 启动的容器自动将 DNS 服务器包含在 DNS 搜索中。这里插一嘴,目前一般集群用的是CoreDns 组件。

node 组件

  • Kubelet

kubelet是主要的节点代理,它监测已分配给其节点的 Pod(通过 apiserver 或通过本地配置文件),提供如下功能:

  • 挂载 Pod 所需要的数据卷(Volume)。
  • 下载 Pod 的 secrets。
  • 通过 Docker 运行(或通过 rkt)运行 Pod 的容器。
  • 周期性的对容器生命周期进行探测。
  • 如果需要,通过创建 镜像 Pod(Mirror Pod) 将 Pod 的状态报告回系统的其余部分。
  • 将节点的状态报告回系统的其余部分。

  • Kube-Proxy

kube-proxy通过维护主机上的网络规则并执行连接转发,实现了Kubernetes服务抽象。

就是前面一章说的service 概念的抽象基础。

  • Docker
    所有的POD都是在docker 引擎中允许的。master的组件也是可以容器化运行的,不过一般的云服务上都是通过二进制安装的master,因为master 太重要了,稳定性需要是第一位的。

  • RKT

支持 rkt 运行容器作为 Docker 的试验性替代方案 。 不常见。

  • supervisord

supervisord 是一个轻量级的进程监控系统,可以用来保证 kubelet 和 docker 运行。

  • fluentd

fluentd 是一个守护进程,它有助于提供集群层面日志 集群层面的日志。

网络组件

官方集群网络说明
如何安装网络插件看这里

网络组件解决的是各种通信的问题,如容器到容器,容器到service,容器到外部,外部到容器的问题。

各个厂家的选择不一样,我们一般使用Flannel 或者Weave 作为网络组件。后面我们以Flannel 为例,因为他是最简单的~。 OK , 下一层我们主要说明网络,学习好了网络知识才能更好的掌握k8s 。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容