Kubernetes¶
Kubernetes (K8s) is an open-source system for automating deployment, scaling, and management of containerized applications.
More information on Kubernetes here: Kubernetes
Kubernetes topics¶
- Building a Kubernetes Cluster
- Deploy a Kubernetes Cluster with Kubespray
- Managing applications with Kubernetes
- Persistent Volumes in Kubernetes
- Share data using Manila
- Minikube
- Deploy BinderHub on Kubernetes
- Deploy Kubernetes and JupyterHub with GPU support
- Using Cacao on Jetstream2 for Kubernetes
Third Party Kubernetes topics¶
- Deploy JupyterHub
- Update Openstack credentials in Kubernetes, useful if the Application Credential generated for Kubernetes has expired.
- Quickly scaling a Kubernetes cluster on Jetstream using shelving
Some K8s basics :
- A Pod is the smallest deployable unit of Kubernetes. A Pod can contain one or more containers on a single IP address (internal). Containers within a pod can communicate with each other. Pods are run on Nodes.
- A Node is a physical or virtual machine and it’s components include kubelet, kube-proxy and Container run-time.
- Kubelet is the Node agent that manages containers created by Kubernetes.
- Kube-proxy is used by Service to run a network proxy on each Node.
- Container runtime is the software responsible for running containers. Ex: Docker, containerd, and CRI-O.
- Service allows the use of a stable network address for an application, including a persistent ip address and a local DNS entry within the cluster. Service also acts as a load-balancer across all pods allowing the addition removal of pods from a deployment.
- ReplicaSet is a convenient way to build multiple pods at once.
- Deployment provides declarative updates for Pods and ReplicaSets (rolling updates)
- Control Pane is a node that controls/manages worker nodes. The components of the Control Pane are the API Server, the cluster store, the controller manager, and the scheduler.
- API server – All communication between the various Kubernetes components must go through the API server
- Cluster Store or etcd – Persistently stores the cluster’s configuration, state, and metadata.
- The Controller Manager runs controller processes that monitor and respond to controller events. Some examples of control loops include; node controller, job controller, end point controller, and replication controller.
- The Scheduler assigns pods to nodes.