Jenkins管道作业将部署到kubernetes

时间:2020-09-03 12:50:19

标签: jenkins kubernetes plugins yaml

我对Jenkins和Kubernetes还是陌生的,我不确定这种部署到kubernetes的方法是否正确,或者也许有更好的方法可以做到这一点。 所有映像都使用Jenkins构建,然后部署到kubernetes。 Yaml文件放置在kubernetes服务器(centos 7)中。 使用jenkins管道ssh到kubernetes服务器并运行kubectl delete

sh label: '', script: 'sshpass -p PASSWORD ssh -o StrictHostKeyChecking=no USER@SERVER kubectl delete svc SERVICE || true '

接下来运行类似的代码以删除部署,然后创建部署kubectl create filename.yaml。 刚开始时还可以,但是现在我注意到由于要删除和重新创建服务和部署,因此出现了停机时间。 我应该开始使用一些插件来使其变得更好和更好吗?是否应将yaml文件放置在其他位置,所以如果我需要做一些更改,就不需要连接到Kubernetes Centos并在那里进行更改?也许有人可以给我一些链接来阅读或有一些好的做法吗? 预先感谢!

1 个答案:

答案 0 :(得分:0)

没有更好或最坏的方法,但是有一种方法适合您。

您可以将所有kubernetes文件(yamls文件)保留在git存储库中,并且在运行管道时它们会被Jenkins检索以运行这些存储库。

我不确定为什么要在应用之前删除资源,但是如果您使用的是kind: deployment,则可以将命令kubectl applyrollingUpdate策略一起使用,以避免停机。 / p>

Here,您可以找到有关Jenkins部署策略的许多有用信息。

其他有用的链接:

Kubernetes deployments

Jenkins K8s Plugin