Jenkins 管道作业部署到 kubernetes
Jenkins pipeline jobs to deploy to kubernetes
我对 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 并在那里进行更改?也许有人可以给我一些阅读链接或对此有一些好的做法?
提前致谢!
没有更好或最坏的方法,但有一种方法适合您。
您可以将所有 kubernetes 文件(yamls 文件)保存在 git 存储库中,当您 运行 管道时,Jenkins 会将这些存储库检索到 运行。
我不确定您为什么要在应用前删除资源,但是如果您使用的是 kind: deployment
,则可以使用命令 kubectl apply
和 rollingUpdate
策略来避免停机.
Here您可以找到很多关于 Jenkins 部署策略的有用信息。
其他有用的链接:
我对 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 并在那里进行更改?也许有人可以给我一些阅读链接或对此有一些好的做法? 提前致谢!
没有更好或最坏的方法,但有一种方法适合您。
您可以将所有 kubernetes 文件(yamls 文件)保存在 git 存储库中,当您 运行 管道时,Jenkins 会将这些存储库检索到 运行。
我不确定您为什么要在应用前删除资源,但是如果您使用的是 kind: deployment
,则可以使用命令 kubectl apply
和 rollingUpdate
策略来避免停机.
Here您可以找到很多关于 Jenkins 部署策略的有用信息。
其他有用的链接: