Giter Club home page Giter Club logo

advanced-kubernetes-workshop's Introduction

Operations and Best Practices

Module-2. Lab DiagramModule-2. Lab Diagram

Lab Outline

Total estimated time: 1 hr 30 mins

Tools and Repo

  • Clond Repo with workshop files

  • Install following tools in Cloud Shell

    • Helm for application management
    • kubectx/kubens for easy context switching

Kubernetes Multicluster Architecture (30 mins)

  • Deploy three Kubernetes Engine clusters (5 mins)

    • Use gcloud
    • Two clusters (cluster-1 and cluster-2) used for multi-cluster and application deployment
    • One cluster (cluster-3) used for Spinnaker, NGINX LB and Container Registry
  • Install Istio on all three clusters (5 mins)

    • Use latest release artifacts (0.8 and onwards will have LTS)
    • Use Helm
    • Enable sidecar injector for cluster-1 and cluster-2 for the default namespace
    • For using Ingress and RouteRules later in the lab
  • Install and configure Spinnaker on cluster-3 (20 mins)

    • Create service accounts and GCS buckets
    • Create secret with kubeconfig
    • Create spinnaker config
    • Use helm charts by Vic (chart deployment takes about 10 mins)

Application lifecycle management with Spinnaker (20 mins)

  • Prepare Container Registry (5 mins)

    • Push a simple web-server app to Container Registry with version tag v1.0.0
    • Push busyboxplus to COntainer registry to simulate canary testing
  • Configure a Deploy pipeline in Spinnaker to deploy a web app to both clusters (5 mins)

    • Deploy Canary > Test Canary > Manual Judgement > Deploy to Prod
    • Triggered via version tag (v.*) from Container Registry
  • Manually deploy pipeline for v1.0.0 to cluster-1 and cluster-2 (10 mins)

Load Balancing traffic to cluster-1 and cluster-2 (15 mins)

  • Load balance traffic using an NGINX load balancer to both cluster-1 and cluster-2 (10 mins)

    • Install NGINX LB in cluster-3 (outside of cluster-1 and cluster-2)
    • Configure a ConfigMap for load-balancer.conf with cluster-1 and cluster-2 Ingress IP addresses pointing to the webapp
    • Expose NGINX as Type:LoadBalancer for Client access
    • Manipulate weight fields in the ConfigMap to manage traffic between cluster-1 and cluster-2

Triggering application updates with Spinnaker (15 mins)

  • Trigger the Deploy pipeline by updating the version tag to v1.0.1 in Container Registry (15 mins)

Traffic management to prod and canary using Istio (10 mins)

  • Use RouteRules to route traffic between prod and canary releases within each cluster (10 mins)

Lab Guide

Lab Guide

advanced-kubernetes-workshop's People

Contributors

ameer00 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.