2

DevOps 团队如何提高 Kubernetes 的表现

 11 months ago
source link: https://www.51cto.com/article/760401.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

DevOps 团队如何提高 Kubernetes 的表现

作者:科技狠活与软件技术 2023-07-12 16:03:13

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

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

054e87980b1befaeca2034d9dd13f71974899b.jpg

然而,尽管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团队来说,这可能是一项艰巨的工作。幸运的是,观测性工具可以指明需要关注的重点,并帮助针对安全、互操作性、存储等关键问题采取有针对性的步骤。

责任编辑:华轩 来源: 今日头条

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK