Kubernetes from a Box Mix

L
@stillinbeta // #SREcon Americas 2019
While you’re
waiting... http://bit.ly/srecon-cake0
@stillinbeta // #SREcon Americas 2019
Kubernetes From
A Cake Mix
Liz Frost
@stillinbeta // #SREcon Americas 2019
Who am I?
Liz Frost
Twitter: @stillinbeta
slack.k8s.io: @liz
@stillinbeta // #SREcon Americas 2019
Who am I?
@stillinbeta // #SREcon Americas 2019
Who am I?
@stillinbeta // #SREcon Americas 2019
Who am I?
It’s pronounced
“kube-cuddle”
@stillinbeta // #SREcon Americas 2019
Why should you listen to me?
● sig-cluster-lifecycle member
● kubernetes contributor
● kubeadm developer
@stillinbeta // #SREcon Americas 2019
What is Kubernetes?
@stillinbeta // #SREcon Americas 2019
@stillinbeta // #SREcon Americas 2019
@stillinbeta // #SREcon Americas 2019
@stillinbeta // #SREcon Americas 2019
Node
Pod Pod Pod
Node
Pod Pod Pod
User
@stillinbeta // #SREcon Americas 2019
Node
Pod Pod Pod
Node
Pod Pod Pod
User
@stillinbeta // #SREcon Americas 2019
Kubernetes API
User
@stillinbeta // #SREcon Americas 2019
Kubernetes APIConformance
Tests
@stillinbeta // #SREcon Americas 2019
Kubernetes APIConformance
Tests
@stillinbeta // #SREcon Americas 2019
Kubernetes APIConformance
Tests
@stillinbeta // #SREcon Americas 2019
Kubernetes APIConformance
Tests
@stillinbeta // #SREcon Americas 2019
Kubernetes API A wizard did itConformance
Tests
@stillinbeta // #SREcon Americas 2019
We got Opinions
@stillinbeta // #SREcon Americas 2019
Kubeadm™ brand
Kubernetes
@stillinbeta // #SREcon Americas 2019
kubeadm init
@stillinbeta // #SREcon Americas 2019
$ kubeadm init --help
Run this command in order to set up the Kubernetes master.
The "init" command executes the following phases:
```
preflight Run master pre-flight checks
kubelet-start Writes kubelet settings and (re)starts the kubelet
certs Certificate generation
/etcd-ca Generates the self-signed CA to provision identities for etcd
/etcd-server Generates the certificate for serving etcd
/etcd-healthcheck-client Generates the client certificate for liveness probes to healtcheck etcd
/apiserver-etcd-client Generates the client apiserver uses to access etcd
/etcd-peer Generates the credentials for etcd nodes to communicate with each other
/ca Generates the self-signed Kubernetes CA to provision identities for other Kubernetes components
/apiserver Generates the certificate for serving the Kubernetes API
/apiserver-kubelet-client Generates the Client certificate for the API server to connect to kubelet
/front-proxy-ca Generates the self-signed CA to provision identities for front proxy
/front-proxy-client Generates the client for the front proxy
/sa Generates a private key for signing service account tokens along with its public key
kubeconfig Generates all kubeconfig files necessary to establish the control plane and the admin kubeconfig
file
/admin Generates a kubeconfig file for the admin to use and for kubeadm itself
/kubelet Generates a kubeconfig file for the kubelet to use *only* for cluster bootstrapping purposes
/controller-manager Generates a kubeconfig file for the controller manager to use
/scheduler Generates a kubeconfig file for the scheduler to use
control-plane Generates all static Pod manifest files necessary to establish the control plane
/apiserver Generates the kube-apiserver static Pod manifest
/controller-manager Generates the kube-controller-manager static Pod manifest
/scheduler Generates the kube-scheduler static Pod manifest
etcd Generates static Pod manifest file for local etcd.
/local Generates the static Pod manifest file for a local, single-node local etcd instance.
upload-config Uploads the kubeadm and kubelet configuration to a ConfigMap
/kubeadm Uploads the kubeadm ClusterConfiguration to a ConfigMap
/kubelet Uploads the kubelet component config to a ConfigMap
mark-control-plane Mark a node as a control-plane
bootstrap-token Generates bootstrap tokens used to join a node to a cluster
addon Installs required addons for passing Conformance tests
/coredns Installs the CoreDNS addon to a Kubernetes cluster
/kube-proxy Installs the kube-proxy addon to a Kubernetes cluster
@stillinbeta // #SREcon Americas 2019
$ kubeadm init --help
Run this command in order to set up the Kubernetes master.
The "init" command executes the following phases:
```
preflight Run master pre-flight checks
kubelet-start Writes kubelet settings and (re)starts the kubelet
certs Certificate generation
kubeconfig Generates all kubeconfig files necessary
control-plane Generates all static Pod manifest files necessary to establish the
/apiserver Generates the kube-apiserver static Pod manifest
/controller-manager Generates the kube-controller-manager static Pod manifest
/scheduler Generates the kube-scheduler static Pod manifest
etcd Generates static Pod manifest file for local etcd.
/local Generates the static Pod manifest file for a local etcd instance.
upload-config Uploads the kubeadm and kubelet configuration to a ConfigMap
/kubeadm Uploads the kubeadm ClusterConfiguration to a ConfigMap
/kubelet Uploads the kubelet component config to a ConfigMap
mark-control-plane Mark a node as a control-plane
bootstrap-token Generates bootstrap tokens used to join a node to a cluster
addon Installs required addons for passing Conformance tests
/coredns Installs the CoreDNS addon to a Kubernetes cluster
/kube-proxy Installs the kube-proxy addon to a Kubernetes cluster
@stillinbeta // #SREcon Americas 2019
preflight
kubelet-start
certs
kubeconfig
control-plane
/apiserver
/controller-manager
/scheduler
etcd
/local
upload-config
/kubeadm
/kubelet
mark-control-plane
bootstrap-token
addon
/coredns
/kube-proxy
@stillinbeta // #SREcon Americas 2019
What are we making?
● kubelet
● etcd
● kube-apiserver
● kube-contoller-manager
● kube-scheduler
@stillinbeta // #SREcon Americas 2019
master
kubelet
etcd kube-
apiserver
kube-
scheduler
kube-
controller-
manager
docker
process
container
Node (VM /
physical
Machine)
https
IPC
@stillinbeta // #SREcon Americas 2019
kubelet
etcd
docker
kube-
apiserver
kube-
scheduler
kube-
controller
-manager
process
container
Node (VM /
physical
Machine)
@stillinbeta // #SREcon Americas 2019
kubelet
etcd
docker
kube-
apiserver
kube-
scheduler
kube-
controller
-manager
process
Kubernetes
pod
Node (VM /
physical
Machine)
@stillinbeta // #SREcon Americas 2019
kubelet
etcd
docker
kube-
apiserver
kube-
scheduler
kube-
controller
-manager
process
container
Node (VM /
physical
Machine)
@stillinbeta // #SREcon Americas 2019
kubelet
@stillinbeta // #SREcon Americas 2019
What will we need locally?
● kubelet
● kubeadm
● docker
@stillinbeta // #SREcon Americas 2019
kubelet connects to API server...
...but the API server is run by the kubelet
@stillinbeta // #SREcon Americas 2019
@stillinbeta // #SREcon Americas 2019
Kubelet boot
Start static pods
Try to connect to
API server
@stillinbeta // #SREcon Americas 2019
Kubelet boot
Start static pods
Try to connect to
API server
@stillinbeta // #SREcon Americas 2019
Kubelet boot
Start static pods
@stillinbeta // #SREcon Americas 2019
Tutorial 1! http://bit.ly/srecon-cake1
@stillinbeta // #SREcon Americas 2019
kubeadm
@stillinbeta // #SREcon Americas 2019
kubeadm
REMOVE BEFORE FLIGHT
@stillinbeta // #SREcon Americas 2019
Preflight Checks
● Avoid common problems
● Handy guard-rails
● Ignore at your own peril!
@stillinbeta // #SREcon Americas 2019
Tutorial 2! http://bit.ly/srecon-cake2
@stillinbeta // #SREcon Americas 2019
@stillinbeta // #SREcon Americas 2019
From the Website
● Simple: well-defined, user-facing API (gRPC)
● Secure: automatic TLS with optional client cert authentication
● Fast: benchmarked 10,000 writes/sec
● Reliable: properly distributed using Raft
@stillinbeta // #SREcon Americas 2019
What you care about
● Key/value store
● Optionally distributed
● Only stateful part of kubernetes
● Secured by client certificates
@stillinbeta // #SREcon Americas 2019
Where do we put it?
● External?
● HA?
● Self-Hosted
● Single Node
@stillinbeta // #SREcon Americas 2019
Setting up etcd
Generate Certificates Create Pod Manifest Run Healthcheck
@stillinbeta // #SREcon Americas 2019
Tutorial 3! http://bit.ly/srecon-cake3
@stillinbeta // #SREcon Americas 2019
apiserver
@stillinbeta // #SREcon Americas 2019
master
kubelet
etcd kube-
apiserver
kube-
scheduler
kube-
controller-
manager
docker
process
container
Node (VM /
physical
Machine)
https
IPC
User
@stillinbeta // #SREcon Americas 2019
The centre of
everything
@stillinbeta // #SREcon Americas 2019
kube-apiserver
@stillinbeta // #SREcon Americas 2019
kube-apiserver
● Exclusive control of etcd
● Handles all access control
● Stores some (but not all!) APIs
● Proxies everything
@stillinbeta // #SREcon Americas 2019
API Groups?
GET /apis/apps/v1/namespaces/default/deployments/myapp
API Group API Version Namespace Resource
Resource
Name
@stillinbeta // #SREcon Americas 2019
Custom Resource Definitions
API Request
MyCRD Watch NotificationMyCRD Response
User (kubectl, curl) kube-apiserver CRD controller
@stillinbeta // #SREcon Americas 2019
kubectl exec
Command
Command
Command output
User (kubectl, curl) kube-apiserver Running Pod
Command Output
@stillinbeta // #SREcon Americas 2019
Tutorial 4! http://bit.ly/srecon-cake4
@stillinbeta // #SREcon Americas 2019
kube-controller-manager
@stillinbeta // #SREcon Americas 2019
...that could mean anything
@stillinbeta // #SREcon Americas 2019
Controller
State Changes
Desired State
Reactions
@stillinbeta // #SREcon Americas 2019
ReplicaSetController
Pod Created / Destroyed
List of ReplicaSets
Create / Destroy Pods
@stillinbeta // #SREcon Americas 2019
NodeController
Node Health Changes
List of Pods
Destroy Pods
@stillinbeta // #SREcon Americas 2019
kube-controller-manager
Controller
goroutineController
goroutineController
goroutineController
goroutineController
goroutine
Controller
goroutineController
goroutineController
goroutineController
goroutineController
goroutine
Controller
goroutineController
goroutineController
goroutineController
goroutineController
goroutine
Controller
goroutineController
goroutineController
goroutineController
goroutineController
goroutine
@stillinbeta // #SREcon Americas 2019
Tutorial 5! http://bit.ly/srecon-cake5
@stillinbeta // #SREcon Americas 2019
Scheduler
@stillinbeta // #SREcon Americas 2019
kube-schedulerPods Nodes
Assignments
@stillinbeta // #SREcon Americas 2019
I need a
GPU
I’m out of
disk
I’m running
Solaris
I’m in
Europe
I can’t be
on Node17
I want to
be in
us-east-1c
@stillinbeta // #SREcon Americas 2019
I prefer
Europe
I prefer not to
run on the
same node as
pod17
@stillinbeta // #SREcon Americas 2019
Bin Packing
@stillinbeta // #SREcon Americas 2019
Tutorial 6! http://bit.ly/srecon-cake6
@stillinbeta // #SREcon Americas 2019
What would be next?
● DNS
● Container Networking
● Proxying
● Multiple Nodes
@stillinbeta // #SREcon Americas 2019
Your Cluster is Not:
● Secure
● Production-Ready
● Resilient
● High-Availability
● Certified Kubernetes
@stillinbeta // #SREcon Americas 2019
But it is yours.
@stillinbeta / #Kubecon Seattle 2018
Questions?
Concerns?
Come find me!
I’m the one with pink hair!
Twitter: @stillinbeta
slack.k8s.io: @liz
Github: github.com/stillinbeta
1 of 74

