typhoon/bare-metal/container-linux/kubernetes
Dalton Hubble f1f4cd6fc0 Inline Container Linux kubelet.service, deprecate kubelet-wrapper
* Change kubelet.service on Container Linux nodes to ExecStart Kubelet
inline to replace the use of the host OS kubelet-wrapper script
* Express rkt run flags and volume mounts in a clear, uniform way to
make the Kubelet service easier to audit, manage, and understand
* Eliminate reliance on a Container Linux kubelet-wrapper script
* Typhoon for Fedora CoreOS developed a kubelet.service that similarly
uses an inline ExecStart (except with podman instead of rkt) and a
more minimal set of volume mounts. Adopt the volume improvements:
  * Change Kubelet /etc/kubernetes volume to read-only
  * Change Kubelet /etc/resolv.conf volume to read-only
  * Remove unneeded /var/lib/cni volume mount

Background:

* kubelet-wrapper was added in CoreOS around the time of Kubernetes v1.0
to simplify running a CoreOS-built hyperkube ACI image via rkt-fly. The
script defaults are no longer ideal (e.g. rkt's notion of trust dates
back to quay.io ACI image serving and signing, which informed the OCI
standard images we use today, though they still lack rkt's signing ideas).
* Shipping kubelet-wrapper was regretted at CoreOS, but remains in the
distro for compatibility. The script is not updated to track hyperkube
changes, but it is stable and kubelet.env overrides bridge most gaps
* Typhoon Container Linux nodes have used kubelet-wrapper to rkt/rkt-fly
run the Kubelet via the official k8s.gcr.io hyperkube image using overrides
(new image registry, new image format, restart handling, new mounts, new
entrypoint in v1.17).
* Observation: Most of what it takes to run a Kubelet container is defined
in Typhoon, not in kubelet-wrapper. The wrapper's value is now undermined
by having to workaround its dated defaults. Typhoon may be better served
defining Kubelet.service explicitly
* Typhoon for Fedora CoreOS developed a kubelet.service without the use
of a host OS kubelet-wrapper which is both clearer and eliminated some
volume mounts
2019-12-29 11:17:26 -08:00
..
cl Inline Container Linux kubelet.service, deprecate kubelet-wrapper 2019-12-29 11:17:26 -08:00
LICENSE Add LICENSE to top-level of each module 2017-09-28 20:41:19 -07:00
README.md Update Kubernetes from v1.16.3 to v1.17.0 2019-12-09 18:31:58 -08:00
bootstrap.tf Update Calico from v3.10.2 to v3.11.1 2019-12-28 11:08:03 -08:00
groups.tf Introduce list of detail objects for bare-metal machines 2019-10-06 20:22:45 -07:00
outputs.tf Rename bootkube modules to bootstrap 2019-09-14 16:24:32 -07:00
profiles.tf Rename CLC files and favor Terraform list index syntax 2019-12-28 12:14:01 -08:00
ssh.tf Rename CLC files and favor Terraform list index syntax 2019-12-28 12:14:01 -08:00
variables.tf Add/update docs for asset_dir and kubeconfig usage 2019-12-05 22:56:42 -08:00
versions.tf Adopt Terraform v0.12 templatefile function 2019-11-13 16:33:36 -08:00

README.md

Typhoon

Typhoon is a minimal and free Kubernetes distribution.

  • Minimal, stable base Kubernetes distribution
  • Declarative infrastructure and configuration
  • Free (freedom and cost) and privacy-respecting
  • Practical for labs, datacenters, and clouds

Typhoon distributes upstream Kubernetes, architectural conventions, and cluster addons, much like a GNU/Linux distribution provides the Linux kernel and userspace components.

Features

  • Kubernetes v1.17.0 (upstream)
  • Single or multi-master, Calico or flannel networking
  • On-cluster etcd with TLS, RBAC-enabled, network policy
  • Advanced features like snippets customization
  • Ready for Ingress, Prometheus, Grafana, and other optional addons

Docs

Please see the official docs and the bare-metal tutorial.