Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Migration 101: From VMs to Kubernetes

Luke Kysow
November 17, 2020

Migration 101: From VMs to Kubernetes

In this hands-on tutorial, you will learn how to progressively adopt Kubernetes by migrating one of your apps from VMs onto Kubernetes. You will perform the full migration process: from preparing your app for running in Kubernetes, to configuring routing, to performing a no-downtime migration and monitoring your app.

We will cover:

- Dockerizing your app
- Creating a Kubernetes YAML spec
- Deployments

Video: https://www.youtube.com/watch?v=MuX3m149FpI
- Configuring routing between K8s and VMs and discussing different topologies including using Consul
- Performing a no-downtime migration from VMs to K8s
- Viewing application logs with Fluentd, Elasticsearch and Kibana
- Viewing application metrics with Prometheus and Grafana
- Consul Service Mesh

Workshop Instructions: https://github.com/ishustava/kubecon-2020-workshop

Presented at KubeCon North America by Iryna Shustava and Luke Kysow from HashiCorp

Luke Kysow

November 17, 2020
Tweet

More Decks by Luke Kysow

Other Decks in Technology

Transcript

  1. Agenda ▪ Introduction ▪ Building a Docker Image ▪ Deploying

    to Kubernetes ▪ Configuring Routing ▪ Configuring Logging and Metrics ▪ Performing A No Downtime Migration ▪ Consul Service Mesh
  2. web web web api api api Load Balancer web.company.com 10.0.0.1

    10.0.0.2 10.0.0.3 api.company.com 10.0.0.4 10.0.0.5 10.0.0.6
  3. Agenda ▪ Introduction ▪ Building a Docker Image ⇐ ▪

    Deploying to Kubernetes ▪ Configuring Routing ▪ Configuring Logging and Metrics ▪ Performing A No Downtime Migration ▪ Consul Service Mesh
  4. Agenda ▪ Introduction ▪ Building a Docker Image ▪ Deploying

    to Kubernetes ⇐ ▪ Configuring Routing ▪ Configuring Logging and Metrics ▪ Performing A No Downtime Migration ▪ Consul Service Mesh
  5. web web web api api api Load Balancer web.company.com 10.0.0.1

    10.0.0.2 10.0.0.3 api.company.com 10.0.0.4 10.0.0.5 10.0.0.6 Kubernetes api
  6. Agenda ▪ Introduction ▪ Building a Docker Image ▪ Deploying

    to Kubernetes ▪ Configuring Routing ⇐ ▪ Configuring Logging and Metrics ▪ Performing A No Downtime Migration ▪ Consul Service Mesh
  7. web web web api api api Load Balancer web.company.com 10.0.0.1

    10.0.0.2 10.0.0.3 api.company.com 10.0.0.4 10.0.0.5 10.0.0.6
  8. Exposing a Service Externally In Kubernetes ▪ Services – ClusterIP:

    works only inside the cluster – NodePort: works only if your can reach Kubernetes nodes externally – LoadBalancer: depends on your cloud provider ▪ Ingress – Can expose HTTP routes outside the cluster – A single load balancer for many services
  9. Agenda ▪ Introduction ▪ Building a Docker Image ▪ Deploying

    to Kubernetes ▪ Configuring Routing ▪ Configuring Logging and Metrics ⇐ ▪ Performing A No Downtime Migration ▪ Consul Service Mesh
  10. Agenda ▪ Introduction ▪ Building a Docker Image ▪ Deploying

    to Kubernetes ▪ Configuring Routing ▪ Configuring Logging and Metrics ▪ Performing A No Downtime Migration ⇐ ▪ Consul Service Mesh
  11. web web web api api api Load Balancer web.company.com 10.0.0.1

    10.0.0.2 10.0.0.3 api.company.com 10.0.0.4 10.0.0.5 10.0.0.6 api nginx 10.15.0.0
  12. web web web api api api Load Balancer web.company.com 10.0.0.1

    10.0.0.2 10.0.0.3 api.company.com 10.15.0.0 api nginx 10.15.0.0
  13. Recap ▪ Introduction ▪ Building a Docker Image ▪ Deploying

    to Kubernetes ▪ Configuring Routing ▪ Configuring Logging and Metrics ▪ Performing A No Downtime Migration ▪ Consul Service Mesh