2023年基准Kubernetes报告:6个K8s可靠性失误

news2024/10/10 10:32:54

图片

云计算日益成为组织构建应用程序和服务的首选目的地。尽管一年来经济不确定性的头条新闻主要集中在通货膨胀增长和银行动荡方面,但大多数组织预计今年的云使用和支出将与计划的相同(45%),或高于计划的(45%)。Flexera公司2023年云现状报告中的新数据显示,仅有10%的受访者预计云支出会比计划的略低或显著降低。无论在支出方面的计划如何,许多组织都在寻找方法来控制高昂的云成本,同时确保Kubernetes工作负载的可靠性。但是,将成本尽可能降低并不意味着您不需要确保平台和服务的用户满意度。

通过分析超过150,000个工作负载和数百家组织的数据,Fairwinds制作了2023年Kubernetes基准报告。该报告将2022年的数据与上一年的基准进行了比较。行业报告显示,尽管在开发和生产环境中采用Kubernetes的情况增加,但对Kubernetes最佳实践的遵循仍然对许多组织构成挑战。不幸的是,缺乏遵循通常会导致现实世界中的后果,比如增加的安全风险、未受管控的云成本以及云应用程序和服务可靠性的降低。基准中有六个与可靠性相关的领域,每个领域都与配置错误相关联。

1. 内存限制和内存请求缺失

根据Kubernetes最佳实践,您应该始终在工作负载上设置资源限制和请求,但对于大多数人来说,很难确定每个应用程序应该使用哪些值。通常,这会导致要么根本不设置请求或限制,要么将它们设置得太高,然后再也不调整它们。根据2021年的基准数据,41%的组织为超过90%的工作负载设置了内存请求和限制。但在最新的报告中,这个比例下降到仅为17%。这可能是由于开发人员和DevOps团队不知道要设置什么限制,Kubernetes使用量增加而没有增加配置可见性,或者两者的结合。调整每个Pod的内存限制和请求可以确保您的Kubernetes集群扩展操作正常运行。适当设置内存限制和请求可以帮助您确保Kubernetes集群上的应用程序运行尽可能高效和可靠

2. 存活探针和就绪探针缺失

存活探针用于确定容器是否在运行。在Kubernetes中,您使用探针定期监视应用程序的健康状况。当存活探针检测到失败状态时,Kubernetes会自动重新启动容器,将您的服务恢复到可运行状态。您应该在每个Pod的每个容器中放置一个存活探针;如果没有存活探针,有故障或不起作用的Pod将无限期地运行,消耗宝贵的资源并可能导致应用程序错误。最新的基准报告显示,83%的组织对超过10%的工作负载未设置存活探针或就绪探针。而在前一年,65%的组织对超过10%的工作负载未设置存活探针或就绪探针。可喜的是,这个问题并没有得到改善。

3. 拉取策略未设置为Always

有时团队会依赖Docker容器镜像的缓存版本,这可能导致可靠性问题。默认情况下,如果一个节点上没有缓存该镜像,它将始终被拉取。这可能导致每个节点上运行不同版本的镜像。它还可能在没有直接访问ImagePullSecret的情况下提供对镜像的访问权限。在最新的报告中,25%的组织几乎对所有的工作负载都依赖于缓存镜像,这与前一年的15%相比显著增加。这种增加对应用程序的可靠性产生了负面影响。

4. 部署副本缺失

在今年的基准测试中,新增了对仅有一个副本的部署进行检查,这也可能对可靠性产生负面影响。根据数据,25%的组织有超过一半的工作负载没有副本。这会影响可靠性,因为如果一个节点崩溃,当副本数为1时,部署将重启应用服务,但在此期间将没有可用的副本导致服务短时间内不可用。部署多个副本可以帮助组织确保容器稳定可用。

5. 缺失CPU限制

根据2021年的数据,36%的组织在少于10%的工作负载上缺少CPU限制。最新的报告显示,受影响的工作负载数量在各类工作负载中都增加了。86%的组织的工作负载中超过10%受到影响。指定CPU限制很重要,因为没有限制,容器将没有任何上限,可以消耗全部节点上可用的CPU,导致性能减慢并耗尽所有CPU资源

6. 缺失CPU请求

