我刚接触devops,我想知道使用GKE、Terraform和Gitlab存储库进行CI/CD的最好方法是什么。目前,flux,cert manager使用了一组命令,但它不是自动的。最佳实践、工具和整个方案是什么样子的?谢谢你的回答。
发布于 2020-09-10 16:31:04
在我之前的项目中,我们尝试了相当多的方法,最终意识到使用Octopus Deploy部署是最合适的,尽管部分原因是它在整个公司得到了更广泛的使用,但对于使用terraform的部署来说,它也是相当好的。主要的好处是有了tenants的概念,它对应于每个客户端(特别是Google Cloud项目),并且对于租户,你可以设置大量的变量,这些变量主要是由terraform使用的。根据变量列表的不同,配置每个租户可能是一项相当繁琐的任务,但我猜这只是第一次设置。然后,更新它并运行实际部署要快得多。
我们还尝试了GitOps,就像在每个客户端(GCP项目)拥有repo一样,使用这些变量,在我们的部署脚本中,只是提取这些repos,这也很好,因为它带来了在源代码中具有规范的所有好处,就像在日志中一样,并且是单一的真理来源。不过,主要的缺点是,在任何更改上,合并请求都应该已经打开,并且可能需要相当长的时间。如果在您的情况下,这不是必需的,并且对这些规范repos的更改运行的管道不是那么长,那么您可以尝试它,为什么不呢?
你可以尝试的另一件事是将变量放入Gitlab变量中,但这也取决于你拥有的环境的数量,如果它要继续增长(假设是),这可能不是一个好主意,因为没有太多的可见性来改变,并且很难跟踪所有这些变量。
https://stackoverflow.com/questions/63820262
复制相似问题