DevOps 团队如何提高 Kubernetes 的表现

运维
您是否在利用Kubernetes的全部优势方面面临挑战?根据专家的说法,以下是一些改变和提高性能的方法。

Kubernetes(也称为K8s)仍然是开发人员中需求最高的容器技术。K8s最初是由Google的工程师开发的,作为一种解决方案,它在本地、公共云、私有云或混合云的托管中都广受欢迎。Statista的数据显示,2021年公共云中Kubernetes的市场份额为16%,到2022年增长至45%。VMware关于2022年Kubernetes状况的报告还显示,在拥有1000名以上员工的大型企业中,对Kubernetes的采用率从2018年的27%增加到2020年的48%。

然而,尽管Kubernetes变得越来越受欢迎,但仍存在一些挑战,使得DevOps团队无法从使用K8s构建云原生应用程序中获得全部好处。他们如何平衡取舍并交付最佳项目呢?让我们一起快速了解一下。

观测性是关键Kubernetes具有很多优点,因为容器生态系统中存在多个节点和接触点。这使得全面了解整个K8s环境成为一项具有挑战性的任务。事实上,使用K8s的用户明白手动理解其容器是行不通的。然而,根据Groundcover公司的首席执行官兼联合创始人Shahar Azulay的说法,解决这个挑战的方法在于使用观测性工具。

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

通过观测性,DevOps团队可以减少停机时间、降低成本,并最终提高性能。如今一些最受欢迎的观测性工具包括Grafana、Groundcover和Prometheus。Azulay进一步指出,Groundcover代表了观测性的新一代,因为它“打破了常规的应用性能管理(APM)模式,提供了资源消耗极小、全面可观察且透明简化的定价”。

将安全置于首位仅关注观测性还不够,因为那只解决了问题的一半。尤其是在安全方面还有更多需要关注的地方。红帽(Red Hat)关于2023年Kubernetes安全状况的报告显示,94%的受访者在过去12个月中遇到了安全事故,64%的受访者由于K8s安全问题而延迟或放缓部署进程。30%的受访者还将漏洞视为他们对容器和K8s环境最担心的问题。

在Kubernetes环境中运行应用程序时保持安全显然非常重要。如果不将安全置于首要位置,可能会对性能产生负面影响,增加修复成本,并造成长期的破坏性影响。ARMO公司的开源安全提供商、当今最流行的Kubernetes安全工具Kubescape的创始人兼副总裁Box Craig指出,“与所有云软件一样,确保在将Kubernetes访问权限委派给团队时有适当的防护措施非常重要”。

Craig进一步指出,确保安全的一些步骤包括(但不限于):

定期进行安全补丁和更新。在配置K8s集群时遵循行业最佳实践。检查和验证镜像是否存在恶意代码、错误配置和其他漏洞。禁止访问云API元数据。利用基于角色的访问控制(RBAC),只允许用户根据其角色和职能访问K8s资源。使用Kubecsape等安全工具保护您的集成开发环境(IDE)、CI/CD流水线和集群。

解决存储问题在使用Kubernetes时,额外的存储会带来成本,并由开发人员和组织承担大部分费用。为了有效减少开发人员的部署摩擦,大型组织通常转向公共云环境,并减少对本地服务器的依赖。

ARMO公司的首席技术官兼联合创始人Ben Hirschberg表示,解决这个问题的一种方法是“在源头分析数据,最大程度地减少为观察而移动大量数据的需求。通过在节点或应用程序内部分析数据,不需要将所有数据移动到外部存储或可观测性平台。通过本地存储数据,DevOps团队可以避免不必要的数据传输成本,同时确保需要时可以立即获取必要的数据”。

优先考虑互操作性K8s面临的另一个挑战是互操作性,即应用程序在Kubernetes中相互通信的能力。云原生应用程序之间在K8s上的互操作通信并不像看起来那么直接。正如本文所指出的,缺乏互操作性可能会“影响集群部署,因为它包含的应用实例可能在集群中的各个节点上运行时出现问题”。

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

最后的思考最佳的K8s实践不是一劳永逸的解决方案;它们来自于不断从错误中学习并改进实践。对于已经被技术工作和以创纪录速度部署容器的需求所拖累的DevOps团队来说,这可能是一项艰巨的工作。幸运的是,观测性工具可以指明需要关注的重点,并帮助针对安全、互操作性、存储等关键问题采取有针对性的步骤。

责任编辑:华轩 来源: 今日头条
相关推荐

2023-08-21 19:24:34

DevOpsKubernetes性能

2022-07-28 16:50:54

安全DevOpsAPI

2021-04-27 06:52:49

团队研发效率

2011-07-20 09:58:33

DevOps

2015-10-09 16:38:24

2023-12-27 06:48:49

KubernetesDevOpsHTTP

2023-05-10 15:38:14

2018-07-05 13:35:04

DockerDevops开发

2013-07-03 10:51:42

DevOpsDevOps团队DevOps文化

2021-03-12 13:37:53

Kubernetes容器集群

2022-11-02 12:15:23

戴尔

2019-10-31 10:04:54

DevOps开发团队

2023-01-10 11:18:29

DevOps

2018-05-29 09:37:37

2017-06-08 23:02:10

安全代码DevOps

2015-05-06 09:20:34

代码质量代码审查实践

2022-06-10 09:27:27

Leader思考技巧

2020-12-03 15:05:41

Kubernetes工具开发

2020-12-02 10:19:25

工具代码开发

2022-05-02 18:21:46

JenkinsKubernetesDevOps
点赞
收藏

51CTO技术栈公众号