kubernetes - an architectural deep dive - centino systems€¦ · inside kubernetes an...

27
Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino [email protected]

Upload: others

Post on 22-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Inside KubernetesAn Architectural Deep Dive

Anthony E. [email protected]

Page 2: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Anthony E. Nocentino• Consultant and Trainer

• Founder and President of Centino Systems

• Specialize in system architecture and performance

• Masters Computer Science

• Microsoft MVP - Data Platform - 2017 - 2018

• Linux Foundation Certified Engineer

• Friend of Redgate - 2015-2019

• email: [email protected]

• Twitter: @nocentino

• Blog: www.centinosystems.com/blog

• Pluralsight Author: www.pluralsight.com

Page 3: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Agenda

• Container Based Application Deployment

• What is Kubernetes

• Benefits of Using Kubernetes

• Kubernetes API Objects

• Exploring Kubernetes Architecture

• Deploying Applications

• Production Ready Clusters

Page 4: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Container Based Application Deployment

• Single-tier applications - anything written by IBM

• Multi-tier applications - Service oriented, Client/Server…

• Micro-services - smaller, more easily changed units Host Operating System

App1

Binaries/Libraries

Container

App2

Binaries/Libraries

Container

App3

Binaries/Libraries

Container

Page 5: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Modern Application Deployment

Web 1

SQL

• Where do I run the application?

• How do I scale the application?

• How do I consistently deploy?

• How do I provide consistent services in a loosely connected system?Web 2

Caching

Page 6: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

What is Kubernetes?

• Container Orchestrator

• Infrastructure Abstraction

• Desired State

Page 7: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Kubernetes Benefits

• Managing state, starting things and keeping them up

• Speed and consistency of deployment

• Ability to absorb change quickly

• Ability to recovery quickly

• Hide complexity in Cluster

• Persistent application access endpoints

Page 8: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Kubernetes Cluster

Web 1

SQL Web 2

Caching

Cluster

Page 9: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Kubernetes API

• API Objects - Represent resources in your system

• API Server - Main communication hub

• Pods

• Controllers

• Services

• Storage

• …and more

Page 10: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Pods

• One or more containers

• It’s your application or service

• The most basic unit of work

• Unit of scheduling

• Ephemeral - no Pod is ever “redeployed”

Page 11: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Controllers

• Create and manage Pods for you

• Define your desired state

• Respond to Pod State and Health

• ReplicaSet

• Deployment

Page 12: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Services

• Adds persistency to our ephemeral world

• Networking abstraction for Pod access

• IP and DNS name for the service

• Load balancing

• Redeployed Pods automatically updated

• Scaled by adding/removing Pods

Page 13: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Storage

• Persistent Volumes

• Pod independent storage

• Administrator defined storage

• Persistent Volume Claims

• The Pod “claims” the PV

• Decouples the Pod and the storage

SQL

Cluster

Storage

Page 14: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Exploring Kubernetes Architecture

Master

API Server

Cluster Store

Scheduler

Controller Manager

Kubelet

Kube-proxy

Container Runtime

Node

kubectl

Page 15: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

PodPod

Pod

kubectl

Pod

API Server

Cluster Store

Scheduler

Controller Manager

Kubelet

Kube-proxy

Container Runtime

Master

Node

Kubelet

Kube-proxy

Container Runtime

Node

Controller Operation of Pods

Page 16: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

PodPod

Pod

Pod HTTP

Cluster Service

Pod

XServices

Page 17: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Deploying Applications

• Imperative

• Declarative

• YAML and JSON

Page 18: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Declarative Deployment - Manifests

apiVersion: v1kind: Podmetadata: name: nginx-podspec: containers: - name: nginx image: nginx ports: - containerPort: 80

kubectl apply -f nginx.yaml

Page 19: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Application Deployment Process

Pod

kubectlMaster

AP

I Server

Cluster Store

Scheduler

Controller Manager

Kubelet

Kube-proxy

Container Runtime

Node

apply

Page 20: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Demo!

• Deploying a web application

• Accessing Services within a Cluster

• Deploying SQL Server in a ReplicaSet with Persistent Storage

kubectl

API Server

Cluster Store

Scheduler

Controller Manager

Kubelet

Kube-proxy

Container Runtime

Master

Node

Page 21: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Building Production Ready Clusters

• Scalability - number of Nodes

• Inter-cluster communication patterns (Network connectivity)

• High Availability

• API Server - Load Balanced

• etcd - Multiple Replicas

• Disaster Recovery

• etcd Backups

• Persistent Volumes

Page 22: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

From: https://docs.microsoft.com/en-us/sql/big-data-cluster/big-data-cluster-overview?view=sqlallproducts-allversions

Page 23: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Review

• Container Based Application Deployment

• What is Kubernetes

• Benefits of Using Kubernetes

• Kubernetes API Objects

• Exploring Kubernetes Architecture

• Deploying Applications

• Production Ready Clusters

Page 24: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

More Resources• Docker for Windows/Mac

• Minikube

• Managed Service Providers

• Azure Kubernetes Service (AKS)

• https://docs.microsoft.com/en-us/azure/aks/kubernetes-walkthrough

• Elastic Container Service for Kubernetes (EKS)

• https://aws.amazon.com/getting-started/projects/deploy-kubernetes-app-amazon-eks/

• Google Kubernetes Engine (GKE)

• https://cloud.google.com/kubernetes-engine/docs/how-to/

• Pluralsight! - Kubernetes Installation and Configuration Fundamentals

• https://app.pluralsight.com/profile/author/anthony-nocentino

Page 25: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Need more data or help?http://www.centinosystems.com/blog/talks/

Links to resources Demos

Presentation Pluralsight

[email protected]@nocentino

www.centinosystems.com

Solving tough business challenges with technical innovation

Page 26: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Questions?

Page 27: Kubernetes - An Architectural Deep Dive - Centino Systems€¦ · Inside Kubernetes An Architectural Deep Dive Anthony E. Nocentino aen@centinosystems.com. Anthony E. Nocentino

Thank You!