K8S概述及用途

news2024/11/29 7:52:42

K8S概述

1.K8S说明

K8S(Kubernetes) 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。

Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。 Google 在 2014 年开源了 Kubernetes 项目。

K8s是一个最初由Google开发的,用于自动化部署、扩展和管理容器化应用的开源容器编排器技术。

K8s使部署和管理微服务架构应用程序变得很简单。它通过在集群之上形成一个抽象层来实现这一点,允许开发团队平滑地部署应用程序,而 K8s主要处理以下任务:

控制和管理应用程序对资源的使用

自动负载均衡应用程序的多个实例之间请求

监控资源使用和资源限制,为了可以自动阻止应用消耗过多的资源并且可以再次恢复它们

如果主机资源耗尽或主机死机,将应用程序实例从一台主机迁移到另一台主机是一个可行的选项

当有新的主机加入集群时,新增加的额外资源可以被自动使用

2.容器引擎说明

容器引擎允许你绑定和运行一个应用在一个容器里,这是一个松散隔离的环境。由于隔离性和安全性,你可以在一台主机上操作多个容器。

容器引擎利用了操作系统的内核资源隔离特性,可以在同一个操作系统上运行多个容器。人们通常把容器引擎比作虚拟机(VMs)。

另一方面,虚拟机利用物理硬件资源抽象层之上可执行代码封装了整个操作系统。

3.容器说明

一个容器镜像是一个可运行的软件包,其中包含了一个完整的可执行程序,包括代码和运行时需要应用、系统库和全部重要设置的默认值。

应用程序通过使用容器与底层的宿主机架构解耦。如下图所示,我们可以利用底层机器在容器引擎之上运行多个容器。这促进了容器在各种操作系统和云场景中的部署。

容器通过容易扩展和部署应用程序的特性帮助企业实现现代化。然而,重新建立一个全新的基础环境,容器也带来了额外的问题和复杂性。

每天有数千个容器实例被大型和小型软件组织部署,这给他们的管理带来了持续增长的挑战。那么,他们是如何做到的呢?

4.容器编排

容器编排与容器的生命周期管理相关,特别是在大型动态环境中。软件团队用容器编排器来控制和自动化容器管理的各种任务。

容器编排器可以工作在使用容器的任何环境。它可以帮助你在多个环境中部署相同的程序,而不需要重新编写它。

5.容器编排工具

容器编排技术提供了一个控制容器和微服架构的框架。容器生命周期管理可以通过各种容器编排器解决方案来实现,Kubernetes、Docker Swarm和Apache Mesos是三种常见的解决方案/编排工具。

Docker Swarm是Docker原生工具,非常容易安装和配置。K8s需要大量手工干预来配置其组件,例如 etcd、flannel 和 docker 引擎。

与其他工具相比,K8s凭借其各种优势和功能特性在行业占据主导地位。

6.为什么市场推荐K8s

K8s是第一个由云原生计算基金会(Cloud Native Computing Foundation, CNCF)和谷歌基金会倡议的项目,是继Linux之后增长最快的开源软件项目。

为什么现在有很多企业依赖K8s来满足他们的容器编排需求? 原因有很多:

可移植性和灵活性:K8s有很强的兼容性,因为它可以在各种基础设施和环境设置下运行。大多数其他编排器没有这种灵活性。它们被锁定在特定的运行时或基础架构中。

开源:CNCF负责管理K8s,这是一个完全开源、由社区驱动的项目。它有许多重要的企业赞助商,但没有一家公司能“控制”这个平台或者控制它的发展方向。

多云兼容性:K8s不但可以将工作负载托管在单个云上,而且可以将工作负载分布在多个云上。 K8s也能轻松地将其环境从一个云扩展到另一个云。虽然其它编排器也能支持多云架构,但K8s在多云兼容性性方面可以完全超越它们。

市场领导者:大部分公司都在使用K8s。根据红帽公司的一项调查,K8s被客户广泛使用 (88%),尤其在生产环境中(74%)。

7.K8s架构

K8s是一个架构良好的分布式系统的例子。它将集群中的所有机器都视为单个资源池的一部分。

K8s与其他成熟的分布式系统一样,有两层:头节点和工作节点。

头节点或主节点由控制面和工作节点应用程序组成。一个K8s集群由许多头节点和工作节点组成。

K8s引入了很多术语来描述应用程序的结构。 我们将带大家学习每个术语。
在这里插入图片描述

8.K8s组件

头节点/主节点和工作节点由它自己的组件组成,可以确保编排器稳定地运行。

控制平面

控制平面是管理员和用户管理不同节点的地方。它通过HTTP调用接收命令或者连接到系统并且运行命令行脚本。顾名思义,它控制了K8s与应用程序的交互方式。

API 服务器

API 服务器为K8s集群提供了一个REST接口。 所有在pod上激活的服务和别的对象都是可以用可编程的方式与与终端进行交互。

