DevOps团队如何提高Kubernetes性能

今天,Kubernetes仍然是开发人员最需要的容器。Kubernets最初由 Google 工程师开发,作为跨本地、公共云、私有云或混合云托管的首选解决方案享誉全球。

来自Statista的报告显示,公共云中的Kubernetes市场份额在过去一年中上升了近30%。并且在拥有超过1000名员工的大型科技企业中,Kubernets的采用率也在一年中至少上升了20%。

然而,尽管Kubernets越来越受欢迎,但其中仍存在一些挑战,使得DevOps团队很难在使用K8s构建云原生应用程序的过程中发挥它的全部优势。对于DevOps团队而言,应用Kubernets时应关注哪些问题呢?

1、可观测性是关键

Kubernetes 有很多优点,因为容器生态系统中存在多个节点。这使得全面了解整个 K8s 环境是一项具有挑战性的任务。事实上,想要不依赖工具直接对K8s进行检测是非常困难的。根据Groundcover首席执行官兼联合创始人Shahar Azulay的说法,这一挑战的解决方案在于可观测性解决方案。

通过使用可观测性工具,DevOps 团队可以全面了解 Kubernetes 中发生的一切,从日志到指标和跟踪。这使 DevOps 团队能够快速修复错误并大规模构建应用程序。Azulay表示:“开发人员无需收集和分析每个字节可用数据或随机采样,而是可以通过在源头识别最有效的数据来智能地对其进行采样,然后仅选择要发送到其可观测性平台的数据。

借助可观测性工具,DevOps 团队可以减少系统宕机时间、降低成本并最终提高性能。当今一些最流行的可观测性工具包括Grafana、Groundcover和Prometheus。Azulay进一步指出,Groundcover代表了可观测性的新范式,因为“它打破了传统的APM模型,提供了最小的资源消耗,全面的可观测性和简单透明的定价。

2、将安全性放在首位

仅仅关注可观察性是不够的,这意味着你只能解决一半的问题。在红帽发布的关于 2023 年 Kubernetes的 安全状况的报告中,94% 的受访者在过去 12 个月内经历过安全事件,而 64% 的受访者表示由于 K8s 的安全问题导致了他们系统的延迟或影响部署。30%的受访者还认为漏洞是他们对容器和K8s环境的最大担忧。

在 Kubernetes 环境中运行应用程序时保持安全性非常必要。如果不将安全性放在首位,可能会对性能产生不利影响,增加补救成本,并产生持久的破坏性影响。使用K8s时,你必须时刻保持警惕,才能够从中获得你想要的性能提升。

ARMO开源社区副总裁Box Craig作为当今最受欢迎的Kubernetes安全工具Kubescape创建者之一,他指出:“与所有云软件一样,当你将Kubernetes访问权限委托给团队时,你要确保自己有与之契合的的护栏,这是非常重要的。

Craig进一步指出,为确保安全性而采取的一些步骤应该包括(但不限于):

  • 定期更新安全补丁。
  • 配置 K8s 集群时遵循行业最佳实践。
  • 检查并验证映射是否存在恶意代码、不正确的配置和其他漏洞。
  • 禁止用户访问云 API 数据。
  • 利用基于角色的访问控制 (RBAC),允许用户仅根据其角色和功能访问 K8s 资源。
  • 使用 Kubecsape 等安全工具保护您的 IDE、CI/CD 管道和集群。

3、修复存储问题

使用 Kubernetes 时的额外存储是有代价的,其承担了开发人员和组织产生的大部分成本。为了有效地减少开发人员的部署摩擦,大型企业通常会迁移到公共云环境并减少对本地服务器的依赖。

根据ARMO的首席技术官Ben Hirschberg的说法,解决这个问题的一种方法是“从源头分析数据,最大限度减少移动大量数据进行观察的需要。可以直接分析节点或应用程序内部的数据,并非所有数据都需要移动到外部存储或可观测性平台。通过在本地存储数据,DevOps团队可以避免不必要的数据传输成本,同时确保在需要时随时获得必要的数据。

 4、优先考虑互操作性  

大多数开发人员面临的K8s的另一个问题是互操作性,即应用程序在K8s中相互通信的能力。K8s上可互操作的云原生应用程序之间的通信并不像看起来那么简单。正如本文所指出的,缺乏互操作性可能会影响群集部署,因为它包含的应用程序实例可能会在群集中的单个节点上运行时出现问题。

解决这一挑战的一种方法是利用跨多个组织(如AWS、Google、IBM、SAP和Red Hat)的协作项目,为您的云原生应用程序提供服务。

5、结语

最好的 K8s 实践不是一次性修复;它们来自不断从错误中学习和重新调整底线。对于已经陷入技术工作和以创纪录速度部署容器的需求的 DevOps 团队来说,这可能需要花费更多时间。但幸运的是,可观测性工具可以确定将注意力集中在何处,并帮助针对安全性、互操作性、存储等关键问题提出有积极影响作用的建议和步骤。

6、Kubernetes DevOps 系统

这是一个基于Java Boot/.Net Core构建的简单、跨平台快速开发框架。前后端封装了上千个常用类,方便扩展;集成了代码生成器,支持前后端业务代码生成,实现快速开发,提升工作效率;框架集成了表单、报表、图表、大屏等各种常用的Demo方便直接使用;后端框架支持Vue2、Vue3。平台即可私有化部署,也可基于Kubernetes(K8S)部署。

支持DevOps,开箱即用的全功能容器平台:

  • 自动检出(Checkout)代码、测试、分析、构建、部署并发布

  • 可发现性、可观测性、安全性:一站式集成您所需的所有特性

  • 独特的微服务治理功能

技术架构

  1. 数据库兼容:MySQL(默认)、SQLServer、Oracle、PostgreSQL、达数据库、人大金仓数据库

  2. 分布式文件存储:兼容 MinIO 及多个云对象存储,如阿里云 OSS、华为云 OBS、七牛云 Kodo、腾讯云 COS 等

  3. 后端基于IDEA + Eclipse +Spring Tool Suite 等开发。

  4. 前端基于Node.js+Vue + TypeScript +Vite+Pinia+Pnpm+ Element-ui等开发。

  5. 移动端开发 Node.js 开发

应用体验:https://www.jnpfsoft.com/?csdn​​​​​​

  

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#_GDI+ 绘图编程入门

官网提供相关API GDI 基本图形功能_drawing 高级二维和矢量图形功能_drawing2D GDI 图像处理功能_Imaging GDI 排版功能_text Windows 窗体应用程序提供打印功能_Printing 像素 构成图像的最小单位就是像素;屏幕上显示不管是位图或者矢量图,当描述…

【80天学习完《深入理解计算机系统》】第十一天 3.4 跳转指令

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

学习ts(九)混入

对象混入 使用Object.assign()进行对象混入,最后的people会被识别为三种类型的联合类型 类混入 使用implement并非extnds实现混入。 属性在混入类里面定义,分别在类中占位,方法分别在类中定义,在混合类中占位。这告诉编译器这…

小程序如何手动变更会员卡等级

有时候需要商家手动变更会员卡等级,以让会员获取更多的福利和特权。下面就介绍一些小程序手动变更会员卡等级的常见方法和策略。 1. 找到指定的会员卡。在管理员后台->会员管理处,找到需要更改等级的会员卡。也支持对会员卡按卡号、手机号和等级进行…

22.查找,线性表的查找

