Docker映像从Jenkins推送到Dockerhub并部署到Kubernetes集群

时间:2018-08-04 13:07:41

标签: jenkins kubernetes dockerhub

我正在尝试为我的Spring Boot微服务实现CI / CD管道。我正在使用Kubernetes和Jenkins来实施CI / CD管道。另外,我正在使用安装在本地服务器上的SVN私有代码存储库。并使用AWS EC2 Ubuntu 16.04 LTS AMI形成Kubernetes集群。

在我的应用程序中,我计划添加Jenkinsfile并在VM中创建Shell脚本以实现管道作业。我现在正在探索以下URL:

  1. https://www.brightbox.com/blog/2018/01/22/push-builds-to-dockerhub/
  2. http://www.tothenew.com/blog/automated-docker-deployment-using-jenkins/
  3. https://ropenscilabs.github.io/r-docker-tutorial/04-Dockerhub.html

在这里,我看到了用于在Jenkinsfile中推送构建的Docker映像的脚本。我了解了使用Jenkinsfile中的配置阶段推送Docker映像的概念。但我的疑问是,

困惑1

如果我使用Kubernetes集群进行部署,是否可以在Jenkinsfile中直接添加kubectl部署命令?还是我需要在VM中创建任何Shell脚本?

混乱2

我有4个Vms的Kubernetes集群-AWS EC2 Ubuntu 16.04 LTS。即1台主计算机和3台工作计算机。

所以我的另一个困惑是,如果我需要在Kubernetes集群中使用一个shell脚本,那么我需要在哪个Vm中编写.sh文件?我需要在Master VM中写吗?还是需要添加工作者Vm?还是需要添加我安装Jenkins master的位置?

shell脚本如何在整个Kubernetes集群中可用?

1 个答案:

答案 0 :(得分:2)

是的,您可以使用Shell脚本从Jenkinsfile中调用kubectl,例如:

sh 'kubectl ...'

但是,我的建议是使用shell脚本并将您的命令放入其中。

有关示例,请参见:https://wade.be/development/2018/04/30/jenkinsfiles.html

您的shell脚本根本不需要在VM中,只需Jenkins服务器即可访问。

将其放入存储Jenkinsfile的代码库中。