调度器

调度器负责将任务分配给各个节点。它监控资源容量并保证工作节点的性能保持在可接受的范围内。

控制器管理器

K8s控制器管理器是管理K8s核心控制循环的服务。它负责确保集群的共享状态正常运行。

Etcd

K8s使用了Etcd,一个提供分布式键值存储的数据库,用来共享集群的整体状态的信息。

节点

节点是运行了pod的物理机或虚拟机。控制平面管理集群中的每个节点,该节点包含运行 pod所需的服务。

Pods

K8s pod 是K8s管理容器集的最小单位。 每个pod有一个分配给pod中的所有容器的单独的IP 地址。在pod中的容器内存和存储资源是共享的。当应用程序只有一个进程时,pod 也可以有一个容器。

Kubelet

Kubelet是一个工作节点组件。它的任务是跟踪pod及其容器的运行状态。它与pod的YAML 或JSON描述文件相关。Kubelet检查 pod 规格并确定 pod 是否健康。

Kube代理

Kube代理是一个网络代理和负载均衡器,充当每个节点和API服务器之间的连接。它在集群中的每个节点上运行,并允许你从内部和外部连接到pod。

Kubectl

Kubectl是K8s的命令行工具。它用于部署应用程序、监控和控制集群资源以及查看日志。

从用户的角度来看,Kubectl 是你的K8s的控制面板。它使你能够执行所有K8s操作。从技术角度来看,Kubectl 是K8s API的客户端。

K8S用途

容器是打包和运行应用程序的好方式。在生产环境中,你需要管理运行应用程序的容器,并确保不会停机。 例如,如果一个容器发生故障,则需要启动另一个容器。如果系统处理此行为,会不会更容易?

这就是 Kubernetes 来解决这些问题的方法! Kubernetes 为你提供了一个可弹性运行分布式系统的框架。 Kubernetes 会满足你的扩展要求、故障转移、部署模式等。 例如,Kubernetes 可以轻松管理系统的 Canary 部署。
服务发现和负载均衡

Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器,如果进入容器的流量很大, Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定。

存储编排

Kubernetes 允许你自动挂载你选择的存储系统,例如本地存储、公共云提供商等。

自动部署和回滚

你可以使用 Kubernetes 描述已部署容器的所需状态,它可以以受控的速率将实际状态 更改为期望状态。例如,你可以自动化 Kubernetes 来为你的部署创建新容器, 删除现有容器并将它们的所有资源用于新容器。

自动完成装箱计算

Kubernetes 允许你指定每个容器所需 CPU 和内存(RAM)。 当容器指定了资源请求时,Kubernetes 可以做出更好的决策来管理容器的资源。

自我修复

Kubernetes 重新启动失败的容器、替换容器、杀死不响应用户定义的 运行状况检查的容器,并且在准备好服务之前不将其通告给客户端。

密钥与配置管理

Kubernetes 允许你存储和管理敏感信息,例如密码、OAuth 令牌和 ssh 密钥。 你可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥。

在需求日益增近、频繁变更的现在 K8S 可以更好的完成部署、切换、容错、监控能需求;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/152773.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

海量数据存储面临的问题

海量数据存储面临的问题海量数据存储面临的问题成本高性能低可扩展性差如何实现分布式文件存储如何支撑高效率的计算分析如何解决海量数据存储的问题如何解决海量数据文件查询便捷问题如何解决大文件传输效率慢的问题如何解决硬件故障数据丢失问题如何解决用户查询视角统一规整…

pyhon把程序打包为whl

首先需要一个库:setuptools如果是conda环境的话,这个包是自带的,不需要另外安装。首先把需要打包的py文件放在一个文件夹内(我的文件夹名为coordTrans,记住这个名字,后面要用)。同时&#xff0c…

dll修复工具下载,dll修复工具注意事项

Dll文件的缺失相信很多人都遇见过吧,只要缺失了一个这样的dll文件,我们的游戏或者软件程序就启动不了了,所以我们就需要去修复它,目前修复有几种方法,最简单的,最适合电脑小白的,那就是dll修复工…

Vue3——第四章(响应式基础:reactive、ref)

一、用reactive()声明响应式状态 我们可以使用 reactive() 函数创建一个响应式对象或数组: 响应式对象其实是 JavaScript Proxy,其行为表现与一般对象相似。不同之处在于 Vue 能够跟踪对响应式对象属性的访问与更改操作。 要在组件模板中使用响应式状…

java后端第六阶段:SpringMVC

1、Spring IoC(Inversion of Controller)控制反转 使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象中创建控制权由程序转移到外部,此思想称为控制反转 Spring技术对IoC思想进行了实现 Spring提供了一…

第四十九讲:神州路由器IPv6 OSPFv3和RIPng路由的配置

