一文读懂什么是kubernetes?

author author     2022-12-04     468

关键词:

kubernetes概述
kubernetes面世不过短短几年时间,kuberenetes已经成为容器编排领域事实上的标准,无论是公有云,私有云或混合云,kubernetes都将作为一个为任何应用,任何环境提供容器管理框架无处不在。
简述什么是kubernetes?
kubernetes(来自希腊语,意为什“舵手”或“飞行员”)由Joe Beda,Brendan Burns和Craig McLuckie创立,而后Google的其他几位工程师等共同研发,并由google在2014年首次对外宣布,kubernetes的开发和涉及深受Google内部系统Borg的影响,事实上,它的许多顶级贡献者之前也是Borg系统的开发者。
Borg是Google内部使用的大规模集群管理系统,它构建于容器技术之上,目的是实现资源管理的自动化,以及跨多个数据中心的资源利用最大化,2015年4月,borg论文伴随kubernetes宣传被Google首次公开。
事实,正是容器世家Google,并站在borg巨人的肩膀上,充分受益 于Borg过去数十年积累的经验和教训,kubernetes一面世受到关注和青睐,并迅速称霸容器编排技术领域,很多人将kubernetes视为borg系统的一个开源实现版本,在Google内部,kubernetes的原始代号曾经是serven of Nine即星际迷航中友好的Borg角色,它标识中的舵轮有7个轮辐就是对该项目代号的致意。
kubernetesv1.0在2015年7月21发布,紧随其后,Google与linux基金会合作组建了Cloud Native Computing Foundation (云原生计算基金会简称CNCF)并将kubernetes作为核心技术对其提供。在此以后,kubereetes进入了版本快速迭代时期,,从此不断融入了新功能,如Federation,Network Policy API,RBAC,CRD和CSI,等等,增加了对windows系统的支持。
kubernetes特点:
kuberentes是一种由于在一组主机上运行和协通容器化应用程序的系统,旨在提供可预测可扩展性与高可用的方法来管理容器化应用程序和服务的生命周期的平台,用户可以定义应用程序的运行方式,以及与其他应用程序或外部世界交互的途径,并能实现服务的扩容和伸缩,执行平滑滚动更新,以及在不同版本的应用程序之间调度流量以及测试功能或者回滚有问题的部署,kuberentes提供了接口和可组合的平台。使得用户能够以高度的灵活性和可靠性定义以及管理应用程序。
有以下特点:
1.自动装箱
2.自我修复(自愈)
3.水平扩展
4.服务发现和负载均衡
5.自动发布和回滚
6.密钥和配置管理
7.存储编排
8.批量处理执行
kubernetes集群的核心组件
一个典型的kubernetes集群由多个工作节点和一个集群控制平面即Master来组成。
Master组件:kubernetes的集群控制平面由多个组件组成。这些组件统一运行单一的master节点,也可以以多副本的方式同时运行在多个节点,以为master提供高可用功能,甚至可以运行在kubernetes集群之上,master主要包含以下几个组件。
kube-apiserver:Kubernetes API server 为 api 对象验证并配置数据,包括 pods、 services、
replicationcontrollers 和其它 api 对象,API Server 提供 REST 操作和到集群共享状态的前端,
所有其他组件通过它进行交互。

kube-controller-manager:Controller Manager 作为集群内部的管理控制中心,负责集群内的
Node、Pod 副本、服务端点(Endpoint)、命名空间(Namespace)、服务账号(ServiceAccount)、
资源定额(ResourceQuota)的管理,当某个 Node 意外宕机时,Controller Manager 会及时发
现并执行自动化修复流程,确保集群始终处于预期的工作状态。



kube-scheduler: 是一个拥有丰富策略、能够感知拓扑变化、支持特定负载的功能组件,它对
集群的可用性、性能表现以及容量都影响巨大。scheduler 需要考虑独立的和集体的资源需
求、服务质量需求、硬件/软件/策略限制、亲和与反亲和规范、数据位置、内部负载接口、
截止时间等等。如有必要,特定的负载需求可以通过 API 暴露出来。


etcd etcd key-value,只有master可以访问
etcd是CoreOS公司开发目前是kubernetes默认使用的key-value数据存储系统,用于保存所有集群数据,支持分布式集群功能,生产环境使用需要为etcd数据提供定期备份机制。







Node节点:

kube-proxy::Kubernetes 网络代理运行在 node 上,它反映了 node 上 Kubernetes API 中定
义的服务,并可以通过一组后端进行简单的 TCP、UDP 流转发或循环模式(round robin))
的 TCP、UDP 转发,用户必须使用 apiserver API 创建一个服务来配置代理,其实就是 kubeproxy 通过在主机上维护网络规则并执行连接转发来实现 Kubernetes 服务访问。



kubelet:是主要的节点代理,它会监视已分配给节点的pod功能如下:
向master汇报node节点的状态信息
接受指令并在pod中创建docker容器
准备pod所需要的数据卷
返回pod的运行状态
在node节点执行容器健康检查

容器运行时环境
每个 容器都要提供一个容器运行时环境,它复制下载镜像并运行容器,kubelet并未固定链接至容器运行时的环境,而是以插件的方式载入配置的容器环境。

 

 

我们一直奔跑在进步的旅途



云原生周刊:一文读懂pod网络|2023.4.10

...篇文章旨在帮助读者理解Pod网络的概念和原理。Pod网络是Kubernetes中的一个重要概念,它描述了如何在一个集群中部署和运行应用程序。Pod网络是指使用容器网络插件(如Calico、Flannel等)来创建和管理容器网络连接的一种技术。在... 查看详情

一文读懂什么是vue

