Several options to start with a new Kubernetes cluster:
- Managed Kubernetes services (by Cloud Provider):
- Kubernetes management tools:
- Broadcom VMware Tanzu Kubernetes Grid (replaced Pivotal Container Service, aka PKS, with the acquisition of Pivotal of VMware)
- IBM Red Hat OpenShift
- SUSE Rancher
- Kubernetes distributions
- Kubernetes installation tools for Production-grade clusters:
- kubeadm
- kops
- kubespray
- Test clusters
- Kind (Kubernetes in Docker) (kubernetes-sigs/kind): fast and easy testing of clusters
- Minikube on all machines
- MicroK8s from Canonical on Ubuntu
- Kubernetes on workstations
- Docker Desktop on Windows and MacOS
- Rancher Desktop
- Podman Desktop
- Single-node
- Single head node, multiple workers
- Multiple head nodes with HA, multiple workers
- HA etcd, HA head nodes, multiple workers
Networking is a central part of Kubernetes, but it can be challenging to understand exactly how it is expected to work. There are 4 distinct networking problems to address:
- Highly-coupled container-to-container communications
- Pod-to-Pod communications
- Pod-to-Service communications
- External-to-Service communications
Reference: Documentation > Concepts > Cluster Administration > Cluster Networking
A network must be defined to manage the cluster and avoid any IP conflict. Available plugins may implement Container Network Interface (CNI), a CNCF project.
Reference:
- Documentation > Concepts > Extending Kubernetes > Compute, Storage, and Networking Extensions > Network Plugins
- Documentation > Concepts > Cluster Administration > Installing Addons
- Virtual Extensible LAN (VXLAN)
| Name | Network Model | Allow vxlan | Allow network policies | Can encrypt all TCP and UDP traffic |
|---|---|---|---|---|
Calico |
Level 3 | Yes | Yes | Yes |
Weave Net |
Level 2 | Yes | Yes | |
Flannel |
Level 2 | Yes | ||
Kube Router |
Level 3 | Yes | ||
Romana (code) |
Level 3 | Yes | ||
Kopeio |
Level 2 | Yes | Yes |
3 choices:
- Kubernetes Documentation > Tasks > Monitoring, Logging, and Debugging > Resource metrics pipeline
- Kubernetes Documentation > Tasks > Configure Pods and Containers > Assign CPU Resources to Containers and Pods
- kubernetes-sigs/metrics-server
See recipes with Ansible, Chef, Puppet, Terraform.
As of July of 2020, Kyperkube seems deprecated. The image build has been removed from Kubernetes base images, see PR#88676.