【kubernetes】kubernetes简介

embedded/2024/11/25 6:38:59/

目录

          • 1. 说明
          • 2. 起源与发展
          • 3. 核心概念
          • 4. 架构与组件
            • 4.1 控制平面(Control Plane)
            • 4.2 工作节点(Worker Nodes)
          • 5. 特点与优势
          • 6. 应用场景

1. 说明
  • 1.Kubernetes(简称K8s)是一个开源的容器编排工具,专为自动化容器化应用程序的部署、扩展管理而设计。
2. 起源与发展
  • 1.Kubernetes起源于2014年,由Google的三位工程师Joe Beda、Brendan Burns和Craig McLuckie创立。
  • 2.Kubernetes是Google的Borg系统的开源版本,Borg是一个大规模集群管理系统,对Google服务的稳定性和规模化起到了关键作用。
  • 3.Kubernetes采用了Borg的设计理念和最佳实践,但设计得更加灵活和模块化,以适应更广泛的用户群体和工作负载。
  • 4.2015年,Google将Kubernetes捐赠给了Cloud Native Computing Foundation(CNCF),以确保其中立性并促进生态系统的健康发展。
3. 核心概念
  • 1.Pod:Kubernetes使用Pod来管理容器,每个Pod可以包含一个或多个紧密关联的容器。Pod是一组紧密关联的容器集合,它们共享PID、IPC、Network和UTS namespace,是Kubernetes调度的基本单位。
  • 2.Node:Node是Pod真正运行的主机,可以是物理机,也可以是虚拟机。为了管理Pod,每个Node节点上至少要运行container runtime(比如Docker或者rkt)、kubelet和kube-proxy服务。
  • 3.Namespace:Namespace是对一组资源和对象的抽象集合,可以用来将系统内部的对象划分为不同的项目组或用户组。
  • 4.Service:Service是应用服务的抽象,通过labels为应用提供负载均衡和服务发现。
  • 5.Label:Label是识别Kubernetes对象的标签,以key/value的方式附加到对象上。Label不提供唯一性,并且实际上经常是很多对象(如Pods)都使用相同的label来标志具体的应用。
  • 6.Annotations:Annotations是key/value形式附加于对象的注解,用来记录一些附加信息,用来辅助应用部署、安全策略以及调度策略等。
4. 架构与组件
4.1 控制平面(Control Plane)
  • 1.包括kube-apiserver、etcd、kube-scheduler、kube-controller-manager和cloud-controller-manager。
  • 2.控制平面负责管理集群的状态、调度Pod到合适的节点、监控节点和Pod的健康状况等。
  • 3.kube-apiserver:API服务器是Kubernetes控制平面的组件,负责公开Kubernetes API,并处理接受请求的工作。它是Kubernetes控制平面的前端。
  • 4.etcd:一个分布式键值存储,用于存储Kubernetes集群的所有数据。它是Kubernetes集群的源数据存储系统,所有的配置信息、状态信息都存储在etcd中。
  • 5.kube-scheduler:负责将新创建的Pod调度到合适的工作节点上。
  • 6.kube-controller-manager:负责运行控制器进程,包括节点控制器、任务控制器、端点分片控制器等。
  • 7.cloud-controller-manager:允许将Kubernetes集群连接到云提供商的API之上,并将与该云平台交互的组件同与集群交互的组件分离开来。
4.2 工作节点(Worker Nodes)
  • 1.包括kubelet、kube-proxy和容器运行时。工作节点负责运行实际的应用容器。
  • 2.kubelet:负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理。
  • 3.kube-proxy:负责为Service提供cluster内部的服务发现和负载均衡。
  • 4.容器运行时:负责镜像管理以及Pod和容器的真正运行(CRI)。
5. 特点与优势
  • 1.可移植性:支持公有云、私有云、混合云和多重云。
  • 2.可扩展性:模块化、插件化、可挂载、可组合。
  • 3.自动化:自动部署、自动重启、自动复制、自动伸缩/扩展。
  • 4.快速部署与扩展:能够快速部署和扩展应用。
  • 5.无缝对接新功能:能够无缝对接新的应用功能。
  • 6.资源优化:节省资源,优化硬件资源的使用。
