Kubernetes各组件的功能

1.kubectl

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

2.client-go

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

3.kube-apiserver

它负责Kubernetes"资源组/资源版本/资源"以RESTful风格的形式对外暴露并提供服务。kube-apiserver组件也是集群中唯一与Etcd集群进行交互的核心组件。Kubernetes将所有的数据存储在Etcd集群中前缀为registry的目录下。
kube-apiserver的特性:

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

4.kube-controller-manager

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

5.kube-scheduler

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

6.kubelet

该组件运行在每个Kubernetes节点上,用于管理节点。kubelet组件用来接收、处理、上报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插件配置存储卷。

7.kube-proxy

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

Kubernetes Project Layout 设计

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

Kubernetes各组件的功能相关推荐

  1. Kubernetes基础组件概述

    本文讲的是Kubernetes基础组件概述[编者的话]最近总有同学问Kubernetes中的各个组件的相关问题,其实这些概念内容在官方文档中都有,奈何我们有些同学可能英文不好,又或者懒得去看,又或者没 ...

  2. 在微服务中,Kubernetes软件组件有哪些?

    在微服务.云计算和无服务架构时代,理解Kubernetes并且知道如何使用它是十分有用的.然而,官方的Kubernetes文档对于刚开始接触云计算的用户来说有些难以理解,以下内容是关于Kubernet ...

  3. kubernetes各组件介绍

    文章目录 一. kubernetes 是什么 1. 基础架构图 2. kubernetes 各组件介绍 2.1 master 组件 :one: Kubernetes API Server(kube-a ...

  4. react hooks使用_如何使用Hooks将React类组件转换为功能组件

    react hooks使用 by Balaganesh Damodaran 通过Balaganesh Damodaran 如何使用Hooks将React类组件转换为功能组件 (How to conve ...

  5. @EnableAspectJAutoProxy||AOP原理:【看给容器中注册了什么组件,这个组件什么时候工作,这个组件的功能是什么?】

    AOP原理:[看给容器中注册了什么组件,这个组件什么时候工作,这个组件的功能是什么?] @EnableAspectJAutoProxy是什么? * AOP原理:[看给容器中注册了什么组件,这个组件什么 ...

  6. 学习 launch-editor 源码整体架构,探究 vue-devtools「在编辑器中打开组件」功能实现原理...

    1. 前言 你好,我是若川[1],微信搜索「若川视野」关注我,专注前端技术分享,一个愿景是帮助5年内前端开阔视野走向前列的公众号.欢迎加我微信ruochuan12,长期交流学习. 这是学习源码整体架构 ...

  7. 服务器虚拟化之-——VMware组件与功能。

    最近公司提出帮服务器虚拟化,以前也没接触过,在网上搜了一通,查看了一少资料,感觉现在对虚拟化有了一些了解,在售前我们要出方案,需要对虚拟化进行一个整体评估,这步先省略,后期再补上,然后需要了解用哪种软 ...

  8. openstack【Kilo】汇总:包括20英文文档、各个组件新增功能及Kilo版部署

    OpenStack Kilo版本发布 20英文文档 OpenStack Kilo版本文档汇总:各个操作系统安装部署.配置文档.用户指南等文档 Kilo版部署 openstack[Kilo]入门 [准备 ...

  9. 仿照admin的stark自定义组件的功能实现

    仿照admin的stark自定义组件的功能实现:其中最主要的就是增删改查的实现 1.查:首先页面中显示表头和数据,都是动态的,而不是写死的. (1) 先看表头和表单数据:这个是查看的视图函数,但是为了 ...

最新文章

  1. OSError: Could not find library geos_c or load any of its variants ['libgeos_c.so.1', 'libgeos_c.so
  2. 吴恩达《机器学习》课程总结(16)推荐系统
  3. JavaScript高程第十章:DOM(上)
  4. oracle case when exists()
  5. 关于多线程的一点补充
  6. java response设置403,java.io.IOException:服务器返回URL的HTTP响应代码:403
  7. echarts 3d地球js特效代码
  8. Hive教程(08)- JDBC操作Hive
  9. MATLAB中fig文件多重图片数据读取
  10. java加载不了驱动程序,请教java连mysql数据库时一直加载不起驱动
  11. 计算机网络 ——物理层
  12. Python聊天室设置与实现
  13. Java编程怎么打印输出第n项斐波拉契数
  14. Proxmox backup server虚机还原测试
  15. Vue.config.silent = true
  16. P2071 座位安排
  17. 某讯T9程序员推荐,Linux C/C++ 学习路线(内附资料)
  18. DAX中的ALL函数
  19. 轩辕实验室 | 车载以太网CNN入侵检测算法
  20. 什么是单细胞?(一)

热门文章

  1. java多图片上传json_SpringMVC框架五:图片上传与JSON交互
  2. python怎么打日志_怎样调试 日志 python 代码
  3. 数据中心(机房)监控方案
  4. 地震也能照常运行的数据中心新设计
  5. 2018年超大规模数据中心总数达到430个
  6. linux如何查看硬件驱动,linux查看硬件信息及驱动设备相关整理
  7. java opengl_java基于OpenGL ES实现渲染实例
  8. CV之Hog+HamMingDistance:基于Hog提取和汉明距离对比的应用—图像相似度对比之for循环将多个成对图片依次对比并输出相似度
  9. CV之FRec之ME/LF:人脸识别中常用的模型评估指标/损失函数(Triplet Loss、Center Loss)简介、使用方法之详细攻略
  10. TFOD:基于TFOD API的官方模型案例对图片进行目标检测