Recommended

Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with... by
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...VMware Tanzu
328 views100 slides
Building an API using Grape by
Building an API using GrapeBuilding an API using Grape
Building an API using Grapevisnu priya
1.1K views14 slides
What's rancher v2.1.0 JA by
What's rancher v2.1.0 JAWhat's rancher v2.1.0 JA
What's rancher v2.1.0 JAcyberblack28 Ichikawa
1.7K views39 slides
Sailing into 2018 with Kubernetes and Istio by
Sailing into 2018 with Kubernetes and IstioSailing into 2018 with Kubernetes and Istio
Sailing into 2018 with Kubernetes and IstioFernand Galiana
200 views38 slides
Making Swift Native Modules in React Native by
Making Swift Native Modules in React NativeMaking Swift Native Modules in React Native
Making Swift Native Modules in React NativeRay Deck
74 views16 slides
Spring Cloud Kubernetes - Spencer Gibb by
Spring Cloud Kubernetes - Spencer GibbSpring Cloud Kubernetes - Spencer Gibb
Spring Cloud Kubernetes - Spencer GibbVMware Tanzu
316 views22 slides

More Related Content

What's hot

Test-Driven Infrastructure with Chef by
Test-Driven Infrastructure with ChefTest-Driven Infrastructure with Chef
Test-Driven Infrastructure with ChefMichael Lihs
1.6K views38 slides
The Berkshelf Way by
The Berkshelf WayThe Berkshelf Way
The Berkshelf WayChef Software, Inc.
26.9K views79 slides
Cookbook refactoring & abstracting logic to Ruby(gems) by
Cookbook refactoring & abstracting logic to Ruby(gems)Cookbook refactoring & abstracting logic to Ruby(gems)
Cookbook refactoring & abstracting logic to Ruby(gems)Chef Software, Inc.
4.9K views109 slides
ZFConf 2012: Реализация доступа к СУБД IBM DB2 посредством встраиваемого SQL ... by
ZFConf 2012: Реализация доступа к СУБД IBM DB2 посредством встраиваемого SQL ...ZFConf 2012: Реализация доступа к СУБД IBM DB2 посредством встраиваемого SQL ...
ZFConf 2012: Реализация доступа к СУБД IBM DB2 посредством встраиваемого SQL ...ZFConf Conference
1K views31 slides
ATDD with Behat and Selenium (LDNSE6) by
ATDD with Behat and Selenium (LDNSE6)ATDD with Behat and Selenium (LDNSE6)
ATDD with Behat and Selenium (LDNSE6)Shashikant Jagtap
6.6K views64 slides
jbang: Unleash the power of Java for shell scripting by
jbang: Unleash the power of Java for shell scriptingjbang: Unleash the power of Java for shell scripting
jbang: Unleash the power of Java for shell scriptingRed Hat Developers
2.8K views34 slides

