You are on page 1of 14

What Is Kubernetes

● A cluster management system


● Open sourced by Google
● Maintained by the Cloud Native Computing Foundation
● Written in Go
● Apache 2.0 license
● Supports high availability clusters
● Is highly scaleable
How Does Kubernetes Work
Architecture 1

● Uses Kubernetes API to manage and set state


● Master processes manage cluster
– Multiple masters for HA
● Master API server manages API requests
● Controller mgr manages cluster state
● Scheduler applies workload to cluster
● Etcd is a persistent data store
● Containers organised into pod groups
● Services are groups of pods
Architecture 2

● Kubernetes Node
– Kubelet communicates to master
– Kube-proxy manages network services
– Cadvisor provides metrics monitoring
● Pods encapsulate application resources
– One or more containers
– Storage resources
– Network / IP
– Can share resource between containers
Pods

● Pods can manage singleton containers


● Pods can manage multiple containers
– Containers can share resources
– Containers are co located
– One application per pod
– Multiple pods to scale application ( replication )
– Pods managed by a controller
● Pods have their own IP address
● Pods are mortal – they have a life cycle
● Pods resources die with pod unless persistent
Containers
services

● A service is a REST object


● A service definition is posted to the API server
● A service has an IP address
● Services abstract pod access
● Services can be found via
– Environmental variables
– DNS
● Kubernetes supports external services
– Specify spec type ExternalName
Supported Container Types

● Docker
– https://docs.docker.com/install/
● CRI-O
– https://github.com/cri-o/cri-o#getting-started
● Containerd
– https://github.com/containerd/cri/blob/master/docs/in
stallation.md
● frakti
– https://github.com/kubernetes/frakti
storage

● In container storage non persistent by default


● Storage can be shared in a pod between containers
● Shared pod storage still non persistent by default
● Volumes are supported for pods
● Volume mounts determine access for containers
● Many types of Volume supported (see next slide)
● Persistent volumes also supported
Storage – Volume Types

● awsElasticBlockStore ● flexVolume ● projected


● azureDisk ● flocker ● portworxVolume
● azureFile ● gcePersistentDisk ● quobyte
● cephfs ● gitRepo (deprecated) ● rbd
● cinder ● glusterfs ● scaleIO
● configMap ● hostPath ● secret
● csi ● iscsi ● storageos
● downwardAPI ● local ● vsphereVolume
● emptyDir ● nfs
● fc (fibre channel) ● persistentVolumeClaim
Administration

● Web based interface for monitoring and control


● Kubernetes API for access and control
● Use sysctl command for setting kernel parameters
● Yaml based application configuration
● Kubectl for resource management
● Label management for resource access
● Manage scaling with kubectl
Information Sources

● For further reading check these data sources


– https://kubernetes.io/docs/home/
– https://en.wikipedia.org/wiki/Kubernetes
Available Books

● See “Big Data Made Easy”


– Apress Jan 2015

See “Mastering Apache Spark”
– Packt Oct 2015

See “Complete Guide to Open Source Big Data Stack
– “Apress Jan 2018”

● Find the author on Amazon


– www.amazon.com/Michael-Frampton/e/B00NIQDOOM/


Connect on LinkedIn
– nz.linkedin.com/pub/mike-frampton/20/630/385
Contact Us

● Feel free to contact at


– mike_frampton@hotmail.com

● Or connect on LinkedIn

● Im always interested in
– New technology
– Opportunities
– Technology based issues
– Big data integration

You might also like