神州路由器支持IPv6的内部网关路由协议常用的有OPSFv3和RIPng。 实验拓扑图如下所示 配置要求:在两台路由器上启用IPv6 routing, 在接口上配子ipv6协议后,通过配置RIPng和OSPFv3相关命令,观察学习到的路由。 配置步骤&#xff1…

产品试用记录

某产品试用记录 还可以选屏哦

【PWA学习】3. 让你的 WebApp 离线可用

引言 PWA 其中一个令人着迷的能力就是离线(offline)可用 即使在离线状态下,依然可以访问的 PWA离线只是它的一种功能表现而已,具体说来,它可以: 让我们的Web App在无网(offline)情况下可以访问,甚至使用部分功能&#…

Redis哨兵模式搭建

以下配置机器部署ip为 a、b、c,其中a为master节点 需提前创建 /app/user/oms/redis/data 目录 1.1上传 redis-5.0.5.zip 到对应目录,解压 unzip redis-5.0.5.zip # 生成 redis-5.0.5 目录 1.2 修改配置文件 maxclients 10000 #20000 &#xff0…

接口测试实战| GET/POST 请求区别详解

在日常的工作当中,HTTP 请求中使用最多的就是 GET 和 POST 这两种请求方式。深度掌握这两种请求方式的原理以及异同之处,也是之后做接口测试一个重要基础。GET、POST 的区别总结请求行的 method 不同;POST 可以附加 div,可以支持 …

概率论【离散型二维变量与连续性二维变量(下)】--猴博士爱讲课

6.连续型二维变量(下) 1/7 求边缘分布函数 边缘概率密度 边缘概率密度 2/7 求边缘密度函数 边缘概率密度 3/7 判断连续型二维变量的独立性 F(x,y) Fx(X) * Fy(Y)那么X、Y互相独立 f(x,y) fx(X) * fy(Y)那么X、Y互相独立 这种题目带入验证就可以了 先求…

百度举办首个人机共创大会,最强技术天团邀约全球开发者

1月10日,百度举办Create AI开发者大会(下称“Create大会”)。作为首个“人机共创大会”,AIGC(利用AI技术自动生成内容的生产方式)技术被深度应用,创造、搭建、连接了多个科技感爆棚的数字化演讲…

powershell ISE 多个选项卡,替换命令行黑窗口

安装powershell ISE设置权限解决方案1.管理员打开PowerShell2. 执行Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser运行脚本自定义函数,function start_service([string]$Name,$p,$r) {$NewTab $psISE.PowerShellTabs.Add()$NewTab.Displa…

ES之module

模块:一个一个的局部作用域的代码块 模块系统需要解决的主要问题 模块化的问题消除全局变量管理加载顺序 Module的基本用法 模块里面都是局部无法访问 切换幻灯片示例 Base.js // 默认参数 const DEFAULTS {// 初始索引initialIndex: 0,// 切换时是否有动画a…

Repvgg推理时融合BN

Batch Normalization是谷歌研究员于2015年提出的一种归一化方法,其思想非常简单,一句话概括就是,对一个神经元(或者一个卷积核)的输出减去统计得到的均值,除以标准差,然后乘以一个可学习的系数&…

数字孪生|可视化图表之堆叠面积图

上一篇文章为大家介绍了分组条形图的相关内容,本文介绍的是堆叠面积图。 堆叠面积图是一种特殊的面积图,可以用来比较在一个区间内的多个变量。堆叠面积图和普通的面积图基本一样,唯一的区别就是堆叠面积图每个数据系列的起点都是基于前一个数…

再学C语言30:函数——ANSI C的函数原型

一、ANSI C关于函数原型的规则 ANSI C在函数声明中同事说明所使用的的参数类型,即在函数原型中声明返回值类型、参数、参数个数、参数类型 int function(int a, int b); // 形式一 int function(int, int); // 形式二// 以上两种形式的定义均满足规范要求 好…

基于无线通信物联网的水库安全监测系统

水库安全监测一直是我国防洪防汛工作的重点,库区的雨量、水位的实时监测,建立水库监测系统能够有效防止洪涝灾害的发生,确保水库和下游地区的安全。 物通博联推出的水库安全监测系统是基于无线通信物联网技术打造的系统平台,由雨…

路由器基础

交换机基本功能 1.基于源MAC地址学习2.基于目标MAC地址转发3.数据过滤4.防环 交换机基于MAC地址表进行转发,MAC地址表默认自动产生,MAC地址组成三元组:Mac地址、端口、VLAN。默认MAC条目信息存活时间为300s并且可以修改 泛洪(洪…

局域网主机状态管理工具LanNeighborManager

有鉴于以下两种需求,做了一个小工具,查看局域网内的IP占用情况及联通状态:1)在现场需要分配静态IP,但是不确定已经被占用的IP地址;2)查看当前局域网内当前活跃的IP地址。该工具的主要功能有&…