Helm Charts

Helm Charts

Resources provided by Flexkube only allow to run minimal Kubernetes cluster, without many essential services like kube-proxy, CoreDNS or Network Plugin. However, those processes can be easily managed using Kubernetes itself, which allows to manage them as any other Kubernetes workload.

It is also recommended to run Kubernetes control plane components (kube-apiserver, kube-scheduler etc.) as Kubernetes workloads, as this allows easy integration with metrics collection, centralized logging, auto-scaling etc.

The recommended way of installing remaining components is trough helm 3.x, which no longer require Tiller for operating. This allows installing Helm charts directly into the Kubernetes temporary control plane.

Upstream charts

Following charts can be used directly from upstream and it is recommended to install them on every cluster:

  • coredns - provides Cluster DNS service
  • metrics-server - provides API for Pods and Nodes metrics, which is required by kubectl top command and auto-scaling

Those charts can be installed from the stable repository e.g. using the following commands:

helm repo add stable https://kubernetes-charts.storage.googleapis.com/ && \
helm install -n kube-system coredns stable/coredns

Flexkube charts

For the charts, which are not available in upstream projects, Flexkube maintains it’s own charts and provides user a repository, from where the charts can be deployed. Here is the list of charts provided by Flexkube:

  • kubernetes - provides kube-proxy, kube-scheduler, kube-controller-manager, extra roles etc.
  • kube-apiserver - provides kube-apiserver, separately from other Kubernetes components to be able to enforce Kubernetes version skew policy
  • calico - provides Calico CNI
  • kubelet-rubber-stamp - provides daemon, which approves Kubelet serving certificates, which is not done by kube-controller-manager as for other Kubelet certificates

Those charts can be installed from the flexkube repository e.g. using the following commands:

helm repo add flexkube https://flexkube.github.io/charts/ && \
helm install -n kube-system calico flexkube/calico