我看到CI / CD系统,例如GitLab CI / CD,BitBucket管道和CodeFresh CI / CD。这些看起来不错,但我想知道为什么不在本地主机上构建容器映像(然后使用rsync
/ scp
上传映像)或直接在集群上构建,然后通过kubectl进行部署?这将使用构建服务和容器注册表来规避(我不想为此付费)。对于小型团队来说,这似乎是可行的。我意识到它不如使用构建服务好,但除此之外,为什么不以这种方式运行部署?
答案 0 :(得分:0)
如果使用标准存储库设置,则无需让人们通过ssh访问节点,并且节点可以相当替换:如果某个节点死亡(甚至有时需要替换云托管节点),则它始终可以从Docker存储库中提取其内容,那么您无需进行任何手动工作即可开始新的工作。
我至少要设置(或支付费用)一个Docker信息库(或托管服务:Docker Hub,quay.io,Google的GCR,Amazon的ECR ...),并编写一个构建脚本,{ {1}}映像,docker build
映像到适当的位置,更新Deployment对象,并docker push
映像。您不一定需要CI系统(但您可能想要一个CI系统;再次可以在云中购买一个)。
在非技术级别上,如果设计和构建涉及手动运行一系列命令的部署序列,尤其是在一家小型公司中,它将成为可维护性问题(您个人将花费大量时间一遍又一遍地运行这些相同的命令,如果无法正常运行,则必须对其进行修复。