what are the prerequisites for deploying app on k8s cluster using kubeadm , like no of cpu's , storage an d disk space state that ?
Table of contents
No headings in the article.
The specific prerequisites for deploying applications on a Kubernetes cluster created with kubeadm
include considerations for CPU, memory, storage, and disk space. The exact requirements can vary based on the nature of your applications and the expected workload. Below are some general guidelines:
CPU:
Kubernetes itself does not have strict CPU requirements, but the overall CPU capacity should be sufficient to handle the desired workloads. The number of CPU cores should align with the computational needs of your applications.
For nodes, it's common to have at least 2 or more CPU cores.
Memory:
Kubernetes nodes should have enough RAM to accommodate both the operating system and the Kubernetes components. As a rule of thumb, allocate a minimum of 2 GB of RAM for each node, but the actual requirements depend on your applications.
Pods and containers within the nodes will also require memory, so ensure that the total memory capacity meets the demands of your workloads.
Storage:
Kubernetes itself doesn't impose strict storage requirements, but you need sufficient storage for the container runtime (e.g., Docker, containerd) and any persistent storage needs of your applications.
Plan for storage capacity based on the size and nature of your applications. Consider whether you need persistent volumes for data storage.
Disk Space:
Disk space is required for the operating system, container runtime, and Kubernetes components. Additionally, disk space is needed for storing container images.
The specific requirements depend on the size and number of container images you plan to use. Allocate enough disk space for your images and other storage needs.
Aim for at least 20 GB of free disk space for each node.
Network:
- Ensure that nodes in your Kubernetes cluster can communicate with each other over the network. Kubernetes uses various network ports for internal communication.
Operating System:
Use a supported and well-maintained Linux distribution. Popular choices include Ubuntu, CentOS, and others.
Follow the Kubernetes compatibility matrix for the supported operating system versions.
Swap:
- Disable swap on all nodes, as Kubernetes doesn't work well with swap enabled.
Remember that these are general guidelines, and the specific resource requirements depend on the characteristics of your applications and the expected workload. Additionally, factors such as the number of nodes in your cluster and the level of redundancy you desire will influence your resource planning.