How do you securely deploy large number of Kubernetes components in isolation?

HOW TO -️ October 18, 2021

Precursor: I am not experienced in the design of large-scale infrastructure deployments for infra applications.

The assumptions for the questions:

  • I have read that it is a good practice to host Kubernetes components in isolation from each other on the network as the network provides a layer of security control.
  • In a large K8S deployment environment, you may have multiple instances of Kubernetes deployment. Each Kubernetes deployment has components including etcd, kube API server, scheduler, controller manager, etc.

If we consider both points above, then the question are:

Q1a) How do you scale the Kubernetes administration/control plane? How do you scale from 1 etcd server to 10 etcd servers for example?

Q1b) In a large organization where there are different business units, do you deploy one K8S instance (active/passive) for each business unit, or multiple K8S instances serving the entire organization?

Q2) For each deployment method described in part (1b), how do you reconcile multiple instances of Kubernetes to get a master view in order to monitor all the instances of containers running on Kubernetes?

Answer

For Q1a - Have you seen this high availability guide in the docs? - https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/ Q1b Would be a business decision which depends upon that organisation's particular needs, as well as the management structure of the organisation and its policies. Thank you. I think that answers the questions

Initializing...