之前,只有50%的组织在至少10%的工作负载上缺少请求。最新的基准报告显示,78%的组织的工作负载中有超过10%受到影响。工作负载中缺少CPU请求的组织数量从0%上升到17%。如果允许一个单独的Pod使用全部节点的CPU和内存,它可能会使其他Pod的资源匮乏。适当设置资源请求可以增加应用程序和服务的可靠性,因为它确保Pod将拥有访问所需资源的权限,并防止其他Pod占用节点上的所有可用资源。

Kubernetes的可靠性仍然是一个挑战

Kubernetes为组织提供了出色的价值,并支持按需扩展和灵活性。与此同时,它是一个复杂的环境,有很多可配置项。学习如何适当地调整它们以满足您的环境和业务需求可能会很具有挑战性,并容易出错。Kubernetes基准报告可以帮助您了解其他组织在哪些方面存在问题,并为您提供有助于使组织的部署尽可能安全、可靠和高效的改变。

 

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

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

相关文章

Vite+Typescript+Vue3学习笔记

ViteTypescriptVue3学习笔记 1、项目搭建 1.1、创建项目(yarn) D:\WebstromProject>yarn create vite yarn create v1.22.19 [1/4] Resolving packages... [2/4] Fetching packages... [3/4] Linking dependencies... [4/4] Building fresh packages...success Installed…

MyBatisPlus之DQL编程控制

MyBatisPlus之DQL编程控制 1. 条件查询方式1.1 条件查询1.1.1 方式一:按条件查询1.1.2 方式二:lambda格式按条件查询1.1.3 方式三:lambda格式按条件查询(推荐) 1.2 组合条件1.2.1 并且关系(and)…

【算法 -- LeetCode】(027) 移除元素

1、题目 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出…

【Linux进程】进程控制(中) {进程等待:等待的必要性,进程等待的方法wait,waitpid,退出状态status,waitpid非阻塞等待}

三、进程等待 3.1 进程等待必要性 之前讲过,子进程退出,父进程如果不管不顾,就可能造成‘僵尸进程’的问题,进而造成内存泄漏。另外,进程一旦变成僵尸状态,那就刀枪不入,“杀人不眨眼”的kill …

easyexcel 将对应列的格式改为数字或者文本格式

1.在easyexcel 导出excel时 需要将某个列的格式指定,例如指定为数字格式 例如 需要把单元格格式设置为数值,并且保留小数点后三位,按道理来说应该是这样子设置 /** * test, 最终导出值 */ ExcelProperty(value "test")…

01 linux基础(1)

环境安装 解压,从vmware打开虚拟机。 设置密码:1 打开终端:ctrlaltt linux介绍 Linux的发展 1)1969年,由kenthompson在AT&T贝尔实验室实现的。使用的是汇编语言。 2)1970年,KenThompson…

【Linux后端服务器开发】HTTPS协议

目录 一、加密算法 二、中间人攻击 三、CA认证 一、加密算法 HTTPS协议是什么?HTTPS协议也是一个应用层协议,是在HTTP协议的基础上引入了一个加密层。 HTTP协议内容是按照文本的方式明文传输的,这就导致在传输过程中出现一些被篡改的情况…

Java使用FFmpeg实现mp4转m3u8

Java使用FFmpeg实现mp4转m3u8 前言FFmpegM3U8 一、需求及思路分析二、安装FFmpeg1.windows下安装FFmpeg2.linux下安装FFmpegUbuntuCentOS 三、代码实现1.引入依赖2.修改配置文件3.工具类4.Controlle调用5.Url转换MultipartFile的工具类 四、播放测试1.html2.nginx配置3.效果展示…

QT读写ini文件

QT读写ini文件 源代码文件结构mysql.hmysql.cppmain.cpp my.ini文件截图运行截图QSettings 最开始的需求是使用qt读取不同电脑上的MySQL的my.ini文件实现在不同电脑上也可以成功登录数据库,不用担心密码和用户名不同的问题 到之后发现其实并没有什么用,因…

一文搞定Java IO流,输入流、输出流、字符流、缓冲流,附详细代码示例

