如何使用Spinnaker克服Kubernetes持续交付的挑战

  发布时间:2025-11-04 04:14:20   作者:玩站小弟   我要评论
【.com快译】Kubernetes具有很大潜力可以帮助组织快速部署和交付代码更改,但是在为其进行持续交付时会遇到一些挑战。Kubernetes是业界领先的容器编排系统,并且以Kubernetes为中 。

【.com快译】Kubernetes具有很大潜力可以帮助组织快速部署和交付代码更改,何使但是克服在为其进行持续交付时会遇到一些挑战。

Kubernetes是持续业界领先的容器编排系统,并且以Kubernetes为中心构建了一个庞大的交付开源和商业组件的生态系统。在冠状病毒疫情发生之后,何使更多的克服组织正在将Kubernetes视为其IT转型旅程的核心部分。Kubernetes之所以成为一个出色的持续容器管理工具,因为它提供以下功能:

自动封装 缩放和自我修复容器 服务发现 负载均衡

但是交付,只是何使使用Kubernetes可能无法解决敏捷性的目的,因为它从来不是克服一个部署系统。以下将介绍使用Kubernetes面临的持续一些挑战,以及如何应对这些挑战以释放云原生的交付全部潜力。

采用Kubernetes时部署的何使挑战

1.部署复杂性和脚本使用

将应用程序部署到Kubernetes中并不是一件容易的事,因为它涉及许多人工编写的克服脚本。例如,b2b供应网持续开发人员必须创建YAML或JSON格式的Kubernetes部署清单文件(如下图所示),并编写kubectl命令来部署应用程序:

尽管对于某些开发人员来说,单一部署可能看起来很容易,但当其目标是每天执行多个部署到dev/QA/Prod时,这将成为一项艰巨的任务。这需要对Kubernetes有着充分的了解,但并非团队的所有成员都精通Kubernetes。通常情况下,组织最终会使用脚本和kubectl命令来提高部署速度。

云原生计算基金会(CNCF)最近对1500名受访者进行的一项调查表明,在使用和部署容器方面,复杂性和文化变化仍然是Kubernetes采用的最大挑战,如下图所示。

2.过度依赖专家和开发人员产生倦怠

由于缺乏Kubernetes的专门知识,开发人员和应用程序团队严重依赖DevOps团队(也称为发布团队),以持续帮助他们创建Kubernetes对象,如部署、复制集、状态集和守护进程。在其后续工作的过程中,与不同的团队协作以获得部署的更改将会花费利益相关者的云南idc服务商大量时间。此外,由于截止日期较短且实现业务目标的压力很大,开发团队必须花费大量时间来部署其更改。

根据企业级云平台提供商D2IQ公司发布的一份调查报告,几乎所有组织(96%)在容器化应用程序的初始部署过程中都面临挑战和复杂性,并指出Kubernetes是他们痛苦的根源。该报告还指出,“51%的开发人员和架构师表示,构建云原生应用程序使他们不堪重负。这对于负责为其组织部署容器化应用程序的高级IT领导者来说压力特别大。”

3.面临严峻的安全挑战

Kubernetes并非旨在执行策略,例如查找图像中的漏洞。因此,如果组织使用Kubernetes进行部署,则需要找到其他方法,通常是人工执行策略或使用一些脚本。

例如基于默认的网络策略,Kubernetes Pod可以彼此通信,并可以与外部端点无缝通信。由于应用程序或基础设施的安全问题,高防服务器如果一个容器或Pod被破坏,则其他容器或Pod都可能受到攻击(也称为复杂的攻击向量)。

由于组织将软件交付的速度放在首位,因此有时降彽了安全性和合规性的优先级。通常情况下,在采用Kubernetes的过程中,组织必须尝试在构建、测试、部署和生产阶段集成安全性和合规性。

4.缺乏部署策略和部署后运行状况检查

使用基于Kubernetes的应用程序的一个常见目的是根据需求扩展到大型用户。在这样的生产环境中,可以观察到大量节点、数百个Pod和数千个运行多个应用程序实例的容器。

而向客户介绍新变化的一种方法是逐步部署,例如采用蓝/绿部署或金丝雀(Canary)部署等策略。这样可以避免向最终客户发布不稳定版本的风险。

但是,Kubernetes中并没有蓝/绿部署或金丝雀(Canary)部署。最重要的是,由于容器化应用程序的分布式特性,获取和发送新部署的Kubernetes应用程序的健康状况更新,以及估计其漏洞和对组织的风险是非常繁琐和复杂的。

使用开源Spinnaker进行Kubernetes部署

Spinnaker是一个开放源代码和多云持续交付平台,可用于快速发布代码并保持竞争优势。Spinnaker更加注重使用Kubernetes应用程序,并帮助IT团队迅速将应用程序部署到任何Kubernetes(K8S、GKE、EKS、AKS)中。以下是Spinnaker的一些重要功能。

1.用于端到端部署自动化的Spinnaker管道

Spinnaker提供用于自动部署的端到端管道(如下图所示)。该工作流程可经构建一致且重复的部署,可以制作AMI或Docker映像,从集群中找到k8S容器,然后进行部署、修改集群组并在K8S中运行容器。

