## Installation Methods ### Kubeadm *Kubeadm* is a tool used to install a Kubernetes cluster, add/remove node to an existing cluster and update each part of its componants. #### Prerequisites 1. 2 GiB RAM, 2 Core 2. Disable Swap 3. Enable IP bridge traffic 4. Install a [[CRI#CNI & CSI|container runtime]] (preferably `containerd`) 5. Install `kubectl` 6. Configure `cgroup-drivers` ### Kubespray A production-ready automation for installing a Kubernetes cluster. *Kubespray* is a set of Ansible play-books to automate installation of Kubernetes cluster. ### kops Another installation software for production cluster installation. ## Cordon/Drain When updating a Node in Kubernetes, in highly-available apps we want to make sure that there is not downtimes. By doing *cordon* on a Node, we stop the scheduler to work on the selected Node. By doing *drain* we take down its Pods one by one. ## Add-ons ### Metrics Server ![[Pasted image 20250214060726.png]] By adding a metrics server, you can also see `top pods` or `top nodes`. ### Ingress ![[Pasted image 20250214060843.png]] ### Cert-Manager ![[Pasted image 20250214060956.png]] ### Kube Prometheus Stack ![[Pasted image 20250214061022.png]] Also can be used alongside with `kubernetes-mixin` for a set of Grafana dashboards and Prometheus alerts for Kubernetes. ### Trivy ![[Pasted image 20250214061723.png]] ### Kiosk For permission manager on RBACs . ### Velero Velero is used for backup automation. It can save the backup on object storages. ![[Pasted image 20250214061901.png]] ### ArgoCD It enables GitOps for a Kubernetes cluster ### Rook Storage orchestration for Kubernetes cluster. > [!note] > It is a good practice not to save the cluster data on itself!