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 ...
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 comes in. Kubernetes is an open source container management platform that helps you run containers at scale. This talk will cover Kubernetes components and show how to run applications on it.
Size: 4.56 MB
Language: en
Added: Jul 12, 2022
Slides: 31 pages
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!