260 likes | 453 Vues
This presentation attempts to give an overview of the Kubernetes cluster management system. It examines the system at a high level. For further details please see the links below. <br> <br><br><br>Links for further information and connecting<br><br>http://www.semtech-solutions.co.nz<br><br>http://www.amazon.com/Michael-Frampton/e/B00NIQDOOM/<br><br>https://nz.linkedin.com/pub/mike-frampton/20/630/385
E N D
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
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
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