目录VUE是什么 Vue中的核心插件 VueRouterVuexaxioselement-uiVue前端整体架构 VUE是什么Vue(读音/vjuː/,类似于view)是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心... 查看详情

什么是mapreduce,一文带你读懂

什么是MapReduce?MapReduce是一种编程模型,用于大规模数据集的并行运算;是面向大数据并行处理的计算模型、框架和平台。MapReduce思想是什么?MapReduce的思想核心是“分而治之”。 所谓“分而治之”就是把一个复杂的... 查看详情

什么是spark?通俗易懂,一文读懂(代码片段)

Spark是什么官方定义:定义:*ApacheSpark是用于**大规模数据(large-scaladata)**处理的**统一(unified)**分析引擎。*分析引擎(计算引擎):我们目前接触的引擎有:MapReduce分布式计算引擎Spark分布式内存计算引擎计算引... 查看详情

一文读懂︱cyphercoincap是什么?

谈到DeFi借贷,大家一定会想到MakerDAO。DAO的理念十分简单,用户将一定价值的担保物抵押给DAO,然后系统生成一定量的Sai,用户可以取出这些Sai与美元进行兑换。当用户偿还了部分或者全部的Sai,以及产生的... 查看详情

一文读懂:什么是共识机制证明?

为保证存储在网络上的分片的完整性和可用性,存储提供方必须能用一个算法证明其持有数据分片。在此过程中,由存储提供方提供其存储证明让区块链网络通过智能合约自动执行数据验证。XFS运用了多种不同的共识机... 查看详情

一文让你读懂网站https证书是什么

谷歌多年来一直致力于推进HTTPS的加密普及,为了营造安全的上网环境,通过改变Chrome用户界面显示取得显著成效。从Chrome80开始不安全的HTTPS页面会直接标记“NotSecure”(不安全)。下面为不了解网站SSL证书的朋友收集了1... 查看详情

一文读懂什么是java中的自动拆装箱

基本数据类型基本类型,或者叫做内置类型,是Java中不同于类(Class)的特殊类型。它们是我们编程中使用最频繁的类型。Java是一种强类型语言,第一次申明变量必须说明数据类型,第一次变量赋值称为变量的初始化。Java基本类... 查看详情

一文读懂7天涨幅超200%的avax是什么?

这是白话区块链的第1409期原创 作者|Alexander出品|白话区块链(ID:hellobtc)近日,由于Avalanche基金会宣布将推出1.8亿美元的流动性赚币奖励计划AvalancheRush,鼓励更多应用和资产加入AvalancheDeFi生态。根据... 查看详情

rabbitmq一文读懂(代码片段)

目录1、RabbitMQ介绍应用场景其他消息队列选择RabbitMQ原因2、AMQP消息队列其他相关知识什么是AMQP?什么是JMS?3、RabbitMQ快速入门RabbitMQ的工作原理RabbitMQ消息发送和接受流程梳理RabbitMQ消息发送RabbitMQ消息接受RabbitMQ安装Rabbi... 查看详情

一文读懂线程池的工作原理(故事白话文)(代码片段)

前言本文以程序员做需求的例子,比喻线程池的工作过程。以故事白话的方式展开,跟大家阐述线程池工作原理,以方便大家更好理解线程池,谢谢阅读哈~什么是线程池?什么是核心线程?什么是阻塞队列?什么是非核心线程... 查看详情

一文读懂块状元素和内联元素(代码片段)

很多刚入坑前端的同学一直不懂div和span两个标签有什么区别。那么,有什么区别呢?答案就是div是块状元素,span是内联元素。那么,块状元素(block)和内联元素(inline)又有什么区别呢?块状元素:后面的元素会从另起一行... 查看详情

一文读懂:开源大数据调度系统taier1.2版本新增的「工作流」到底是什么?

一、什么是工作流?在阐述什么是工作流之前,先说一下工作流和普通任务的区别,在于依赖视图。普通任务本身他只会有自己的dag图,依赖视图是无边界的,不可控的,而工作流则是把整个工作流都展示出来,是有边界的,可... 查看详情

一文读懂如何部署具有外部数据库的高可用k3s(代码片段)

介绍您是否在以高可用模式部署Kubernetes并配置远程备份数据库时遇到了困难?本文将为您介绍如何在具有外部数据库Postgres的HA配置中部署K3s。K3s(https://k3s.io/)是用于物联网和边缘计算的认证Kubernetes发行版。我将它... 查看详情

一文带你读懂sdk测试

一.什么是SDKSDK,全称:softwaredevelopmentkit,软件开发工具包。软件开发工具包一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。软件开发工具广义上指辅助开... 查看详情

一文读懂aoe到底是什么!

一、背景1.1AoE是什么AoE(AIonEdge)是一个滴滴开源的终端侧AI集成运行时环境(IRE)。以“稳定性、易用性、安全性”为设计原则,帮助开发者将不同框架的深度学习算法轻松部署到终端高效执行,Github地址是 https://github.com/d... 查看详情

一文读懂前端与html5技术的区别!

  一文读懂前端与HTML5技术的区别!  现在好多人都把HTML5和前端的概念弄混淆了。例如,H5是HTML5的简称,而现在好多人把HTML5看成了是前端开发的总称。到底前端和HTML5有哪些区别?  什么是前端开发  以一个网站为例... 查看详情

一文读懂锁相环基本原理

1、锁相环是什么?锁相环电路是使一个特殊系统跟踪另外一个系统,更确切的说是一种输出信号在频率和相位上能够与输入参考信号同步的电路,它是模拟及数模混合电路中的一个基本的而且是非常重要的模块。2、... 查看详情