Skip to content

Milestone 3

Sudip Padhye edited this page Mar 30, 2021 · 24 revisions

TASKS:

  • Dockerized all Microservices
  • Established CI/CD pipeline using Jenkins
  • Deployed containerized microservices using Kubernetes
  • Automation Scripts for management of VMs and Deployment of Kubernetes
  • Deployed entire system on vanilla Jetstream VMs

Our first step was to create dockerized versions of each micro-service. After that, we integrated all microservices to be continuously deployed using Jenkins Thus, Jenkins provided continuous deployment by pushing every new git commit into docker hub ( docker registry) Continuous deployment was achieved via ssh-ing into our kubectl pod through the Jenkins pipeline. Each new build inside the docker hub deploys the image into the Kubernetes cluster.



Flow

  • Push commit on Github repo on specific microservice branch
  • This will trigger a Jenkins build for a new docker image
  • Jenkins will also check on the test cases written for that image before pushing the image on Docker Hub
  • Once a new image is created, Jenkins will SSH to Kubernetes Server and deploy the new microservice image. This will also remove the previous version of that microservice

Website Deployed at http://149.165.156.145:30030/


Getting Started

  1. To create a network, router, security groups, floating IPs, key-pairs, and instances
  2. Starting Instances
  3. Setup Kubernetes in each Instance
  4. Connecting Worker to Master
  5. Deploying Ping Intelligence app on Kubernetes Cluster

Note: In order to create another set of instances and deploying Kubernetes, you will need to deallocate previously allocated resources using Step-6 and then start afresh from Step-1.

1. Download openrc.sh file to the Atmosphere instance/local system/VM (requirement: Linux based OS)

2. Run the following command:

  source TG-CCR180043-openrc.sh

provide IU Jetstream password

3. Create SSH Key (press enter for options)

  ssh-keygen 

4. Copy paste the below command

  git clone https://github.com/airavata-courses/PingIntelligence.git && cd PingIntelligence && git checkout automation-script &&
  git clone https://github.com/zonca/jetstream_kubespray &&
  cd jetstream_kubespray &&
  git checkout -b branch_v2.15.0 origin/branch_v2.15.0 &&
  cd .. &&
  bash pingintelligence-automation-script.sh

5. Enter the cluster, Setup Kubernetes Cluster and deploy app using the following command:

  sudo su
  git clone https://github.com/airavata-courses/PingIntelligence.git &&
  cd PingIntelligence &&
  git checkout kubernetes_files &&
  kubectl apply -f ../PingIntelligence/ &&
  sleep 100 &&
  kubectl get pods -o wide 

at the end of this process, you will be able to see all the running pods on the Cluster

6. To destroy kubernetes cluster and deallocate resources:

  source TG-CCR180043-openrc.sh
  bash ./inventory/kubejetstream/terraform_destroy.sh

Jenkins

We have deployed our Jenkins server at http://149.165.168.194:8080/ Username & Password in the submitted file on canvas

Clone this wiki locally