Kubernetes集群架构与组件介绍

这篇具有很好参考价值的文章主要介绍了Kubernetes集群架构与组件介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

个人博客

一、集群架构

Kubernetes集群架构与组件介绍

二、主要组件

1.kubelet

该组件运行在每个Kubernetes节点上,用于管理节点。用来接收、处理、上报kube-apiserver组件下发的任务。

主要负责所在节点上的Pod资源对象的管理,例如Pod资源对象的创建、修改、监控、删除、驱逐及Pod生命周期管理等。 kubelet组件会定期监控所在节点的资源使用状态并上报给kube-apiserver组件,这些资源数据可以帮助kube-scheduler调度器为Pod资源对象预选节点。kubelet也会对所在节点的镜像和容器做清理工作,保证节点上的镜像不会占满磁盘空间、删除的容器释放相关资源。 kubelet组件实现了3种开放接口:

  • Container Runtime Interface:简称CRI(容器运行时接口)提供容器运行时通用插件接口服务。CRI定义了容器和镜像服务的接口。CRI将kubelet组件与容器运行时进行解耦,将原来完全面向Pod级别的内部接口拆分成面向Sandbox和Container的gRPC接口,并将镜像管理和容器管理分离给不同的服务。
  • Container Network Interface:简称CNI(容器网络接口),提供网络通用插件接口服务。CNI定义了Kubernetes网络插件的基础,容器创建时通过CNI插件配置网络。
  • Container Storage Interface:简称CSI(容器存储接口),提供存储通用插件接口服务。CSI定义了容器存储卷标准规范,容器创建时通过CSI插件配置存储卷。

2.client-go

client-go是从Kubernetes代码中抽离出来的包,作为官方提供的GO语言的客户端发挥作用。client-go简单、易用,Kubernetes系统的其他组件与Kubernetes API Server通信的方式也是基于client-go实现。

3.kube-apiserver

在 Kubernetes 中,API 服务器是 Kubernetes 控制平面的组件, 该组件公开了 Kubernetes API,API Server 是整个系统的核心组件之一,它是 Kubernetes API 的前端。API Server 接收 RESTful API 请求,并根据请求的内容执行相应的操作,比如创建、更新或删除资源对象。API Server 还负责对请求进行身份验证、授权和准入控制等安全相关的操作,以确保 Kubernetes 系统的安全性。

API Server 的另一个重要作用是提供了一个统一的入口,使得 Kubernetes 中的各个组件可以相互通信和协作。除了 Kubernetes 自身的组件,第三方开发的工具和应用程序也可以通过 API Server 访问 Kubernetes API,以实现对 Kubernetes 集群的管理和监控等操作。

总之,API Server 是 Kubernetes 系统中非常重要的组件之一,它为整个系统提供了一个统一的入口和管理接口,使得 Kubernetes 的各个组件可以相互协作,从而实现对 Kubernetes 集群的管理和监控等操作。

kube-apiserver组件也是集群中唯一与Etcd集群进行交互的核心组件。Kubernetes将所有的数据存储在Etcd集群中前缀为registry的目录下。 kube-apiserver的特性:

  • 将Kubernetes系统中所有资源对象都封装成RESTful风格的API接口进行管理。
  • 可进行集群状态管理和数据管理,是唯一与Etcd集群交互的组件。
  • 拥有丰富的集群安 全访问机制,以及认证,授权及准入控制器。
  • 提供了集群各组件的通信和交互功能。

4.kube-controller-manager

它负责管理Kubernetes集群中的节点(Node),Pod副本,服务,端点(Endpoint),命名空间(Namespace),服务账户(ServiceAcconut),资源定额(ResourceQuota)等。

包括:

  • 节点控制器(Node Controller):负责在节点出现故障时进行通知和响应
  • 任务控制器(Job Controller):监测代表一次性任务的 Job 对象,然后创建 Pods 来运行这些任务直至完成
  • 端点分片控制器(EndpointSlice controller):填充端点分片(EndpointSlice)对象(以提供 Service 和 Pod 之间的链接)。
  • 服务账号控制器(ServiceAccount controller):为新的命名空间创建默认的服务账号(ServiceAccount)。

5.kube-scheduler

该组件是Kubernetes集群默认的调度器,它负责在Kubernetes集群中为一个Pod资源对象找到合适的节点并在该节点上运行。在调度的过程中每次只负责调度一个Pod资源对象。调度算法分为两种,分别为预选调度算法和优选调度算法。

6.kubectl

kubectl是Kubernetes官方提供的命令行工具CLI,用户可以通过命令行的方式与Kubernetes API Server进行操作,通信协议使用HTTP/JSON。

7.kube-proxy

该组件运行在Kubernetes集群中每个节点上,作为节点上的网络代理。它监控kube-apiserver的服务和端点资源变化,并通过iptables/ipvs等配置负载均衡器,为一组Pod提供统一的TCP/UDP流量转发和负载均衡功能。但是kube-proxy组件与其他负载均衡服务的区别在于kube-proxy代理只想Kubernetes服务及其后端Pod发出请求。

8.Add-ons

除了核心组件,还有一些推荐的Add-ons:

  • kube-dns负责为整个集群提供DNS服务
  • Ingress Controller为服务提供外网入口
  • Heapster提供资源监控
  • Dashboard提供GUI
  • Federation提供跨可用区的集群
  • Fluentd-elasticsearch提供集群日志采集、存储与查询

三、Kubernetes Project Layout 设计

源码目录 说明
cmd/ 可执行文件的入口代码,每个可执行文件都会对应一个main函数
pkg/ 主要实现,核心库代码,并且可被项目内部或外部直接引用,
vendor/ 项目依赖的库代码,一般为第三方库代码
api/ OpenAPI/Swagger的spce文件,包括JSON、Protocol的定义等
build/ 与构建相关的脚本
test/ 测试工具及测试数据
docs/ 设计或用户使用文档
hack/ 构建、测试等相关代码
third_party 第三方工具、代码或者其他组件
plugin/ Kubernetes插件代码目录,例如认证、授权等相关插件
staging/ 部分核心库的暂存目录
translations/ i18n(国际化)语言包的相关文件,可以在不修改内部代码的情况下支持不同语言及地区

四、源码分析

https://github.com/longpi1/Reading-notes/tree/main/kuberneters/%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90

参考链接

1.https://raw.githubusercontent.com/kubernetes

2.https://juejin.cn/post/6999610929105240094文章来源地址https://www.toymoban.com/news/detail-472097.html

到了这里,关于Kubernetes集群架构与组件介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [云原生案例1.] 构建LNMP架构并运行Wordpress个人博客平台

    需要使用Docker 技术在一台主机上 创建LNMP服务并运行Wordpress网站平台 。 然后对此服务进行相关的 性能调优 和 管理工作 主机 操作系统 IP地址 主要软件 宿主机 CentOS 7.3 x86_64 192.168.67.100 Docker 19.03 Nginx容器 172.18.0.10 Mysql容器 172.18.0.20 PHP容器 172.18.0.30 容器IP:172.18.0.10 3.2.1 创建

    2024年02月07日
    浏览(38)
  • Servlet-搭建个人博客系统(MVC架构模式简介,maven的配置和使用)

    目录 1. MVC架构模式简介 2. maven的配置和使用 3. 项目总述🐻 3.1 🍎Controller层 3.2 🍎Model层 3.3 🍎View层 4. 页面的主要功能实现🐻 4.1 🍎登陆页面(login.html) 4.2 🍎博客列表页面(blog_index.html) 4.3 🍎博客详情页面(blog_detail.html) 4.4 🍎博客编辑页(blog_editor.html) 5.Conto

    2024年02月05日
    浏览(40)
  • Kubernetes 集群管理—日志架构

    应用日志可以让你了解应用内部的运行状况。日志对调试问题和监控集群活动非常有用。 大部分现代化应用都有某种日志记录机制。同样地,容器引擎也被设计成支持日志记录。 针对容器化应用,最简单且最广泛采用的日志记录方式就是写入标准输出和标准错误流。 但是,

    2024年01月17日
    浏览(39)
  • Kubernetes集群管理 —追踪 Kubernetes 系统组件、代理

    特性状态: Kubernetes v1.27 [beta] 系统组件追踪功能记录各个集群操作的时延信息和这些操作之间的关系。 Kubernetes 组件基于 gRPC 导出器的 OpenTelemetry 协议 发送追踪信息,并用 OpenTelemetry Collector 收集追踪信息,再将其转交给追踪系统的后台。 关于收集追踪信息、以及使用收集器

    2024年02月14日
    浏览(41)
  • Kubernetes技术--Kubernetes架构组件以及核心概念

    1. Kubernetes集群架构组件   搭建一个 Kubernetes环境集群,其架构如下所示: 内容详解: Master : 控制节点,指派任务、决策 Node : 工作节点,实际干活的。 Master组件内容:

    2024年02月10日
    浏览(49)
  • Kubernetes架构与组件详解

    Kubernetes是由Google开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序的平台。Kubernetes充分利用了云计算和容器化技术,可以大幅简化应用程序的开发、部署和运行过程。 Kubernetes的优势主要包括以下几点: 高可用性 :Kubernetes可以在多个地理位置和云平台上运

    2024年02月05日
    浏览(41)
  • Kubernetes架构设计与组件

    简介: 一套容器集群管理系统 一个开源平台 实现容器集群的自动化部署、自动扩缩容、维护等功能 两个核心角色: Master:Master管理Node Node:Node管理容器 主要负责整个集群的管理控制。 通常Master会占用一台独立的服务器,基于高可用原因,也有可能是多台。 组成: kube-

    2024年02月08日
    浏览(50)
  • Kubernetes基础概念及架构和组件

    目录 一、kubernetes简介 1、kubernetes的介绍与作用 2、为什么要用K8S? 二、kubernetes特性 1、自我修复 2、弹性伸缩  3、服务发现和负载均衡 4、自动发布(滚动发布/更新)和回滚 5、集中化配置管理和密钥管理 6、存储编排 7、任务批量处理运行 三、kubernetes集群架构与核心组件

    2024年02月07日
    浏览(37)
  • 云原生Kubernetes:K8S集群各组件服务重启

    目录 一、理论 1.各组件服务重启命令 (1)Master节点+Node节点共同服务 (2)Master节点独有服务 (3)Node节点独有服务

    2024年02月03日
    浏览(46)
  • Kubernetes 整体架构介绍

    Kubernetes 主要由以下几个核心组件组成: etcd 保存了整个集群的状态; kube-apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制; kube-controller-manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等; kube-scheduler 负责资源的调

    2024年02月14日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包