From 1301c0491560dc269dc9fd3e90b23bf5ffda541e Mon Sep 17 00:00:00 2001 From: Akihiro Suda Date: Wed, 19 Nov 2025 19:13:51 +0900 Subject: [PATCH] kubernetes: add multi-node test and docs Signed-off-by: Akihiro Suda --- hack/bats/extras/k8s.bats | 75 ++++++++++++++++++- templates/k8s.yaml | 2 +- .../examples/containers/kubernetes/_index.md | 14 +++- 3 files changed, 83 insertions(+), 8 deletions(-) diff --git a/hack/bats/extras/k8s.bats b/hack/bats/extras/k8s.bats index 2bc8542812a..70468b60d3f 100644 --- a/hack/bats/extras/k8s.bats +++ b/hack/bats/extras/k8s.bats @@ -26,11 +26,30 @@ get_num_nodes() { local_setup() { local nodes=$(get_num_nodes) + local join_command="" for ((i=0; i&- 4>&- - # NOTE: No support for multi-node clusters yet. + local limactl_start_flags="--tty=false --name "${NAME}-$i"" + # Multi-node setup requires user-v2 network for VM-to-VM communication + if [[ $nodes -gt 1 ]]; then + limactl_start_flags+=" --network lima:user-v2" + fi + limactl start ${limactl_start_flags} "template:${TEMPLATE}" 3>&- 4>&- & done + wait $(jobs -p) + # Multi-node setup + if [[ $nodes -gt 1 ]]; then + for ((i=0; i minimumLimaVersion: 2.0.0 diff --git a/website/content/en/docs/examples/containers/kubernetes/_index.md b/website/content/en/docs/examples/containers/kubernetes/_index.md index 67789973563..e5963e717b6 100644 --- a/website/content/en/docs/examples/containers/kubernetes/_index.md +++ b/website/content/en/docs/examples/containers/kubernetes/_index.md @@ -56,10 +56,16 @@ See also . A multi-node cluster can be created by creating multiple VMs connected via the [`lima:user-v2`](../../../config/network/user-v2.md) network. +As of Lima v2.0, the built-in `k8s` template is designed to support multi-node mode. + ```bash -limactl create --name k8s-0 --network lima:user-v2 -limactl create --name k8s-1 --network lima:user-v2 +limactl start --name k8s-0 --network lima:user-v2 template:k8s +limactl shell k8s-0 sudo kubeadm token create --print-join-command +# (The join command printed here) ``` -The cluster has to be set up manually, as the built-in templates do not support multi-node mode yet. -Support for multi-node template is tracked in . \ No newline at end of file +```bash +limactl start --name k8s-1 --network lima:user-v2 template:k8s +limactl shell k8s-1 sudo bash -euxc "kubeadm reset --force ; ip link delete cni0 ; ip link delete flannel.1 ; rm -rf /var/lib/cni /etc/cni" +limactl shell k8s-1 sudo +``` \ No newline at end of file