在部署之后,Spinnaker会实时检查并显示Kubernetes集群的运行状况。可以将管道中的部署阶段配置为通过电子邮件、移动消息或Slack消息在所有级别通知利益相关者。

2.内置的部署策略

开源Spinnaker提供了各种部署策略,例如蓝/绿部署、滚动部署、金丝雀部署,以降低部署到生产环境中的风险。Spinnaker还与K8S Pod自动缩放器进行交互,以确保在部署期间保持容量大小。

开源Spinnaker提供的自动金丝雀分析(ACA)技术可通过将原有版本的指标和日志与部署新版本的指标和日志进行比较,从而最大限度地降低将更新部署到K8S生产服务器中的风险。

除此之外,Spinnaker还提供configmap和secrets的版本控制以及不可变的服务器部署。这使回滚可以保留先前使用的确切配置,并执行二进制文件。

3.新工件的持续验证

开源Spinnaker周围提供了许多企业插件,这些插件扩展了免费工具的用例。例如,开源Spinnaker的发行伙伴OpsMx公司提供了企业级Spinnaker,可以在日志和指标上使用人工智能/机器学习来检测新部署的Kubernetes应用程序的问题。如果检测到异常,则Spinnaker可以回滚到新的应用程序。但是在此之前,它可以确保先前的服务器组具有足够的大小。

4.在Kubernetes部署中加强安全性和合规性

确保Kubernetes使用中的安全性需要在整个软件开发生命周期(从编码到构建再到部署)中进入安全性和合规性的安全门。例如,如果构建未通过冒烟测试(冒烟测试这一术语描述的是在将代码更改嵌入到产品的源树中之前对这些更改进行验证的过程),则可以在构建阶段使用安全门使部署失败。同样,可以安装安全门以检查容器图像是否已通过图像扫描报告。开源Spinnaker允许安全管理人员在交付管道中安装安全门。

Spinnaker被扩展为声明政策,以遵守组织指南和行业标准,例如PCI-DSS、HIPAA和SOC 2。而发布管理器可以将部署日期和时间定义为停机策略的一部分。这可能会有一定的高峰流量时间,应该避免部署具有停机风险的代码。部署窗口允许管道确保在这些高峰流量时区之外进行K8S部署,并且不会影响客户体验。

5.GitOps样式部署

在Spinnaker的帮助下,组织可以在Kubernetes集群中执行GitOps风格的部署。熟悉YAML的团队可以对文件进行更改,并且Spinnaker可以进行配置检测这些更改,并自动将其部署到选定的环境中。

结论

毫无疑问,通过采用云原生应用程序可以实现业务敏捷性,而Kubernetes扮演着核心角色。选择整合Kubernetes和Spinnaker的组织将会比单独使用Kubernetes的组织更快地看到积极的结果。

原文标题:Overcome Challenges of Continuous Delivery for Kubernetes With Spinnaker,作者:Debasree Panda,Abhinay Byrisetty

【译稿,合作站点转载请注明原文译者和出处为.com】

  • Tag:

相关文章

  • MotoZXT1605(探索MotoZXT1605的创新功能和出色性能)

    摘要:作为摩托罗拉旗下的一款旗舰手机,MotoZXT1605凭借其创新的设计和卓越的性能在市场上引起了极大的关注。本文将深入探讨这款手机的功能和性能,为读者揭示其独特之处和优势。...
    2025-11-04
  • 为什么不应该在分页中使用offset和limit

    不再需要担心数据库性能优化的日子已经一去不复返了。随着时代的进步,每一个新的创业者都想打造下一个Facebook,再加上收集每一个可能的数据点以提供更好的机器学习预测的心态,作为开发者,我们需要准备好
    2025-11-04
  • 好一个SpringBoot开源在线考试系统!解决我的燃眉之急

    前言最近看到了一个考试系统,感觉做的挺不错,并且也比较成熟,所以我就简单玩了一下。另外,考试系统应用场景还挺多的,不论是对于在校大学生还是已经工作的小伙伴,并且,类似的私活也有很多。在线考试系统后台管
    2025-11-04
  • 如何用C语言操作sqlite3,一文搞懂

    sqlite3编程接口非常多,对于初学者来说,我们暂时只需要掌握常用的几个函数,其他函数自然就知道如何使用了。数据库本篇假设数据库为my.db,有数据表student。no name
    2025-11-04
  • 如何将手机中的大视频传输到电脑

    摘要:在现代社会,手机已经成为我们生活中不可或缺的一部分。我们用手机拍摄了很多珍贵的视频,但是由于手机存储空间有限,我们经常需要将大视频传输到电脑中进行编辑和存储。本文将为您介绍如何快速...
    2025-11-04
  • 项目经理小姐姐非要给我讲一讲,项目开发规范和流程!

    本文转载自微信公众号「小鹿动画学编程」,作者小鹿。转载本文请联系小鹿动画学编程公众号。有很多在校生给我留言,希望小鹿分享一下工作的前端开发流程以及规范。对于在校生说,很难接触到一些企业中的工作流程,所
    2025-11-04

最新评论