What's hot(12)

Test-Driven Infrastructure with Chef by Michael Lihs
Test-Driven Infrastructure with ChefTest-Driven Infrastructure with Chef
Test-Driven Infrastructure with Chef
Michael Lihs1.6K views
Cookbook refactoring & abstracting logic to Ruby(gems) by Chef Software, Inc.
Cookbook refactoring & abstracting logic to Ruby(gems)Cookbook refactoring & abstracting logic to Ruby(gems)
Cookbook refactoring & abstracting logic to Ruby(gems)
Chef Software, Inc.4.9K views
ZFConf 2012: Реализация доступа к СУБД IBM DB2 посредством встраиваемого SQL ... by ZFConf Conference
ZFConf 2012: Реализация доступа к СУБД IBM DB2 посредством встраиваемого SQL ...ZFConf 2012: Реализация доступа к СУБД IBM DB2 посредством встраиваемого SQL ...
ZFConf 2012: Реализация доступа к СУБД IBM DB2 посредством встраиваемого SQL ...
ATDD with Behat and Selenium (LDNSE6) by Shashikant Jagtap
ATDD with Behat and Selenium (LDNSE6)ATDD with Behat and Selenium (LDNSE6)
ATDD with Behat and Selenium (LDNSE6)
Shashikant Jagtap6.6K views
jbang: Unleash the power of Java for shell scripting by Red Hat Developers
jbang: Unleash the power of Java for shell scriptingjbang: Unleash the power of Java for shell scripting
jbang: Unleash the power of Java for shell scripting
Red Hat Developers2.8K views
The Berkshelf Way by Jamie Winsor
The Berkshelf WayThe Berkshelf Way
The Berkshelf Way
Jamie Winsor3.7K views
KubeCon 2017 Zero Touch Provision by RackN
KubeCon 2017 Zero Touch ProvisionKubeCon 2017 Zero Touch Provision
KubeCon 2017 Zero Touch Provision
RackN351 views
Habitat 301: Building Habitats by Jamie Winsor
Habitat 301: Building HabitatsHabitat 301: Building Habitats
Habitat 301: Building Habitats
Jamie Winsor369 views
The path to a Serverless-native era with Kubernetes by Paolo Mainardi by NETWAYS
The path to a Serverless-native era with Kubernetes by Paolo MainardiThe path to a Serverless-native era with Kubernetes by Paolo Mainardi
The path to a Serverless-native era with Kubernetes by Paolo Mainardi
NETWAYS105 views
Writing REST APIs with OpenAPI and Swagger Ada by Stephane Carrez
Writing REST APIs with OpenAPI and Swagger AdaWriting REST APIs with OpenAPI and Swagger Ada
Writing REST APIs with OpenAPI and Swagger Ada
Stephane Carrez3K views

