========== Kubernetes ========== Prerequisites ------------- - Datajoint - Docker Introduction ------------ Typically docker works great for small scale applications, such as deploying to your own personal machine, however often times there is a need to massively scale up which creates a problem. Docker by itself is a bit clucky to deploy to mutiple machines, thus at Google they develop a tool call Kubernetes, a container orchsertration solution. Kubernetes is basically a giant system that handles scheduling, deploying, and managing many containers from many users with different requirements. With this a single user can easily scale up their applications to use all the resources avliable on the cluster with only a .yaml file and a one line command. Setup Your Account ------------------ Before starting, please message Daniel Sitonic on slack to get an K8 account, he will create an account for you on master node of the cluster which is at-kubemaster1. Upon your account creation, you will be able ssh in and being using K8 K8 Terminology - Cluster: A group of machines networked together with kubernetes consistent of a least one master node and a number of worker nodes - Nodes: A machine or virtual machine with compute resources (CPUs, Mem, GPUs, Storage) - Pods: A K8 environment that encapsulate a container that specifies the requirements of running container such as number of GPUs, memory, volumes to be mounted, etc. - Containers: (Docker in this case)