【问题标题】:Skaffold vs SpinnakerSkaffold vs Spinnaker
【发布时间】:2020-05-25 07:33:57
【问题描述】:

我已经阅读了关于在 GCP 中实现持续交付管道的两种方法(可能还有更多):

  • 脚手架
  • 大三角帆 + 容器构建器

我在 Quiklabs 中与这两者都有过一些合作。如果有人对两者都有实际经验,您能否分享一下他们之间的优缺点?你为什么选择一个而不是另一个?

使用 Skaffold 的管道(来自文档 https://skaffold.dev/docs/pipeline-stages/):

  • 检测源代码更改
  • 构建工件
  • 测试工件
  • 标记工件
  • 渲染清单
  • 部署清单
  • 尾部日志和转发端口
  • 清理图片和资源

使用 Spinnaker + Cloud Builder 的管道:

  • 开发者:
    • 更改代码
    • 创建一个 git 标签并推送到 repo
  • 容器生成器:
    • 检测新的 git 标签
    • 构建 Docker 镜像
    • 运行单元测试
    • 推送 Docker 镜像
  • 大三角帆(来自文档https://www.spinnaker.io/concepts/):
    • 检测新图片
    • 部署 Canary
    • 切换人工审批
    • 部署 PROD(蓝/绿)
    • 拆掉 Canary
    • 销毁旧产品

【问题讨论】:

    标签: google-cloud-platform continuous-delivery spinnaker skaffold


    【解决方案1】:

    我在这两个方面都做过,根据我的经验,skaffold 仅适用于本地开发测试,但是如果我们想扩展到生产、预生产用例,最好使用 spinnaker 管道。它(大三角帆)提供了优于脚手架的尖端优势

    • 复杂/复杂的部署策略:您可以定义部署 诸如在服务 2 之前部署服务 1 等策略。
    • 多集群部署:基于简单 UI 的部署可以配置到多个集群
    • 可视化:它提供了丰富的 UI,显示跨集群、区域、命名空间和云提供商的任何部署或 pod 的状态。

    【讨论】:

      【解决方案2】:

      我不是两者的真正高级用户,但我的理解是

      • Skaffold 非常适合开发环境和开发人员(构建、测试、部署、调试、循环)。
      • Spinnaker 更面向自动化平台 (CI/CD) 的持续开发,这就是为什么您可以执行金丝雀和蓝/绿部署之类的东西,对开发阶段毫无用处。

      Skaffold 也是面向 Kubernetes 的环境,与 Spinnaker 相比,Spinnaker 更加不可知,可以部署在其他地方。

      【讨论】:

        【解决方案3】:

        Skaffold 用于快速本地 Kubernetes 开发。Skaffold 处理构建、推送和部署应用程序的工作流程 这使得它与 Spinnaker 不同,后者更面向 CI/CD 并具有完整的生产环境

        【讨论】:

          猜你喜欢
          • 2022-12-17
          • 1970-01-01
          • 2021-09-18
          • 1970-01-01
          • 2021-04-09
          • 2021-06-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多