Skip to main content

Posts

Showing posts from August, 2020

Kubernetes Architecture - High Availability Cluster

  Kubernetes High Availability Cluster: No Single Point of failure The basic Kubernetes architecture is described in the previous post . With Kubernetes, we are trying to achieve more reliability to our architecture. But what about the cluster components. So suppose, if we talk about the api-server, if we have only one api-server and if that node crashes, then the complete cluster will fail. So, in order to make the cluster components redundant, we need to ensure each component have their redundancies. Basically with high availability, we have two types of cluster : a) Stacked etcd: Basically, for any type of cluster(either stacked/external), we need at least 3 etcd instances(since it uses the concept of quoram). In this cluster, etcd storage is stacked on top of the other components of cluster. Here the local etcd member talks to only local api-server. api-server is exposed to worker-nodes via Load Balancers(like HAProxy). This approach is simpler to manage than external etcd but i

Kubernetes Architecture

Kubernetes Architecture and Concepts Kubernetes mainly consists of : Master node(Control plane nodes(api-server, kube-scheduler, controller-manager, etcd) Worker Node(Kubelet + kube-proxy) Components of Master Node: kube-apiserver: This component is responsible for exposing all the APIs by Kubernetes cluster. All components from Master / Worker nodes can communicate with api-server directly, hence acting as an interface b/w master & worker node. Clients authenticate via the API Server and also use it as a proxy/tunnel to nodes and pods (and services). The kube-apiserver is responsible for API validation before the resources are actually generated and saved to the data store. Clients can communicate with the API server either through the kubectl command-line client or through a REST API call. etcd:  etcd is a distributed, highly-available key-value data store. It stores all the information about Pods, Nodes, services, desired / current state for all resources. Kube-apiserver is t