Skip to content

Milestone 3

meetdvalia edited this page Mar 29, 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 image on Docker Hub
  • Once new image is created, Jenkins will SSH to Kubernetes Server and deploy the new microservice image. This will also remove previous version of that microservice

Website Deployed at: http://149.165.156.145:30030/


Getting Started

  1. To create 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

1. download openrc.sh file to the instance (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/sudip-padhye/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 submitted file on canvas

Clone this wiki locally