bookmark_borderDesign a Kubernetes Cluster

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
NodesAWS
1-5M3.medium1 vCPU 3.75 GB
6-10M3.large2 vCPU 7.5 GB
11-100M3.xlarge4 vCPU 15 GB
101-250M3.2xlarge8 vCPU 30 GB
251-500C4.4xlarge16 vCPU 30 GB
> 500C4.8xlarge35 vCPU 60GB
Resources depending on a number of Nodes

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
ANOTE.DEV