Slide 1

Slide 1 text

Josh Wood @joshixisjosh8 | [email protected] | coreos.com Kubernetes “the easy way”: Orchestration for decision makers

Slide 2

Slide 2 text

We’re hiring in all departments! Email: [email protected] Positions: coreos.com/ careers 90+ Projects on GitHub, 1,000+ Contributors OPEN SOURCE CoreOS.com - @coreoslinux - github/coreos Secure solutions, support plans, training + more ENTERPRISE [email protected] - tectonic.com - quay.io CoreOS runs the world’s containers

Slide 3

Slide 3 text

● Kubernetes is at the heart of Tectonic ● CoreOS is a leading contributor to the Kubernetes project ● Tectonic adds auto-updates, integration with auth systems like LDAP, SAML, and other enterprise checkboxes Tectonic makes Kubernetes ready for business Kubernetes: a unifying API

Slide 4

Slide 4 text

By making installation uniform across on-premises bare metal and major cloud providers, Tectonic makes hybrid cloud strategies accessible By making the interface to run applications on infrastructure providers uniform, Kubernetes lets teams leverage skills and build artifacts on multiple targets Kubernetes: a unifying API

Slide 5

Slide 5 text

Where applications run should be an economic decision instead of a lock-in by technical limitations or dependencies Kubernetes: a unifying API

Slide 6

Slide 6 text

What is Kubernetes? Container management and orchestration platform Reconciling to desired state for your infrastructure

Slide 7

Slide 7 text

Borg and Omega: internal Google orchestrators Billions of containers, for more than a decade Kubernetes: Open source project encompassing that experience plus CoreOS, RedHat, AWS, Azure and others through the CNCF, a curator of the best OSS tools and standards History

Slide 8

Slide 8 text

Schedule workloads - manage microservice proliferation Automate deployment and lifecycle: Replication, Automation Keep a service running through software and node failure Rolling application updates Declared desired state => cluster state Kubernetes: Key concepts

Slide 9

Slide 9 text

Horizontal scaling Storage orchestration Self-healing Automatic binpacking Automated rollouts and rollbacks Service discovery and load balancing

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

● Implements core control loops ● Regulates the state of the system ● Watches the shared state of the cluster through the apiserver and makes changes attempting to move the current state towards the declared desired state ● Provides the cluster API - what kubectl talks to Kubernetes Control Plane

Slide 13

Slide 13 text

● Primary node agent on each cluster member ● Kubelet takes a set of Pod specs provided through various mechanisms* and ensures that the containers described in those specs are running and healthy Kubernetes Worker Plane: kubelet

Slide 14

Slide 14 text

Kubernetes abstractions - Pod Pod ● A pod is a group of one or more containers ● Co-located and co-scheduled, execute in a shared context ● Containers within a pod share a network namespace (IP address and port space), and can find each other via localhost ● Can communicate with each other using standard IPC (like SystemV semaphores or POSIX shared memory), Volumes or Persistent Volumes

Slide 15

Slide 15 text

Deployments: Automating replication A Deployment simply apiVersion: extensions/v1beta1 kind: Deployment metadata: name: my-nginx spec: replicas: 6 template: metadata: labels: run: my-nginx spec: containers: - name: my-nginx image: nginx ports: - containerPort: 80 $ kubectl create -f ./nginx.yaml deployment "my-nginx" created The number of replicas specified in Deployment 15

Slide 16

Slide 16 text

Kubernetes Primitives - Deployments

Slide 17

Slide 17 text

Kubernetes Primitives - Deployments

Slide 18

Slide 18 text

Kubernetes Primitives - Deployments

Slide 19

Slide 19 text

Kubernetes Primitives - Deployments

Slide 20

Slide 20 text

Kubernetes Primitives - Deployments

Slide 21

Slide 21 text

Kubernetes Primitives - Deployments

Slide 22

Slide 22 text

Kubernetes Primitives - Deployments

Slide 23

Slide 23 text

Kubernetes Primitives - Deployments

Slide 24

Slide 24 text

Kubernetes Primitives - HPA Horizontal Pod Autoscaling: Automatically scales the number of pods based on CPU utilization, etc

Slide 25

Slide 25 text

Kubernetes Primitives - Services Service - Application foo

Slide 26

Slide 26 text

Kubernetes Primitives - Services Service - Application foo Foo v1 Foo v1.1

Slide 27

Slide 27 text

Kubernetes Primitives - Services Service - Application foo Foo v1 Foo v1.1

Slide 28

Slide 28 text

Kubernetes Primitives - Services Service - Application foo Foo v1 Foo v1.1

Slide 29

Slide 29 text

Kubernetes Primitives - Services Service - Application foo Foo v1.1

Slide 30

Slide 30 text

By default, Services have IP address only routable within the cluster Ingress is a collection of rules that allow inbound connections to reach cluster services Type=LoadBalancer Automatic on AWS, Azure, other cloud providers Ingress: Exposing services

Slide 31

Slide 31 text

Ingress, like the Service underlying it, selects destination of route based on rules and labels, e.g., app=nginx An Ingress Controller is responsible for routing this traffic by configuring an LB, edge router, or other frontend (ex: nginx Ingress controller in Tectonic) Ingress: Decoupling service endpoints

Slide 32

Slide 32 text

$ kubectl run nginx --image=nginx --replicas=3 --expose --port=80 --type=LoadBalancer $ kubectl get deployments … $ kubectl create -f application.yaml Kubectl once, kubectl anywhere

Slide 33

Slide 33 text

● Realizes Kubernetes as a hybrid enabler by unifying cluster install method across providers: AWS, Azure, bare metal, and others ● Adds graphical management Console, leverages Kubernetes to make app management identical on any provider ● Monitoring/alerting, Authentication integration make it deployable, supportable for business Tectonic: Enterprise Kubernetes

Slide 34

Slide 34 text

34 Features ● Horizontal Scaling ● Self-healing ● Service Discovery & Load Balancing ● Secrets and configuration management ● Automated application rollouts and rollback ● Automatic binpacking ● Storage orchestration ● Batch execution ● Automated updates of Kubernetes ● Automated updates of Container Linux ● Management Console ● Dex integration ● AWS installer ● Bare Metal Installer ● Secure setup ● More ● More ● more Kubernetes Tectonic Auto Scaling x x Self Healing x x Service Disco & Load Balancing x x Secrets & Config Management x x Automated app rollouts & rollback x x Security - RBAC x x Storage orchestration x x Networking x x Multi-platform, full stack installer x Management Console x No downtime, automated updates: Kubernetes & Container Linux x High Availability (Self Hosted, etc) x Security - Dex/LDAP Integration x Monitoring - Prometheus preconfigured x How is different than Kubernetes? Tectonic is an enterprise distribution of Kubernetes Tectonic delivers pure upstream Kubernetes along with key features that make it “supportable”

Slide 35

Slide 35 text

Thank you! Josh Wood @joshixisjosh9 | [email protected] | coreos.com We’re hiring in all departments! Email: [email protected] Positions: coreos.com/ careers