Skip to content

Overview

setup-k8s installs and operates kubeadm-based Kubernetes clusters with a single shell entrypoint.

It supports local single-node setup, manual node joins, SSH-driven multi-node deployment, and HA control planes with kube-vip.

What you can do

  • Initialize a kubeadm control-plane node.
  • Join worker and additional control-plane nodes.
  • Deploy a full cluster from one orchestrator host over SSH.
  • Use containerd or CRI-O.
  • Select kube-proxy mode: nftables or iptables automatically by Kubernetes and kernel version, or IPVS.
  • Configure IPv4, IPv6, or dual-stack networking.
  • Run preflight checks before changing nodes.
  • Upgrade clusters, renew certificates, back up etcd, restore etcd, and clean up nodes.

Entry point

Use the repository script directly:

curl -fsSL https://github.com/MuNeNiCK/setup-k8s/releases/latest/download/setup-k8s.sh | sudo sh -s -- init

For multi-node operations, run without sudo on the orchestrator and let the script use SSH to reach the nodes:

curl -fsSLO https://github.com/MuNeNiCK/setup-k8s/releases/latest/download/setup-k8s.sh
sh setup-k8s.sh \
  deploy \
  --control-planes root@192.168.1.10 \
  --workers root@192.168.1.11,root@192.168.1.12

Next step

Start with Quick Start, then use Installation for local node flows or Remote Deploy for SSH orchestration.