What is the purpose of the cluster?
- Education?
- Minikube
- Single Node Cluster with Kubeadm/GCP/AWS
- Development & Testing?
- Multi-Node Cluster with a single master and multiple worker nodes
- Setup using Kubeadm tool or quick provision on GCP or AWS or AKS on Azure.
- Hosting Production Application?
- High Availability Multi-Node Cluster with Multiple Master Nodes
- kubeadm or GCP or Kops on AWS or other supported platforms.
- Up to 5,000 nodes in the Cluster.
- Up to 150,000 Pods in the cluster
- Up to 300,000 Containers
- Up to 100 pods per Node.
Application Resource Requirements?
- CPU Intensive
- Memory Intensive
Nodes | AWS | |
1-5 | M3.medium | 1 vCPU 3.75 GB |
6-10 | M3.large | 2 vCPU 7.5 GB |
11-100 | M3.xlarge | 4 vCPU 15 GB |
101-250 | M3.2xlarge | 8 vCPU 30 GB |
251-500 | C4.4xlarge | 16 vCPU 30 GB |
> 500 | C4.8xlarge | 35 vCPU 60GB |
Storage?
- High Performance – SSD Backend Storage
- Mutiple Concurrent connections – Network based storage
- Persistent shared volumes for shared access across multiple Pods
- Label nodes with specific disk types
- Use Node Selectors to assign applications to nodes with specific disk types
Nodes?
- Virtual or Physical Machines
- Minimum of 4 Node Cluster (Size based on workload)
- Master vs Worker Nodes
- Linux X86_Architecture.
- Master nodes can host workloads, but the best practice is to not host workloads on Master Nodes.
- Deployment tools like Kubeadm prevent workloads from being hosted on master nodes by adding a taint to the master node.
- Typically all the control plan components on the master nodes. However, in the large cluster, you may choose to separate the ETCD clusters from the master node to its own cluster node.
Cloud or on Platform?
- on Platform: Kubeadm
- on Cloud:
- GKE for GCP
- Kops for AWS
- Azure Kubernetes Service(AKS) for Azure
What kind of workload are you going to run on the cluster?
- How many applications are to be hosted on the Cluster?
What type of network traffic are the applications expecting?
- Heavy traffic
- Burst traffic
What Kind of applications is going to be hosted on the Cluster?
- Web application
- Big Data / Analytics