Design Kubernetes

k8s_preinstall

k8s_preinstall
what workloads we gonna run on k8s cluster
web
analytics
CPU intensive
memory intensive
heavy traffic etc...


Choosing k8s infrastructure
Configure high availability
ETCD in HA 


minikube
kubeadm

ha_k8s

ha_k8s
1. have to use multiple masters

Master node hosts the control plane components

Multiple masters in Active-Active mode. And configure the Loadbalancer to route traffic to both the masters

master1: https://master1:6443  -- Active
master2: https://master2:6443  -- Active

 LB  --> https://load-balancer:6443

but Active-Active some issues in scheduling pods

if we go Active-Standby mode we need to use leader-elect which controller manager is leader
kube-controller-manager \
 --leader-elect true [other options] \
 --leader-elect-lease-duration 15s \
 --leader-elect-renew-deadline 10s \
 --leader-elect-retry-period 2s

master1: https://master1:6443  -- Active
master2: https://master2:6443  -- Standby

ha_etcd

ha_etcd
ETCD --> RAFT Protocol

etcd --> distributed!!!

etcd cluster --> 3 etcd nodes  for high availability.

Quorum = N/2 + 2

etcd leader elect using RAFT algorithm.

in etcd cluster --> minimum 3 nodes is madatory because of Quorum.

ETCDCTL_API=3

ETCD odd nodes are preferrable.
  • HA-k8s-etcd -

_images/multi_ha_setup.png _images/etcd_quorum.png _images/ETCD_HA_2.png