Similar to Kubernetes from a Box Mix

You got database in my cloud! by
You got database  in my cloud!You got database  in my cloud!
You got database in my cloud!Liz Frost
207 views80 slides
Recap of de code 2019 by
Recap of de code 2019Recap of de code 2019
Recap of de code 2019Kyohei Mizumoto
345 views33 slides
Kubernetes from the ground up by
Kubernetes from the ground upKubernetes from the ground up
Kubernetes from the ground upSander Knape
188 views48 slides
XPDDS18: A dive into kbuild - Cao jin, Fujitsu by
XPDDS18: A dive into kbuild - Cao jin, FujitsuXPDDS18: A dive into kbuild - Cao jin, Fujitsu
XPDDS18: A dive into kbuild - Cao jin, FujitsuThe Linux Foundation
570 views27 slides
Kubernetes Basis: Pods, Deployments, and Services by
Kubernetes Basis: Pods, Deployments, and ServicesKubernetes Basis: Pods, Deployments, and Services
Kubernetes Basis: Pods, Deployments, and ServicesJian-Kai Wang
194 views31 slides
Containerize vs Virtualize? NGDC 2009 by
Containerize vs Virtualize? NGDC 2009Containerize vs Virtualize? NGDC 2009
Containerize vs Virtualize? NGDC 2009Andy d
428 views43 slides

Similar to Kubernetes from a Box Mix(20)

