Getting Started with Kubernetes

6,963 views 31 slides Jul 12, 2022
Slide 1
Slide 1 of 31
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31

About This Presentation

If you’re working with just a few containers, managing them isn't too complicated. But what if you have hundreds or thousands? Think about having to handle multiple upgrades for each container, keeping track of container and node state, available resources, and more. That’s where Kubernetes ...


Slide Content

Getting Started with
Kubernetes
Tiffany Jernigan
Senior Developer Advocate
VMware
tiffanyfayj

T I F F A N Y F A Y J
DOCKER
People started containerizing applications

T I F F A N Y F A Y J
Containers made it easy to build and scale
cloud-native applications

T I F F A N Y F A Y J
People needed an easier way to manage
large clusters with many containers

T I F F A N Y F A Y JT I F F A N Y F A Y J

T I F F A N Y F A Y J
Open sourcecontainer
management platform
Helps you run
containers at scale
Gives you primitives
for building
modern applications
WHAT IS KUBERNETES?

T I F F A N Y F A Y J
A SINGLE EXTENSIBLE API
SCALEPERFORMANCEBREADTH

T I F F A N Y F A Y J

T I F F A N Y F A Y J
ON-PREMISESCLOUD
KUBERNETES CAN BE RUN ANYWHERE

CONCEPTS
T I F F A N Y F A Y J

T I F F A N Y F A Y J
NODES
•When you deploy Kubernetes, you get a cluster. These
clusters consist of nodes.
•Virtual or physical machines

T I F F A N Y F A Y J
OBJECTS

T I F F A N Y F A Y J
OBJECTS
Pods
•Basic execution unit of a Kubernetes application
•Will not reschedule on failure
Deployment
•Allows scaling, rolling updates, rollbacks
•Delegates pod management to ReplicaSets
ReplicaSet
•Maintains a stable set of replica Pods running at any
given time

T I F F A N Y F A Y J
OBJECTS
StatefulSet
•Used to manage stateful applications
•Manages deployment
DaemonSet
•Creates an instance of a pod on each worker node
Job
•Runs pod(s) until completion
CronJob
•Creates Jobs on a repeating schedule

T I F F A N Y F A Y J
CLUSTER COMPONENTS

T I F F A N Y F A Y J
NODES
API server
controller
manager
scheduler
etcd
cloud controller
managerkubelet
kube-proxy
container
runtime
control planeworker

T I F F A N Y F A Y J
CONTROL PLANE
API server
controller
manager
scheduler
etcd
cloud controller
manager

T I F F A N Y F A Y J
WORKER NODES
kubelet
kube-proxy
container runtime

T I F F A N Y F A Y J
SERVICES

T I F F A N Y F A Y J
SERVICES
•Services give us astable endpointto connect to a pod or a
group of pods
•Maps a fixed IP address to a logical group of pods
•Different types:
•ClusterIP, NodePort, LoadBalancer, ExternalName
•There are more kinds and flavors of services, but we won’t
get into those today

T I F F A N Y F A Y J
NETWORKING

T I F F A N Y F A Y J
KUBERNETES NETWORK MODEL
•TL;DR: our cluster (nodes and pods) is one big flat IP network
•In detail:
⁃all nodes must be able to reach each other, without NAT
⁃all pods must be able to reach each other, without NAT
⁃pods and nodes must be able to reach each other,
without NAT
⁃each pod is aware of its IP address (no NAT)
•Kubernetes doesn't mandate any other particular
implementation

T I F F A N Y F A Y J
CONTAINER NETWORK INTERFACE (CNI)
•Has a well-defined specification for network plugins
https://github.com/containernetworking/cni/blob/master/SP
EC.md#network-configuration
•When a pod is created, Kubernetes delegates the network
setup to CNI plugins (it can be a single plugin, or a
combination of plugins, each doing one task)

T I F F A N Y F A Y J
SECURITY

T I F F A N Y F A Y J
SECURITY
•Namespaces
•Service accounts
•Role-based access control (RBAC)
•Secrets
•And there’s a lot more
•https://kubernetes.io/docs/reference/access-authn-authz/

T I F F A N Y F A Y J
COMMUNICATION WITH K8S API
•kubectl
•CLI tool used to interface with the Kubernetes API
•~/.kube/config
•Kubeconfigfile is used for securely accessing your
cluster

DEMO
T I F F A N Y F A Y J

T I F F A N Y F A Y J
SOME OTHER THINGS TO LOOK INTO
•ConfigMaps
•Volumes
•Autoscaling

T I F F A N Y F A Y J
A FEW TOOLS TO MANAGE STACKS
•Shell scripts invokingkubectl
•YAML resource manifests committed to a repo
•Carvel carvel.dev
•Kustomize(YAML manifests + patches applied on top)
https://github.com/kubernetes-sigs/kustomize
•Helm(YAML manifests + templating engine)
https://github.com/kubernetes/helm

T I F F A N Y F A Y J
LINKS AND RESOURCES
•https://kubernetes.io/
•https://tanzu.vmware.com/
•https://container.training/-@jpetazzo’sawesome workshops
•https://kubernetes.io/community/-Slack, Google Groups,
meetups
•Free Training:
•https://kube.academy/
•https://kubernetes.io/docs/tutorials/
•https://labs.play-with-k8s.com/

tiffanyfayj
Special thanksto:
Jérôme Petazzoni
@jpetazzo
THANK YOU!
Tags