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 tp3.2.3 404问题解决方案
Mar 31 Servers
nginx 多个location转发任意请求或访问静态资源文件的实现
Mar 31 Servers
Nginx设置日志打印post请求参数的方法
Mar 31 Servers
Nginx反爬虫策略,防止UA抓取网站
Mar 31 Servers
Nginx解决403 forbidden的完整步骤
Apr 01 Servers
如何通过cmd 连接阿里云服务器
Apr 18 Servers
apache ftpserver搭建ftp服务器
May 20 Servers
基于docker安装zabbix的详细教程
Jun 05 Servers
win sever 2022如何占用操作主机角色
Jun 25 Servers
使用 DataAnt 监控 Apache APISIX的原理解析
Jul 07 Servers
Nginx如何限制IP访问只允许特定域名访问
Jul 23 Servers
nginx sticky实现基于cookie负载均衡示例详解
Dec 24 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
层叠菜单的动态生成
2006/10/09 PHP
php 获取客户端的真实ip
2009/11/30 PHP
php设计模式 Delegation(委托模式)
2011/06/26 PHP
PHP基础学习之流程控制的实现分析
2013/04/28 PHP
php实现随机生成易于记忆的密码
2015/06/19 PHP
javascript mouseover、mouseout停止事件冒泡的解决方案
2009/04/07 Javascript
基于jQuery试卷自动排版系统
2010/07/18 Javascript
jQuery实现 注册时选择阅读条款 左右移动
2013/04/11 Javascript
javascript中为某个元素指定事件的三种方式
2014/08/07 Javascript
jquery插件之文字间歇自动向上滚动效果代码
2016/02/25 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
Node.js如何自动审核团队的代码
2016/07/20 Javascript
AngularJS  $modal弹出框实例代码
2016/08/24 Javascript
解决AjaxFileupload 上传时会出现连接重置的问题
2017/07/07 Javascript
vue.js,ajax渲染页面的实例
2018/02/11 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
2020/01/07 Javascript
只有 20 行的 JavaScript 模板引擎实例详解
2020/05/11 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
[33:15]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VP VS Mineski
2018/03/31 DOTA
[02:51]2018年度DOTA2最佳中单位选手-完美盛典
2018/12/17 DOTA
LRUCache的实现原理及利用python实现的方法
2017/11/21 Python
python 装饰器功能与用法案例详解
2020/03/06 Python
Python join()函数原理及使用方法
2020/11/14 Python
日本卡普空电视游戏软件公司官方购物网站:e-CAPCOM
2018/07/17 全球购物
公司培训心得体会
2014/01/03 职场文书
计算机学生求职信范文
2014/01/30 职场文书
科长竞争上岗演讲稿
2014/05/12 职场文书
个人综合鉴定材料
2014/05/23 职场文书
疾病防治方案
2014/05/31 职场文书
个人租房协议书范本
2014/09/30 职场文书
教师工作表现评语
2014/12/31 职场文书
横空出世观后感
2015/06/09 职场文书
预备党员入党感想
2015/08/10 职场文书
Nginx配置80端口访问8080及项目名地址方法解析
2021/03/31 Servers