0

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

  • 支架
  • 大三角帆 + 容器生成器

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

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

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

使用 Spinnaker + Cloud Builder 的管道:

  • 开发商:
    • 更改代码
    • 创建一个 git 标签并推送到 repo
  • 容器生成器:
    • 检测新的 git 标签
    • 构建 Docker 镜像
    • 运行单元测试
    • 推送 Docker 镜像
  • Spinnaker(来自文档https://www.spinnaker.io/concepts/):
    • 检测新图像
    • 部署金丝雀
    • 割接人工审批
    • 部署 PROD(蓝/绿)
    • 拆掉金丝雀
    • 销毁旧产品
4

3 回答 3

1

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

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

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

于 2020-05-25T11:53:13.833 回答
1

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

于 2020-08-01T04:39:26.210 回答
1

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

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