6. 应用场景
  • 1.容器编排和管理:Kubernetes可以帮助用户轻松地部署、管理和扩展容器化应用。
  • 2.微服务架构:Kubernetes可以支持微服务架构的应用部署和管理,自动管理微服务的部署、扩展和升级,同时还提供了负载均衡、服务发现和服务注册等功能。
  • 3.弹性扩展:Kubernetes可以根据应用的负载情况自动进行弹性扩展,提高应用的可用性和性能,同时节省资源和成本。
  • 4.高可用性和容错性:Kubernetes提供了一系列的机制来确保应用的高可用性和容错性,如自动重新启动失败的容器、容器自愈和自动修复等。
  • 5.多云环境管理:Kubernetes可以帮助用户在多个云平台上管理和部署应用,提供标准化的接口和管理方式。

http://www.ppmy.cn/embedded/140314.html

相关文章

Easyexcel(4-模板文件)

相关文章链接 Easyexcel(1-注解使用)Easyexcel(2-文件读取)Easyexcel(3-文件导出)Easyexcel(4-模板文件) 文件导出 获取 resources 目录下的文件,使用 withTemplate 获…

(Java并发编程——JUC)常见的设计模式概念分析与多把锁使用场景!!理解线程状态转换条件!带你深入JUC!!文章全程笔记干货!!

1. 常见设计模式与多把锁使用场景 1.1 同步模式之保护性暂停 即 Guarded Supension,用在一个线程等待另一个线程的执行结果 要点: 有一个结果需要仓一个线程传递到另一个线程,让他们关联同一个 GuardedObject如果有结果不断从一个线程到另…

【代码随想录】哈希

242. 有效的字母异位词 原题链接 算法思想:哈希,排序 哈希思想:重点就是迅速查找,通过key和值的迅速匹配,所以当题目是与 “唯一性” 有关时可用 用哈希表维护字母出现的次数 方法一:哈希 我的做法:用…

28.UE5游戏框架,事件分发器,蓝图接口

3-3 虚幻游戏框架拆解,游戏规则基础_哔哩哔哩_bilibili 目录 1.游戏架构 2.事件分发器 2.1UI控件中的事件分发器 2.2Actor蓝图中的事件分发器 2.2.1动态决定Actor的分发事件 2.2.2父类中定义事件分发器,子类实现事件分发器 2.3组件蓝图中实现事件…

16. 清理Python包管理工具(pip 和 conda)的缓存和冗余文件

这个专栏记录我学习/科研过程中遇到的一些小问题以及解决方案,一些问题可能比较蠢请见谅。自用,仅供参考。 ------------------------------------------------------------------------------------ 清理Python包管理工具(pip 和 conda&am…

2024最新python使用yt-dlp

2024最新python使用yt-dlp下载YT视频 1.获取yt的cookie1)google浏览器下载Get cookies.txt LOCALLY插件2)导出cookie 2.yt-dlp下载[yt-dlp的GitHub地址](https://github.com/yt-dlp/yt-dlp?tabreadme-ov-file)1)使用Pycharm(2024.3)进行代码…

详解Qt QBuffer

文章目录 **QBuffer 的详解****前言****QBuffer 是什么?****QBuffer 的主要用途****构造函数****主要成员函数详解****1. open()****原型:****作用:****参数:****返回值:****示例代码:** **2. write()****原…

东华大学oj 汉诺塔 第m步问题

问题描述 给定三根杆A、B、C和大小不同的几个盘子。这些盘子按尺寸递减顺序套在A杆上,最小的在最上面。现在的任务是把这些盘子从A杆移到C杆且保持原来堆放顺序。在实现任务时,每次只能移动一个盘子,且任何时刻不允许大的盘子放在小的盘子上…