简体   繁体   中英

Docker image push from Jenkins to Dockerhub and deployment to Kubernetes cluster

I am trying to implement CI/CD pipeline for my spring boot microservices. I am using Kubernetes and Jenkins for implementation of CI/CD pipeline. And also I am using SVN private code repository installed on on-premise server. And Kubernetes cluster forming using AWS EC2 Ubuntu 16.04 LTS AMI.

In my application I am planning to add Jenkinsfile and create shell script in VM for implementing the pipeline jobs. I am now exploring the following URLs for this:

  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

Here I am seeing the script for pushing builded Docker image within Jenkinsfile. I understood the concept of Docker image pushing using configuration stage in Jenkinsfile. But here my doubt is that,

Confusion 1

If I am using Kubernetes cluster for deployment, can I directly add kubectl deployment command in Jenkinsfile ? Or Do I need to create any shell script in my VM?

Confusion 2

I have the Kubernetes cluster with 4 Vms - AWS EC2 Ubuntu 16.04 LTS. Ie, 1 Master and 3 worker machine.

So my another confusion is that, if I need to use one shell script in my Kubernetes cluster, in which Vm I need to write .sh file? Do I need to write in Master VM? Or need to add in worker Vm? Or need to add where I installed Jenkins master?

How the shell script can make to available in entire Kubernetes cluster?

Yes, you can use shell scripts to call kubectl, from your Jenkinsfile, for example:

sh 'kubectl ...'

However, my advice would be to use a shell script and put your commands inside that.

For an example, see: https://wade.be/development/2018/04/30/jenkinsfiles.html

Your shell script doesn't need to be in a VM at all, it just needs to be accessible by the Jenkins server.

Put it inside the code repository alongside where you store your Jenkinsfile.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM