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 相关文章推荐
nginx 设置多个站跨域
Mar 09 Servers
使用nginx动态转换图片大小生成缩略图
Mar 31 Servers
Nginx配置https原理及实现过程详解
Mar 31 Servers
提升Nginx性能的一些建议
Mar 31 Servers
Nginx工作原理和优化总结。
Apr 02 Servers
Windows下用Nginx配置https服务器及反向代理的问题
Sep 25 Servers
Kubernetes中Deployment的升级与回滚
Apr 01 Servers
Nginx速查手册及常见问题
Apr 07 Servers
如何通过cmd 连接阿里云服务器
Apr 18 Servers
nginx日志格式分析和修改
Apr 28 Servers
IIS服务器中设置HTTP重定向访问HTTPS
Apr 29 Servers
服务器SVN搭建图文安装过程
Jun 21 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
xss防御之php利用httponly防xss攻击
2014/03/21 PHP
php基于表单密码验证与HTTP验证用法实例
2015/01/06 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
2016/03/15 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
JavaScript动态调整TextArea高度的代码
2010/12/28 Javascript
使用jQuery和Bootstrap实现多层、自适应模态窗口
2014/12/22 Javascript
javascript字符串循环匹配实例分析
2015/07/17 Javascript
使用AJAX实现Web页面进度条的实例分享
2016/05/06 Javascript
JS随机打乱数组的方法小结
2016/06/22 Javascript
jquery datatable服务端分页
2016/08/31 Javascript
解决Linux无法正常安装与卸载Node.js的方法
2018/01/19 Javascript
超出JavaScript安全整数限制的数字计算BigInt详解
2018/06/24 Javascript
JavaScript从原型到原型链深入理解
2019/06/03 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
使用layer弹窗,制作编辑User信息页面的方法
2019/09/27 Javascript
基于JS实现视频上传显示进度条
2020/05/12 Javascript
javascript实现扫雷简易版
2020/08/18 Javascript
在Vue中使用Echarts可视化库的完整步骤记录
2020/11/18 Vue.js
Python打印scrapy蜘蛛抓取树结构的方法
2015/04/08 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
2015/11/05 Python
Python3多线程爬虫实例讲解代码
2018/01/05 Python
Python wxPython库消息对话框MessageDialog用法示例
2018/09/03 Python
在django中图片上传的格式校验及大小方法
2019/07/28 Python
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
电子信息科学专业自荐信
2014/01/30 职场文书
大学军训感言200字
2014/02/26 职场文书
单位绩效考核方案
2014/05/11 职场文书
公司周年庆典策划方案
2014/05/17 职场文书
青年志愿者活动方案
2014/08/17 职场文书
租房协议书范例
2014/10/14 职场文书
2015年端午节活动策划书
2015/05/05 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书
Python利用capstone实现反汇编
2022/04/06 Python
在python中读取和写入CSV文件详情
2022/06/28 Python