Kubernetes关键组件与结构组成介绍


Posted in Servers onMarch 31, 2022

架构组成

我们可以看一下这两张图,所表示的都是关于 Kubernetes 集群的架构。

一个 kubernetes 集群是由一组被称为节点(Node)的机器或虚拟机组成,集群由 master、worker 节点组成,每个机器至少具有一个 worker 节点。

Kubernetes关键组件与结构组成介绍

Kubernetes关键组件与结构组成介绍

Master

在前面两个图中,可以看到 Master 是由一组称为控制平面组件组成的,我们可以打开 /etc/kubernetes/manifests/ 目录,里面是 k8s 默认的控制平面组件。

.
├── etcd.yaml
├── kube-apiserver.yaml
├── kube-controller-manager.yaml
└── kube-scheduler.yaml

对于集群来说, etcd、apiserver、schedluer 是必不可少的,接下来了解一下这几个组件的作业和相关资料。

kube-apiserver

kube-apiserver 是 k8s 主要进程之一,apiserver 组件公开了 Kubernetes API ,apiserver 是 Kubernetes 控制面的前端。kubectl 具有控制集群的很强大的功能,正是 apiserver 提供了接口服务,kubectl 解析用户输入的指令后,向 apiserver 发起 HTTP 请求,再将结果反馈给用户。

其暴露的 endiont 端口是 6443,我们通过 kubeadm join ip:6443 ... 将节点加入集群,正是通过 apiserver 处理的。

etcd

etcd 是兼具一致性和高可用性的键值数据库,作为保存 Kubernetes 所有集群数据的后台数据库。kube-apiserver 的所有操作结果都会存储到 etcd 数据库中,etcd 主要存储 k8s 的状态、网络配置以及其它持久化数据,etcd 是使用 B+ 树实现的。

kube-scheduler

scheduler 负责监视新创建的 pod,并把 pod 分配到节点上。

kube-controller-manager

kube-controller-manager 中包含了多个控制器,它们都被编译到一个二进制文件中,但是启动后会产生不同的进程。这些控制器有:

  • 节点控制器(Node Controller)

    负责在节点出现故障时进行通知和响应

  • 任务控制器(Job controller)

    监测代表一次性任务的 Job 对象,然后创建 Pods 来运行这些任务直至完成

  • 端点控制器(Endpoints Controller)

    填充端点(Endpoints)对象(即加入 Service 与 Pod)

  • 服务帐户和令牌控制器(Service Account & Token Controllers)

    为新的命名空间创建默认帐户和 API 访问令牌

Worker

工作节点是真正干活的节点,每个工作节点上都运行着 kubelet、kube-proxy 两个 k8s 组件以及容器引擎。kube-apiserver 这些称为 控制平面组件,而 kubelet、kube-proxy 则称为 节点组件。

kubelet 与所有安装在节点上的底层容器引擎进行交互,它确保所需的容器都运行在 pod 中,如果我们直接使用 docker run 创建容器,kubelet 不会管理非 kubernetes 创建的容器。

kube-proxy 负责管理容器的网络连接,是集群中每个节点上运行的网络代理,也是我们之前学习到的 Service 服务的一部分。

到此这篇关于Kubernetes关键组件与结构组成的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Servers 相关文章推荐
fastdfs+nginx集群搭建的实现
Mar 31 Servers
Nginx配置文件详解以及优化建议指南
Sep 15 Servers
使用 Apache Dubbo 实现远程通信(微服务架构)
Feb 12 Servers
详解使用内网穿透工具Ngrok代理本地服务
Mar 31 Servers
tomcat的catalina.out日志按自定义时间格式进行分割的操作方法
Apr 02 Servers
Windows server 2012 R2 安装IIS服务器
Apr 29 Servers
V Rising 服务器搭建图文教程
Jun 16 Servers
nginx之queue的具体使用
Jun 28 Servers
windows server2016安装oracle 11g的图文教程
Jul 15 Servers
Nginx报错104:Connection reset by peer问题的解决及分析
Jul 23 Servers
Windows7下FTP搭建图文教程
Aug 05 Servers
Win10系统搭建ftp文件服务器详细教程
Aug 05 Servers
配置Kubernetes外网访问集群
CKAD认证中部署k8s并配置Calico插件
Mar 31 #Servers
使用kubeadm命令行工具创建kubernetes集群
Mar 31 #Servers
Minikube搭建Kubernetes集群
Apache Pulsar结合Hudi构建Lakehouse方案分析
Apache Hudi的多版本清理服务彻底讲解
Z-Order加速Hudi大规模数据集方案分析
Mar 31 #Servers
You might like
PHP仿博客园 个人博客(2) 数据库增添改删
2013/07/05 PHP
php将mysql数据库整库导出生成sql文件的具体实现
2014/01/08 PHP
php缩放gif和png图透明背景变成黑色的解决方法
2014/10/14 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
2016/12/09 PHP
PHP底层运行机制与工作原理详解
2020/07/31 PHP
jquery操作select option 的代码小结
2011/06/21 Javascript
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
jquery $(document).ready()和window.onload的区别浅析
2015/02/04 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
JavaScript实现简单的树形菜单效果
2017/06/23 Javascript
iview中Select 选择器多选校验方法
2018/03/15 Javascript
javascript匿名函数中的'return function()'作用
2018/10/15 Javascript
微信小程序如何修改radio和checkbox的默认样式和图标
2019/07/24 Javascript
解决layui表格内文本超出隐藏的问题
2019/09/12 Javascript
vue.config.js常用配置详解
2019/11/14 Javascript
vue实现pdf文档在线预览功能
2019/11/26 Javascript
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
python不带重复的全排列代码
2013/08/13 Python
Python中为feedparser设置超时时间避免堵塞
2014/09/28 Python
一篇文章入门Python生态系统(Python新手入门指导)
2015/12/11 Python
python基础教程之分支、循环简单用法
2016/06/16 Python
windows下ipython的安装与使用详解
2016/10/20 Python
Python时间的精准正则匹配方法分析
2017/08/17 Python
python是怎么被发明的
2020/06/15 Python
CSS3实现莲花绽放的动画效果
2020/11/06 HTML / CSS
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
欧洲最大的化妆品连锁公司:Douglas道格拉斯
2017/05/06 全球购物
Haglöfs瑞典官方网站:haglofs火柴棍,欧洲顶级户外品牌
2018/10/18 全球购物
团队精神演讲稿
2013/12/31 职场文书
蛋糕店创业计划书
2014/05/06 职场文书
部门活动策划方案
2014/08/16 职场文书
民主评议政风行风整改方案
2014/09/17 职场文书
授权委托书怎么写
2014/09/25 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
2015年学校信息技术工作总结
2015/05/25 职场文书
订货会主持词
2015/07/01 职场文书