自学内容网 自学内容网

如何利用 Kubernetes 取得成功

Kubernetes是一个开源编排平台,用于自动部署和管理容器化工作负载和服务,目前越来越受欢迎。

该平台由全球贡献者社区维护,其潜在优势包括提高资源效率、提高可扩展性和高可用性。

在过去几年中,Kubernetes 和相关的云原生技术已经成为企业 IT 的参考点,即使未来一段时间内大多数工作负载可能仍会在虚拟机 [VM] 上运行。

原因在于 Kubernetes 允许大规模编排基于容器的应用程序,同时更高效地利用基础设施资源。

KubeVirt 等允许虚拟机在 Kubernetes 上运行的新兴技术正在投入生产,客户对 VMware 价格可能上涨的担忧促使他们探索替代方案。

正如任何与技术相关的事物一样,部署和使用 Kubernetes 的方法有好有坏。

组织如何才能利用开源编排平台取得最佳成功?我们邀请了几位专家分享他们学到的东西。

使用 Kubernetes 取得成功的 8 个关键

1. 慢慢来

组织通常会加速推进一项技术的广泛实施,但如果没有周密的战略和采用理由,那么推进这项技术可能会导致失败。

不要急于求成。从小处做起,不断迭代,给人们学习的空间。该组织致力于让云原生计算无处不在,并拥有 Kubernetes 的商标。

许多组织急于迁移到 Kubernetes 或采用云原生工具和实践,但低估了做好这件事所需的时间、实验和技能提升。

最好采取循序渐进的方式,使用测试应用程序或非关键应用程序,您可以通过应用程序和集群生命周期的各个方面以及第二天的操作任务来工作。

通过结合测试、实验和学习阶段,组织可以评估云原生计算前景,并找到满足其需求的最佳工具和工作流程。

没有人希望自己处于必须将生产集群上的容器网络提供商与实时服务进行交换的境地。

2. 参与开源项目

参与开源 Kubernetes 项目可以帮助组织更好地了解可能影响其自身项目的任何即将出现的问题。

当你的堆栈的关键部分(如 Kubernetes 或其他云原生项目)有开源时,你可以通过参与上游项目直接降低使用这些项目的风险。

这不一定是一个重大的承诺。你不必提交代码即可成为值得信赖的贡献者。存在大量非代码机会。重要的是参与其中并建立信任。

这种无形价值不容小觑,它可以成为一笔巨大的财富,既可以降低组织的使用风险,又可以让你的问题得到优先处理。

拥有存在感可以让你了解可能影响组织环境的弃用和更改,并且你会在公众面前得到通知。事实上,一些在市场上引起轰动的问题在内部已经讨论了一年多。

3. 与其他用户互动

与参与项目一样,组织应该鼓励用户与有 Kubernetes 经验的其他人交流意见。

除了给你的团队时间学习之外,鼓励他们与其他用户交流也大有裨益。

通常,与部署过类似产品的其他用户进行一两次对话,可以快速帮助你克服构建完整云原生堆栈所带来的选择障碍或陷阱。

CNCF 负责协调最终用户社区,旨在帮助各组织就云原生工具进行交流。

例如,该组织举办 Kubernetes 社区日活动,这些活动聚集了来自开源和云原生社区的采用者和技术人员,进行教育、协作和交流。

不要忽视这些与他人联系的机会,很有可能,你会找到一个做过类似事情的人,而且非常乐意提供建议。

4. 投资培训和协作

大多数组织都拥有一套专注于 Kubernetes 之前的技术的技能。

考虑到这一点,最大的挑战是让团队了解 Kubernetes 的基础知识,包括容器、pod、服务和部署。

成功采用 Kubernetes 需要一种包括培训和协作在内的新组织文化。

团队需要接受DevOps 原则,打破开发和运营之间的隔阂,以加强协作和共担责任。

需要进行交叉培训、研讨会和实践实验室,以培养开发、运营和安全团队的技能。

开放式沟通有助于团队适应 Kubernetes 环境固有的快速变化和复杂性。

例如,组织可以组建定期参加“午餐和学习”会议或 Kubernetes 学习小组的团队。

反馈循环营造了一种支持性环境,团队可以从失败中吸取教训并不断改进流程。

5. 使用公共云产品

那些开始使用 Kubernetes 的人可以从早期采用者的最佳实践以及公共云和多云容器平台 Kubernetes 产品的创新中受益。

公有云提供商提供的托管Kubernetes控制计划服务可以减轻升级负担。

大型公有云供应商也越来越多地在该控制平面上提供自动化服务。

例如,亚马逊网络服务 (AWS) 提供 Elastic Kubernetes 服务,这是一项托管服务,用于在 AWS 云和本地数据中心运行系统。

微软提供 Azure Kubernetes 服务,这是一项托管服务,组织可以使用它来部署和管理容器化应用程序。

谷歌云提供 Google Kubernetes Engine,这是一项托管服务,组织可以使用 Google 的基础设施大规模部署和操作容器化应用程序。

企业需要尽早决定他们的平台团队是否应该专注于运营来自云提供商的托管和自动化服务,或者是否需要构建自己的 Kubernetes 堆栈来实现他们的目标。

换句话说,组织应该尽可能保持 Kubernetes 的简单性,但在必要时也要面对复杂性。

常见的挑战涉及弹性和集成。无论 Kubernetes 堆栈是预构建的还是自主开发的,平台团队都必须为开发人员进行优化。

6. 采用基础设施即代码

IaC,即基础设施即代码,是指使用代码而不是手动流程和设置来配置和支持计算基础设施的能力。

运行业务应用程序需要 IT 组织需要设置和维护的操作系统、数据库和存储系统等基础设施组件。使用 IaC,组织可以实现基础设施管理自动化。

Kubernetes 环境非常复杂,通常涉及多个集群、节点和配置。当使用自动化而非手动流程来配置和管理基础设施时,复杂性可以得到最好的处理。

Terraform、Ansible 和 Helm 等工具可帮助组织以声明方式定义其基础架构。

这些工具可让团队快速复制环境、回滚更改并高效扩展应用程序。开发和运营团队可以协作,因为 IaC 是版本控制的,可以像应用程序代码一样进行审查。

7. 建立可观察性

Kubernetes 并非一劳永逸的解决方案。需要对其进行监控以确保实现目标。这就是可观察性工具的作用所在。

Kubernetes可观察性使团队能够监控和分析云原生环境中 Kubernetes 集群的性能和行为。

适当的监控和日志记录使 Kubernetes 问题故障排除变得容易,否则可能会很麻烦。

从 Kubernetes 集群、应用程序和基础设施收集指标、日志和跟踪的工具有助于识别瓶颈并尽早发现故障。

例如,组织可以利用开源监控工具(如由Grafana支持的 Prometheus )进行指标收集和可视化。

许多组织使用 Elasticsearch 和 Kibana 等集中式日志记录解决方案,同时采用 Jaeger 进行分布式跟踪。

这些见解可帮助 IT 团队节省时间并提高效率。

8. 利用生成式人工智能

可观察性平台越来越多地与生成式人工智能技术相结合,以提供更全面的运营监控服务。

AI 和 genAI“将在 Kubernetes 推广中发挥重要作用”。最初,genAI 将通过智能自动化和安全平台向 IT 运营和开发人员开放。

例如 Microsoft Power Automate 和 Red Hat Ansible Lightspeed。

此外,网络安全提供商表示,他们将利用 genAI 作为增强云安全态势管理和攻击路径分析的手段。


原文地址:https://blog.csdn.net/qq_29607687/article/details/142712388

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!