Docker 图像从 Jenkins 推送到 Dockerhub 并部署到 Kubernetes 集群
Docker image push from Jenkins to Dockerhub and deployment to Kubernetes cluster
我正在尝试为我的 spring 启动微服务实施 CI/CD 管道。我正在使用 Kubernetes 和 Jenkins 来实现 CI/CD 管道。而且我还使用安装在本地服务器上的 SVN 私有代码存储库。以及使用 AWS EC2 Ubuntu 16.04 LTS AMI 形成的 Kubernetes 集群。
在我的应用程序中,我计划添加 Jenkinsfile 并在 VM 中创建 shell 脚本以实现管道作业。我现在正在为此探索以下网址:
- https://www.brightbox.com/blog/2018/01/22/push-builds-to-dockerhub/
- http://www.tothenew.com/blog/automated-docker-deployment-using-jenkins/
- 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 中编写吗?还是需要加入worker Vm?或者需要添加我安装 Jenkins master 的位置?
shell 脚本如何在整个 Kubernetes 集群中可用?
是的,您可以使用 shell 脚本从您的 Jenkinsfile 调用 kubectl,例如:
sh 'kubectl ...'
不过,我的建议是使用 shell 脚本并将命令放入其中。
例如,参见:https://wade.be/development/2018/04/30/jenkinsfiles.html
您的 shell 脚本根本不需要在虚拟机中,它只需要能够被 Jenkins 服务器访问。
将它放在代码存储库中,与您存储 Jenkinsfile 的位置并排。
我正在尝试为我的 spring 启动微服务实施 CI/CD 管道。我正在使用 Kubernetes 和 Jenkins 来实现 CI/CD 管道。而且我还使用安装在本地服务器上的 SVN 私有代码存储库。以及使用 AWS EC2 Ubuntu 16.04 LTS AMI 形成的 Kubernetes 集群。
在我的应用程序中,我计划添加 Jenkinsfile 并在 VM 中创建 shell 脚本以实现管道作业。我现在正在为此探索以下网址:
- https://www.brightbox.com/blog/2018/01/22/push-builds-to-dockerhub/
- http://www.tothenew.com/blog/automated-docker-deployment-using-jenkins/
- 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 中编写吗?还是需要加入worker Vm?或者需要添加我安装 Jenkins master 的位置?
shell 脚本如何在整个 Kubernetes 集群中可用?
是的,您可以使用 shell 脚本从您的 Jenkinsfile 调用 kubectl,例如:
sh 'kubectl ...'
不过,我的建议是使用 shell 脚本并将命令放入其中。
例如,参见:https://wade.be/development/2018/04/30/jenkinsfiles.html
您的 shell 脚本根本不需要在虚拟机中,它只需要能够被 Jenkins 服务器访问。
将它放在代码存储库中,与您存储 Jenkinsfile 的位置并排。