You got database in my cloud! by Liz Frost
You got database  in my cloud!You got database  in my cloud!
You got database in my cloud!
Liz Frost207 views
Kubernetes from the ground up by Sander Knape
Kubernetes from the ground upKubernetes from the ground up
Kubernetes from the ground up
Sander Knape188 views
Kubernetes Basis: Pods, Deployments, and Services by Jian-Kai Wang
Kubernetes Basis: Pods, Deployments, and ServicesKubernetes Basis: Pods, Deployments, and Services
Kubernetes Basis: Pods, Deployments, and Services
Jian-Kai Wang194 views
Containerize vs Virtualize? NGDC 2009 by Andy d
Containerize vs Virtualize? NGDC 2009Containerize vs Virtualize? NGDC 2009
Containerize vs Virtualize? NGDC 2009
Andy d428 views
You got database in my cloud (short version) by Liz Frost
You got database  in my cloud (short version)You got database  in my cloud (short version)
You got database in my cloud (short version)
Liz Frost287 views
WSO2 Screencast - How to Easily Build a Git-Based CI/CD Pipeline for your API... by Wasura Wattearachchi
WSO2 Screencast - How to Easily Build a Git-Based CI/CD Pipeline for your API...WSO2 Screencast - How to Easily Build a Git-Based CI/CD Pipeline for your API...
WSO2 Screencast - How to Easily Build a Git-Based CI/CD Pipeline for your API...
Installing Component Pack 6.0.0.6 by LetsConnect
Installing Component Pack 6.0.0.6Installing Component Pack 6.0.0.6
Installing Component Pack 6.0.0.6
LetsConnect2.5K views
Hands-on VeriFast with STM32 microcontroller @ Nagoya by Kiwamu Okabe
Hands-on VeriFast with STM32 microcontroller @ NagoyaHands-on VeriFast with STM32 microcontroller @ Nagoya
Hands-on VeriFast with STM32 microcontroller @ Nagoya
Kiwamu Okabe709 views
Ports, pods and proxies by LibbySchulze
Ports, pods and proxiesPorts, pods and proxies
Ports, pods and proxies
LibbySchulze118 views
Mete Atamel - Serverless with Knative - Codemotion Amsterdam 2019 by Codemotion
Mete Atamel - Serverless with Knative - Codemotion Amsterdam 2019Mete Atamel - Serverless with Knative - Codemotion Amsterdam 2019
Mete Atamel - Serverless with Knative - Codemotion Amsterdam 2019
Codemotion142 views
Developing Serverless Applications on Kubernetes with Knative by VMware Tanzu
Developing Serverless Applications on Kubernetes with KnativeDeveloping Serverless Applications on Kubernetes with Knative
Developing Serverless Applications on Kubernetes with Knative
VMware Tanzu1.7K views
Blasting Through the Clouds - Automating Cloud Foundry with Concourse CI by Fabian Keller
Blasting Through the Clouds - Automating Cloud Foundry with Concourse CIBlasting Through the Clouds - Automating Cloud Foundry with Concourse CI
Blasting Through the Clouds - Automating Cloud Foundry with Concourse CI
Fabian Keller262 views
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트 by Amazon Web Services Korea
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
Webinar - Unbox GitLab CI/CD by Annie Huang
Webinar - Unbox GitLab CI/CD Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD
Annie Huang345 views
Scaling docker with kubernetes by Liran Cohen
Scaling docker with kubernetesScaling docker with kubernetes
Scaling docker with kubernetes
Liran Cohen2.4K views
Amazon Container Services – 유재석 (AWS 솔루션즈 아키텍트) by Amazon Web Services Korea
 Amazon Container Services – 유재석 (AWS 솔루션즈 아키텍트) Amazon Container Services – 유재석 (AWS 솔루션즈 아키텍트)
Amazon Container Services – 유재석 (AWS 솔루션즈 아키텍트)

Recently uploaded

HarshithAkkapelli_Presentation.pdf by
HarshithAkkapelli_Presentation.pdfHarshithAkkapelli_Presentation.pdf
HarshithAkkapelli_Presentation.pdfharshithakkapelli
11 views16 slides
Copilot Prompting Toolkit_All Resources.pdf by
Copilot Prompting Toolkit_All Resources.pdfCopilot Prompting Toolkit_All Resources.pdf
Copilot Prompting Toolkit_All Resources.pdfRiccardo Zamana
6 views4 slides
What Can Employee Monitoring Software Do?​ by
What Can Employee Monitoring Software Do?​What Can Employee Monitoring Software Do?​
What Can Employee Monitoring Software Do?​wAnywhere
21 views11 slides
Consulting for Data Monetization Maximizing the Profit Potential of Your Data... by
Consulting for Data Monetization Maximizing the Profit Potential of Your Data...Consulting for Data Monetization Maximizing the Profit Potential of Your Data...
Consulting for Data Monetization Maximizing the Profit Potential of Your Data...Flexsin
15 views10 slides
DevsRank by
DevsRankDevsRank
DevsRankdevsrank786
11 views1 slide
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema by
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - GeertsemaDSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - GeertsemaDeltares
17 views13 slides

Recently uploaded(20)

Copilot Prompting Toolkit_All Resources.pdf by Riccardo Zamana
Copilot Prompting Toolkit_All Resources.pdfCopilot Prompting Toolkit_All Resources.pdf
Copilot Prompting Toolkit_All Resources.pdf
Riccardo Zamana6 views
What Can Employee Monitoring Software Do?​ by wAnywhere
What Can Employee Monitoring Software Do?​What Can Employee Monitoring Software Do?​
What Can Employee Monitoring Software Do?​
wAnywhere21 views
Consulting for Data Monetization Maximizing the Profit Potential of Your Data... by Flexsin
Consulting for Data Monetization Maximizing the Profit Potential of Your Data...Consulting for Data Monetization Maximizing the Profit Potential of Your Data...
Consulting for Data Monetization Maximizing the Profit Potential of Your Data...
Flexsin 15 views
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema by Deltares
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - GeertsemaDSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema
Deltares17 views
DSD-INT 2023 Baseline studies for Strategic Coastal protection for Long Islan... by Deltares
DSD-INT 2023 Baseline studies for Strategic Coastal protection for Long Islan...DSD-INT 2023 Baseline studies for Strategic Coastal protection for Long Islan...
DSD-INT 2023 Baseline studies for Strategic Coastal protection for Long Islan...
Deltares11 views
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx by animuscrm
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
animuscrm13 views
DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)... by Deltares
DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)...DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)...
DSD-INT 2023 Modelling litter in the Yarra and Maribyrnong Rivers (Australia)...
Deltares9 views
DSD-INT 2023 FloodAdapt - A decision-support tool for compound flood risk mit... by Deltares
DSD-INT 2023 FloodAdapt - A decision-support tool for compound flood risk mit...DSD-INT 2023 FloodAdapt - A decision-support tool for compound flood risk mit...
DSD-INT 2023 FloodAdapt - A decision-support tool for compound flood risk mit...
Deltares13 views
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra... by Marc Müller
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra....NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
Marc Müller38 views
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports by Ra'Fat Al-Msie'deen
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
DSD-INT 2023 SFINCS Modelling in the U.S. Pacific Northwest - Parker by Deltares
DSD-INT 2023 SFINCS Modelling in the U.S. Pacific Northwest - ParkerDSD-INT 2023 SFINCS Modelling in the U.S. Pacific Northwest - Parker
DSD-INT 2023 SFINCS Modelling in the U.S. Pacific Northwest - Parker
Deltares9 views
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ... by Donato Onofri
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Donato Onofri711 views
DSD-INT 2023 Dam break simulation in Derna (Libya) using HydroMT_SFINCS - Prida by Deltares
DSD-INT 2023 Dam break simulation in Derna (Libya) using HydroMT_SFINCS - PridaDSD-INT 2023 Dam break simulation in Derna (Libya) using HydroMT_SFINCS - Prida
DSD-INT 2023 Dam break simulation in Derna (Libya) using HydroMT_SFINCS - Prida
Deltares18 views
El Arte de lo Possible by Neo4j
El Arte de lo PossibleEl Arte de lo Possible
El Arte de lo Possible
Neo4j38 views
Software evolution understanding: Automatic extraction of software identifier... by Ra'Fat Al-Msie'deen
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...
MariaDB stored procedures and why they should be improved by Federico Razzoli
MariaDB stored procedures and why they should be improvedMariaDB stored procedures and why they should be improved
MariaDB stored procedures and why they should be improved

Kubernetes from a Box Mix

  • 1. @stillinbeta // #SREcon Americas 2019 While you’re waiting... http://bit.ly/srecon-cake0
  • 2. @stillinbeta // #SREcon Americas 2019 Kubernetes From A Cake Mix Liz Frost
  • 3. @stillinbeta // #SREcon Americas 2019 Who am I? Liz Frost Twitter: @stillinbeta slack.k8s.io: @liz
  • 4. @stillinbeta // #SREcon Americas 2019 Who am I?
  • 5. @stillinbeta // #SREcon Americas 2019 Who am I?
  • 6. @stillinbeta // #SREcon Americas 2019 Who am I? It’s pronounced “kube-cuddle”
  • 7. @stillinbeta // #SREcon Americas 2019 Why should you listen to me? ● sig-cluster-lifecycle member ● kubernetes contributor ● kubeadm developer
  • 8. @stillinbeta // #SREcon Americas 2019 What is Kubernetes?
  • 9. @stillinbeta // #SREcon Americas 2019
  • 10. @stillinbeta // #SREcon Americas 2019
  • 11. @stillinbeta // #SREcon Americas 2019
  • 12. @stillinbeta // #SREcon Americas 2019 Node Pod Pod Pod Node Pod Pod Pod User
  • 13. @stillinbeta // #SREcon Americas 2019 Node Pod Pod Pod Node Pod Pod Pod User
  • 14. @stillinbeta // #SREcon Americas 2019 Kubernetes API User
  • 15. @stillinbeta // #SREcon Americas 2019 Kubernetes APIConformance Tests
  • 16. @stillinbeta // #SREcon Americas 2019 Kubernetes APIConformance Tests
  • 17. @stillinbeta // #SREcon Americas 2019 Kubernetes APIConformance Tests
  • 18. @stillinbeta // #SREcon Americas 2019 Kubernetes APIConformance Tests
  • 19. @stillinbeta // #SREcon Americas 2019 Kubernetes API A wizard did itConformance Tests
  • 20. @stillinbeta // #SREcon Americas 2019 We got Opinions
  • 21. @stillinbeta // #SREcon Americas 2019 Kubeadm™ brand Kubernetes
  • 22. @stillinbeta // #SREcon Americas 2019 kubeadm init
  • 23. @stillinbeta // #SREcon Americas 2019 $ kubeadm init --help Run this command in order to set up the Kubernetes master. The "init" command executes the following phases: ``` preflight Run master pre-flight checks kubelet-start Writes kubelet settings and (re)starts the kubelet certs Certificate generation /etcd-ca Generates the self-signed CA to provision identities for etcd /etcd-server Generates the certificate for serving etcd /etcd-healthcheck-client Generates the client certificate for liveness probes to healtcheck etcd /apiserver-etcd-client Generates the client apiserver uses to access etcd /etcd-peer Generates the credentials for etcd nodes to communicate with each other /ca Generates the self-signed Kubernetes CA to provision identities for other Kubernetes components /apiserver Generates the certificate for serving the Kubernetes API /apiserver-kubelet-client Generates the Client certificate for the API server to connect to kubelet /front-proxy-ca Generates the self-signed CA to provision identities for front proxy /front-proxy-client Generates the client for the front proxy /sa Generates a private key for signing service account tokens along with its public key kubeconfig Generates all kubeconfig files necessary to establish the control plane and the admin kubeconfig file /admin Generates a kubeconfig file for the admin to use and for kubeadm itself /kubelet Generates a kubeconfig file for the kubelet to use *only* for cluster bootstrapping purposes /controller-manager Generates a kubeconfig file for the controller manager to use /scheduler Generates a kubeconfig file for the scheduler to use control-plane Generates all static Pod manifest files necessary to establish the control plane /apiserver Generates the kube-apiserver static Pod manifest /controller-manager Generates the kube-controller-manager static Pod manifest /scheduler Generates the kube-scheduler static Pod manifest etcd Generates static Pod manifest file for local etcd. /local Generates the static Pod manifest file for a local, single-node local etcd instance. upload-config Uploads the kubeadm and kubelet configuration to a ConfigMap /kubeadm Uploads the kubeadm ClusterConfiguration to a ConfigMap /kubelet Uploads the kubelet component config to a ConfigMap mark-control-plane Mark a node as a control-plane bootstrap-token Generates bootstrap tokens used to join a node to a cluster addon Installs required addons for passing Conformance tests /coredns Installs the CoreDNS addon to a Kubernetes cluster /kube-proxy Installs the kube-proxy addon to a Kubernetes cluster
  • 24. @stillinbeta // #SREcon Americas 2019 $ kubeadm init --help Run this command in order to set up the Kubernetes master. The "init" command executes the following phases: ``` preflight Run master pre-flight checks kubelet-start Writes kubelet settings and (re)starts the kubelet certs Certificate generation kubeconfig Generates all kubeconfig files necessary control-plane Generates all static Pod manifest files necessary to establish the /apiserver Generates the kube-apiserver static Pod manifest /controller-manager Generates the kube-controller-manager static Pod manifest /scheduler Generates the kube-scheduler static Pod manifest etcd Generates static Pod manifest file for local etcd. /local Generates the static Pod manifest file for a local etcd instance. upload-config Uploads the kubeadm and kubelet configuration to a ConfigMap /kubeadm Uploads the kubeadm ClusterConfiguration to a ConfigMap /kubelet Uploads the kubelet component config to a ConfigMap mark-control-plane Mark a node as a control-plane bootstrap-token Generates bootstrap tokens used to join a node to a cluster addon Installs required addons for passing Conformance tests /coredns Installs the CoreDNS addon to a Kubernetes cluster /kube-proxy Installs the kube-proxy addon to a Kubernetes cluster
  • 25. @stillinbeta // #SREcon Americas 2019 preflight kubelet-start certs kubeconfig control-plane /apiserver /controller-manager /scheduler etcd /local upload-config /kubeadm /kubelet mark-control-plane bootstrap-token addon /coredns /kube-proxy
  • 26. @stillinbeta // #SREcon Americas 2019 What are we making? ● kubelet ● etcd ● kube-apiserver ● kube-contoller-manager ● kube-scheduler
  • 27. @stillinbeta // #SREcon Americas 2019 master kubelet etcd kube- apiserver kube- scheduler kube- controller- manager docker process container Node (VM / physical Machine) https IPC
  • 28. @stillinbeta // #SREcon Americas 2019 kubelet etcd docker kube- apiserver kube- scheduler kube- controller -manager process container Node (VM / physical Machine)
  • 29. @stillinbeta // #SREcon Americas 2019 kubelet etcd docker kube- apiserver kube- scheduler kube- controller -manager process Kubernetes pod Node (VM / physical Machine)
  • 30. @stillinbeta // #SREcon Americas 2019 kubelet etcd docker kube- apiserver kube- scheduler kube- controller -manager process container Node (VM / physical Machine)
  • 31. @stillinbeta // #SREcon Americas 2019 kubelet
  • 32. @stillinbeta // #SREcon Americas 2019 What will we need locally? ● kubelet ● kubeadm ● docker
  • 33. @stillinbeta // #SREcon Americas 2019 kubelet connects to API server... ...but the API server is run by the kubelet
  • 34. @stillinbeta // #SREcon Americas 2019
  • 35. @stillinbeta // #SREcon Americas 2019 Kubelet boot Start static pods Try to connect to API server
  • 36. @stillinbeta // #SREcon Americas 2019 Kubelet boot Start static pods Try to connect to API server
  • 37. @stillinbeta // #SREcon Americas 2019 Kubelet boot Start static pods
  • 38. @stillinbeta // #SREcon Americas 2019 Tutorial 1! http://bit.ly/srecon-cake1
  • 39. @stillinbeta // #SREcon Americas 2019 kubeadm
  • 40. @stillinbeta // #SREcon Americas 2019 kubeadm REMOVE BEFORE FLIGHT
  • 41. @stillinbeta // #SREcon Americas 2019 Preflight Checks ● Avoid common problems ● Handy guard-rails ● Ignore at your own peril!
  • 42. @stillinbeta // #SREcon Americas 2019 Tutorial 2! http://bit.ly/srecon-cake2
  • 43. @stillinbeta // #SREcon Americas 2019
  • 44. @stillinbeta // #SREcon Americas 2019 From the Website ● Simple: well-defined, user-facing API (gRPC) ● Secure: automatic TLS with optional client cert authentication ● Fast: benchmarked 10,000 writes/sec ● Reliable: properly distributed using Raft
  • 45. @stillinbeta // #SREcon Americas 2019 What you care about ● Key/value store ● Optionally distributed ● Only stateful part of kubernetes ● Secured by client certificates
  • 46. @stillinbeta // #SREcon Americas 2019 Where do we put it? ● External? ● HA? ● Self-Hosted ● Single Node
  • 47. @stillinbeta // #SREcon Americas 2019 Setting up etcd Generate Certificates Create Pod Manifest Run Healthcheck
  • 48. @stillinbeta // #SREcon Americas 2019 Tutorial 3! http://bit.ly/srecon-cake3
  • 49. @stillinbeta // #SREcon Americas 2019 apiserver
  • 50. @stillinbeta // #SREcon Americas 2019 master kubelet etcd kube- apiserver kube- scheduler kube- controller- manager docker process container Node (VM / physical Machine) https IPC User
  • 51. @stillinbeta // #SREcon Americas 2019 The centre of everything
  • 52. @stillinbeta // #SREcon Americas 2019 kube-apiserver
  • 53. @stillinbeta // #SREcon Americas 2019 kube-apiserver ● Exclusive control of etcd ● Handles all access control ● Stores some (but not all!) APIs ● Proxies everything
  • 54. @stillinbeta // #SREcon Americas 2019 API Groups? GET /apis/apps/v1/namespaces/default/deployments/myapp API Group API Version Namespace Resource Resource Name
  • 55. @stillinbeta // #SREcon Americas 2019 Custom Resource Definitions API Request MyCRD Watch NotificationMyCRD Response User (kubectl, curl) kube-apiserver CRD controller
  • 56. @stillinbeta // #SREcon Americas 2019 kubectl exec Command Command Command output User (kubectl, curl) kube-apiserver Running Pod Command Output
  • 57. @stillinbeta // #SREcon Americas 2019 Tutorial 4! http://bit.ly/srecon-cake4
  • 58. @stillinbeta // #SREcon Americas 2019 kube-controller-manager
  • 59. @stillinbeta // #SREcon Americas 2019 ...that could mean anything
  • 60. @stillinbeta // #SREcon Americas 2019 Controller State Changes Desired State Reactions
  • 61. @stillinbeta // #SREcon Americas 2019 ReplicaSetController Pod Created / Destroyed List of ReplicaSets Create / Destroy Pods
  • 62. @stillinbeta // #SREcon Americas 2019 NodeController Node Health Changes List of Pods Destroy Pods
  • 63. @stillinbeta // #SREcon Americas 2019 kube-controller-manager Controller goroutineController goroutineController goroutineController goroutineController goroutine Controller goroutineController goroutineController goroutineController goroutineController goroutine Controller goroutineController goroutineController goroutineController goroutineController goroutine Controller goroutineController goroutineController goroutineController goroutineController goroutine
  • 64. @stillinbeta // #SREcon Americas 2019 Tutorial 5! http://bit.ly/srecon-cake5
  • 65. @stillinbeta // #SREcon Americas 2019 Scheduler
  • 66. @stillinbeta // #SREcon Americas 2019 kube-schedulerPods Nodes Assignments
  • 67. @stillinbeta // #SREcon Americas 2019 I need a GPU I’m out of disk I’m running Solaris I’m in Europe I can’t be on Node17 I want to be in us-east-1c
  • 68. @stillinbeta // #SREcon Americas 2019 I prefer Europe I prefer not to run on the same node as pod17
  • 69. @stillinbeta // #SREcon Americas 2019 Bin Packing
  • 70. @stillinbeta // #SREcon Americas 2019 Tutorial 6! http://bit.ly/srecon-cake6
  • 71. @stillinbeta // #SREcon Americas 2019 What would be next? ● DNS ● Container Networking ● Proxying ● Multiple Nodes
  • 72. @stillinbeta // #SREcon Americas 2019 Your Cluster is Not: ● Secure ● Production-Ready ● Resilient ● High-Availability ● Certified Kubernetes
  • 73. @stillinbeta // #SREcon Americas 2019 But it is yours.
  • 74. @stillinbeta / #Kubecon Seattle 2018 Questions? Concerns? Come find me! I’m the one with pink hair! Twitter: @stillinbeta slack.k8s.io: @liz Github: github.com/stillinbeta