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

Plain old Docker is so 2016, Intro to Kubernetes

Plain old Docker is so 2016, Intro to Kubernetes

Kubernetes is quickly becoming one of the most popular ways to coordinate and deploy Docker containers in production. Come learn what Kubernetes is all about! I'll walk you through some core concepts, delve into expressing Kubernetes objects via YAML files, and finish up by deploying some apps live. Kubernetes (aka 'kube control' aka 'kube cuttle' aka 'pod gang') isn't just for DevOps.

Avatar for Terri Chu

Terri Chu

August 22, 2018
Tweet

Other Decks in Technology

Transcript

  1. A little about me Then Pompano Beach, FL Now Atlanta,

    GA By Day Software Engineer @ Airbus Aerial By Night Android Developer Crafting Bull Terriers Bowling Drawing Cooking Travel
  2. Docker ➔ Easily build and distribute your application in an

    isolated environment called a container ➔ Run many containers on a single host ➔ Containers are built by running a Docker image ➔ Instructions to build images are defined in a Dockerfile
  3. Kubernetes • Released 2014 • Container focused management environment •

    What is Kubernetes great at? ◦ Scheduling software running in containers ◦ Automated scaling to meet increase user demand ◦ Keeping software in line when it uses too many resources
  4. Kubernetes Terminology Cluster Collection of Master and Nodes. Master Coordinates

    the cluster. Nodes Workers that run the applications. Can be physical or virtual machines. Source: https://kubernetes.io/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/
  5. Kubernetes Terminology Continued Kubectl (aka Kubernetes control, kube control, kube

    cuttle) Interacts with Kubernetes cluster using Kubernetes API. Command line interface (CLI) Kubernetes Dashboard Interacts with Kubernetes cluster via Web UI. Good for when you are first learning!! (get it working with Docker for Mac) https://medium.com/@thms.hmm/docker-for-mac-with-kubernetes- enable-k8s-dashboard-62fe036b7480
  6. Kubernetes Terminology Continued Deployment Instructions for creating/updating applications in the

    cluster. References Docker Images. Pod Collection of containers - treated as a single application. Service Basic internal load balancer for pod networking. Expose multiple pods as a single end point.
  7. Kubernetes Deployment File Example apiVersion: apps/v1 kind: Deployment metadata: name:

    nginx-example labels: app: nginx-hello-world spec: replicas: 2 selector: matchLabels: app: nginx-hello-world template: metadata: labels: app: nginx-hello-world spec: containers: - name: nginx image: violetaria/docker-example ports: - containerPort: 80
  8. Kubernetes Service File Example kind: Service apiVersion: v1 metadata: name:

    nginx-service spec: selector: app: nginx-hello-world ports: - protocol: TCP port: 8888 targetPort: 80