目录 一. 查找的基本概念 二. 线性表的查找 (1)顺序查找(线性查找) (2)折半查找(二分或对分查找) (3)分块查找 一. 查找的基本概念 查找表是由同一类型的数据元素(…

macbookpro如何清理系统数据 macbookpro怎么删除软件

Macbook Pro是苹果公司的一款高性能笔记本电脑,它拥有强大的硬件和流畅的操作系统。然而,随着时间的推移,你可能会发现你的Macbook Pro变得越来越慢,储存空间也越来越紧张。这时候,你需要对你的Macbook Pro进行一些清理…

【Java从0到1学习】11 Java集合框架

1. Collection 1.1 Java类中集合的关系图 1.2 集合类概述 在程序中可以通过数组来保存多个对象,但在某些情况下开发人员无法预先确定需要保存对象的个数,此时数组将不再适用,因为数组的长度不可变。例如,要保存一个学校的学生信…

Redis 为什么这么快?

前言 作为一名后端软件工程师,工作中你肯定和 Redis 打过交道。但是Redis 为什么快呢?很多人只能答出Redis 因为它是基于内存实现的,但是对于其它原因都是模棱两可。 那么今天就一起来看看是Redis 为什么快吧: Redis 为什么这么快…

vue与vueComponent的关系

创建完组件之后 就会创建一个vueComponent构造函数 当注册成功这个组件并且在页面使用之后 就会创建一个vueComponent实例对象, 所以为了避免组件在使用过程中data对象中的值混乱 组件中的data要写成函数, 使得每次创建的组件实例对象都可以返回一…

批量爬虫采集大数据的技巧和策略分享

目录 1. 使用多线程或异步编程: 2. 设置适当的请求频率: 3. 使用代理服务器: 4. 处理异常和错误: 5. 监控和管理任务队列: 6. 数据存储和处理: 7. 随机化请求参数和头信息: 8. 定时任务…

前端组件库造轮子——Input组件开发教程

前端组件库造轮子——Input组件开发教程 前言 本系列旨在记录前端组件库开发经验,我们的组件库项目目前已在Github开源,下面是项目的部分组件。文章会详细介绍一些造组件库轮子的技巧并且最后会给出完整的演示demo。 文章旨在总结经验,开源…

大数据风控介绍

众所周知,金融是数据化程度最高的行业之一,也是人工智能和大数据技术重要的应用领域。随着大数据收集、存储、分析和模型技术日益成熟,大数据技术逐渐应用到金融风控的各个环节。个推作为专业的数据智能服务商,拥有海量数据资源&a…

3D姿态相关的损失函数

loss_mpjpe: 计算预测3D关键点与真值之间的平均距离误差(MPJPE)。 loss_n_mpjpe: 计算去除尺度后预测3D关键点误差(N-MPJPE),评估结构误差。 loss_velocity: 计算3D关键点的速度/移动的误差,评估运动的平滑程度。 loss_limb_var: 计算肢体长度的方差,引导生成合理的肢体长度…

【C++】C++ 引用详解 ⑤ ( 函数 “ 引用类型返回值 “ 当左值被赋值 )

文章目录 一、函数返回值不能是 " 局部变量 " 的引用或指针1、函数返回值常用用法2、分析函数 " 普通返回值 " 做左值的情况3、分析函数 " 引用返回值 " 做左值的情况 函数返回值 能作为 左值 , 是很重要的概念 , 这是实现 " 链式编程 &quo…

改进YOLO系列:10.添加NAMAttention注意力机制

添加NAMAttention注意力机制 1. NAMAttention注意力机制论文2. NAMAttention注意力机制原理3. NAMAttention注意力机制的配置3.1common.py配置3.2yolo.py配置3.3yaml文件配置1. NAMAttention注意力机制论文 论文题目:NAM: Normalization-based Attention Module 论文…

【雷达】接收和去噪L波段雷达接收到的信号研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

空时自适应处理用于机载雷达——机载阵列雷达信号环境(Matla代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Neo4j实现表字段级血缘关系

需求背景 需要在前端页面展示当前表字段的所有上下游血缘关系,以进一步做数据诊断治理。大致效果图如下: 首先这里解释什么是表字段血缘关系,SQL 示例: CREATE TABLE IF NOT EXISTS table_b AS SELECT order_id, order_status F…

【Mac】编译Spring 源码和Idea导入

今天我们开始Spring源码的阅读之旅。阅读Spring的源码的第一步当然是编译Spring源码。首先我们要去GitHub上将spring源码给clone下来。 笔者编译环境如下: Spring版本:5.28 https://github.com/spring-projects/spring-framework/tree/v5.2.8.RELEASE …

JavaScript——为什么静态方法不能调用非静态方法

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…