目录 一、InputStream1、FileInputStream的代码示例2、ByteArrayInputStream的代码示例3、PipedInputStream的代码示例 二、 OutputStream1、FileOutputStream代码示例2、ByteArrayOutputStream代码示例:3、PipedOutputStream代码示例: 三、字符输入流Re…

7.25 作业 QT

手动实现登录框&#xff1a; widget.cpp: #include "widget.h" #include <QMovie> Widget::Widget(QWidget *parent): QWidget(parent) {//设置尺寸this->resize(800,600); //设置宽高//设置固定尺寸this->setFixedSize(800,600);//窗口标题操作qDebu…

C数据结构与算法——顺序栈 应用(C语言纯享版 迷宫)

实验任务 (1) 掌握顺序栈及其C语言的表示&#xff1b; (2) 掌握入栈、出栈等基本算法的实现&#xff1b; (3) 掌握顺序栈的基本应用&#xff08;求解迷宫通路&#xff09;。 实验内容 使用C语言实现顺序栈的类型定义与算法函数&#xff1b;编写main()函数并根据需要修改、补…

❓“如何创业?互联网创业又该如何入手?

&#x1f31f;5大创业建议&#xff0c;让你轻松入门&#xff01; 作为一名互联网创业者&#xff0c;我想分享一下我的创业经验。下面是我的五个建议&#xff0c;希望对你有所帮助&#xff01; &#x1f31f;了解市场需求 在创业之前&#xff0c;了解市场需求非常重要。你需要研…

【Rust日报】2023-07-24 使用 Rust 重写的InfluxDB 3.0

使用 Rust 重写的InfluxDB 3.0 InfluxDB 是一个开源的、分布式的时序数据库&#xff0c;用于存储和分析时间序列数据, 于 2013 年由 Brian Bondy 和 Nicholas Zakhariev 创立。 InfluxDB 最初是用 Go 语言编写的。 2018 年&#xff0c;InfluxData 决定将 InfluxDB 重写为 Rust …

kotlin 编写一个简单的天气预报app(一)

使用Android Studio开发天气预报APP 今天我来分享一下如何使用Android Studio开发一个天气预报APP。在文中&#xff0c;我们将使用第三方接口获取实时天气数据&#xff0c;并显示在APP界面上。 步骤一&#xff1a;创建新项目 首先&#xff0c;打开Android Studio并创建一个新…

Flutter 最佳实践和编码准则

Flutter 最佳实践和编码准则 视频 前言 最佳实践是一套既定的准则&#xff0c;可以提高代码质量、可读性和可靠性。它们确保遵循行业标准&#xff0c;鼓励一致性&#xff0c;并促进开发人员之间的合作。通过遵循最佳实践&#xff0c;代码变得更容易理解、修改和调试&#xff…

【如何训练一个中译英翻译器】LSTM机器翻译seq2seq字符编码(一)

系列文章 【如何训练一个中译英翻译器】LSTM机器翻译seq2seq字符编码&#xff08;一&#xff09; 【如何训练一个中译英翻译器】LSTM机器翻译模型训练与保存&#xff08;二&#xff09; 【如何训练一个中译英翻译器】LSTM机器翻译模型部署&#xff08;三&#xff09; 【如何训…

新能源电动车充电桩控制主板的技术

新能源电动车充电桩控制主板的技术 你是否曾经遇到过电动车行驶到一半没电的情况?这不仅尴尬&#xff0c;还可能对你的生活造成困扰。然而&#xff0c;随着充电桩主板技术的出现&#xff0c;这个问题得到了有效的解决。那么&#xff0c;这个技术到底包括哪些方面呢?让我们一起…

IDEA代码自动格式化工具

1.自动import 在IDEA中&#xff0c;打开 IDEA 的设置&#xff0c;找到 Editor -> General -> Auto Import。勾选上 Add unambiguous imports on the flyOptimize imports on the fly (for current project) 2.gitee 提交格式化 设置方法如下: 1.打开设置 2.找到版本…

如何写好测试报告?

目录 一、目标 二、模板的使用 三、修订记录 四、内容应该清晰易懂&#xff0c;简明扼要 五、绝不放过一个错字 六、遗留问题单 七、产出成果恰当呈现 一、目标 本文介绍测试人员编写软件测试报告常见的疏漏&#xff0c;以便大家避免&#xff0c;更好让测试成果呈现给客…