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

图片

云计算日益成为组织构建应用程序和服务的首选目的地。尽管一年来经济不确定性的头条新闻主要集中在通货膨胀增长和银行动荡方面,但大多数组织预计今年的云使用和支出将与计划的相同(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基准报告可以帮助您了解其他组织在哪些方面存在问题,并为您提供有助于使组织的部署尽可能安全、可靠和高效的改变。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MIT 6.830数据库系统 -- lab four

MIT 6.830数据库系统 -- lab four 项目拉取引言事务、锁 & 并发控制事务ACID特性两阶段锁 Recovery and Buffer ManagementGranting Locks(授予锁)练习1 Lock Lifetime练习2 Implementing NO STEAL练习3 事务练习4 死锁和中止练习5 项目拉取 原项目使用ant进行项目构建&am…

微服务系列(1)-who i am?

微服务系列(1)-我是谁 应用架构的演化 简单来说系统架构可以分为以下几个阶段:复杂的臃肿的单体架构-SOA架构-微服务 单体架构及其所面临的问题 在互联网发展初期,用户数量少,流量小,硬件成本高。因此…

96、Kafka中Zookeeper的作用

Kafka中zk的作用 它是一个分布式协调框架。很好的将消息生产、消息存储、消息消费的过程结合在一起。在典型的Kafka集群中, Kafka通过Zookeeper管理集群配置,选举leader,以及在Consumer Group发生变化时进行rebalance。Producer使用push模式将消息发布到broker,Consumer使用…

leetcode做题笔记37

编写一个程序,通过填充空格来解决数独问题。 数独的解法需 遵循如下规则: 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) 数独部分…

IDEA导入微服务项目后自动将微服务展示在service面板中

有时候,不会自动将微服务展示在service面板中。 添加service面板: service面板: 更新所有maven,就可以自动将微服务展示在service面板中。

小程序----配置原生内置编译插件支持sass

修改project.config.json配置文件 在 project.config.json 文件中,修改setting 下的 useCompilerPlugins 字段为 ["sass"], 即可开启工具内置的 sass 编译插件。 目前支持三个编译插件:typescript、less、sass 修改之后可以将原.w…

线程的同步

一、互斥锁 java语言中,引入了对象互斥锁的概念,来保证共享数据操作的完整性。每个对象都对应与一个可称为“互斥锁”的标记,这个标记用来保证在任一时刻,只能有 一个线程访问该对象。关键字synchronized用来与对象的互斥锁联系。…

fpga_pwm呼吸灯(EP4CE6F17C8)

文章目录 一、呼吸灯二、代码实现三、引脚分配 一、呼吸灯 呼吸灯是指灯光在微电脑的控制之下完成由亮到暗的逐渐变化,使用开发板上的四个led灯实现1s间隔的呼吸灯。 二、代码实现 c module pwm_led( input clk ,input rst_n ,output reg [3:0] led ); …

SAP从放弃到入门系列之批次派生-Batch Derivation-Part2

文章目录 一、派生的类型1.1 静态派生1.2 动态派生 二、派生的方向 通过批次派生的基本配置和简单功能的介绍,大家应该对批次派生有一个基本的了解,这篇文章从批次派生的类型和批次派生的方向两个维度更深入的聊一下它的功能。 一、派生的类型 派生的类…

Vue 渲染流程详解

在 Vue 里渲染一块内容,会有以下步骤及流程: 第一步,解析语法,生成AST 第二步,根据AST结果,完成data数据初始化 第三步,根据AST结果和DATA数据绑定情况,生成虚拟DOM 第四步&…

Spring Cloud【为什么需要监控系统、Prometheus环境搭建、Grafana环境搭建 、微服务应用接入监控 】(十七)

目录 全方位的监控告警系统_为什么需要监控系统 全方位的监控告警系统_Prometheus环境搭建 全方位的监控告警系统_Grafana环境搭建 全方位的监控告警系统_微服务应用接入监控 全方位的监控告警系统_为什么需要监控系统 前言 一个服务上线了后,你想知道这个服…

Leetcode 114. 二叉树展开为链表

题目描述 题目链接:https://leetcode.cn/problems/flatten-binary-tree-to-linked-list/description/ 思路 先序遍历展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。 List list …

Oracle 迁移 Hive 过程中遇到的问题总结

前言 最近一个小伙伴在做从 Oracle 到 Hive 的业务迁移工作,在迁移过程中属实遇到了一些坑,今天就来汇总一下这些坑,避免以后大家其他业务迁移的时候再出现类似的问题,即使出现了也可以拿过来进行对照解决。 问题1:Distinct window functions are not supported: count(…

shell 脚本通过 dumpsys SurfaceFlinger --latency 数据计算 FPS 和评价流畅度。

目录 前言: 开篇前述: 一、设计初衷 二、设定预期倒推查找解决方案 设计实现部分 一、确定数据来源原因(dumpsys SurfaceFlinger --latency) 二、根据需求确定计算规则 三、代码实现 四、监控数据可视化交互结果设计 前言…

ES6基础知识二:ES6中数组新增了哪些扩展?

一、扩展运算符的应用 ES6通过扩展元素符…&#xff0c;好比 rest 参数的逆运算&#xff0c;将一个数组转为用逗号分隔的参数序列 console.log(...[1, 2, 3]) // 1 2 3console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5[...document.querySelectorAll(div)] // [<div>, &l…

APISIX 安全评估

背景 有大佬已经对 [apisix攻击面](https://ricterz.me/posts/2021-07-05-apache-apisix-attack- surface-research.txt)做过总结。 本文记录一下自己之前的评估过程。 分析过程 评估哪些模块&#xff1f; 首先我需要知道要评估啥&#xff0c;就像搞渗透时&#xff0c;我得…

Websocket协议-http协议-tcp协议区别和相同点

通讯形式 单工通讯-数据只能单向传送一方来发送数据&#xff0c;另一方来接收数据 半双工通讯-数据能双向传送但不能同时双向传送 全双工通讯-数据能够同时双向传送和接受 注&#xff1a;http的通讯方式是分版本 http1.0&#xff1a;单工。因为是短连接&#xff0c;客户端…

【设计模式——学习笔记】23种设计模式——建造者模式Builder(原理讲解+应用场景介绍+案例介绍+Java代码实现)

介绍 建造者模式又叫生成器模式&#xff0c;是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别)&#xff0c;使这个抽象过程的不同实现方法可以构造出不同属性的对象建造者模式是一步一步创建一个复杂的对象&#xff0c;它允许用户只通过指定复杂对象的类型和…

C 程序 运算符

文章目录 1、算术运算符2、关系运算符3、逻辑运算符4、位运算符5、赋值运算符6、杂项运算符 ↦ sizeof & 三元7、运算符优先级 1、算术运算符 #include <stdio.h>int main() {int a 21;int b 10;int c ;c a b;printf("Line 1 - c 的值是 %d\n", c );c …

【mac系统】mac系统调整妙控鼠标速度

当下环境&#xff1a; mac系统版本&#xff0c;其他系统应该也可以&#xff0c;大家可以自行试下&#xff1a; 鼠标 mac妙控鼠标&#xff0c;型号A1657 问题描述&#xff1a; 通过mac系统自带的鼠标速度调节按钮&#xff0c;调到最大后还是感觉移动速度哦过慢 问题解决&…