Kiac v0.11.0
This release adds external K3s workers in alpha and advances local Apple GPU support to a scoped beta.
- External K3s workers (alpha):
kiac join workerprovisions an owned Fedora/krunkit VM for an existing IPv4 K3s/Flannel VXLAN cluster over operator-managed WireGuard. It uses private CA-pinned tokens, separate VPN/management addresses and verified Node identity, with local lifecycle commands. Remote routing, draining and Node deletion remain operator responsibilities. Guide · PR #86 - Continuous GPU health: bounded native Vulkan queue submission and transfer readback checks feed both DRA and device-plugin availability. Failed, stale or missing reports block new allocations; fresh successful probes restore availability. Existing workloads are not forcibly evicted.
- Driver recovery and packaging: the main agent stays static, with a separate native probe in the pinned Fedora sidecar. Device-plugin registration recovers after kubelet socket replacement, and DRA claim metadata/CDI handling supports driver replacement and cleanup.
- Benchmark scheduling: the benchmark requests one CPU without a CPU limit and checks for a GPU worker with at least two vCPUs and 3 GiB RAM before downloading a model or running the host benchmark. Use
--memory 4Gfor recommended headroom. - Host disk preflight: GPU cluster creation and external-worker join require 4 GiB reserve plus 3 GiB per new VM before downloads or boot. This is a thin-provisioning estimate, not a reservation or guarantee of future disk growth.
Validated on an M1 Max running macOS 27.0.1: K3s 1.36.4/1.37 DRA and kubeadm/K3s 1.37 device-plugin health paths, including failure/recovery and registration recovery. Fresh boot-ID-verified full VM stop/resume and subsequent TinyLlama inference with 23 model layers offloaded passed for K3s 1.37 DRA with two GPU workers, K3s 1.37 device-plugin, and kubeadm 1.37 device-plugin. See the validation profiles and limitations.
GPU access is Venus/Vulkan, not CUDA. Transfer health does not prove shader correctness; DRA memory accounting is per VM window, not physical GPU memory isolation. Host sleep/wake remains untested. External-worker validation used a controlled VPN lab across subnets; real cloud deployments have not been validated.
Upgrade through Homebrew:
brew update && brew upgrade --cask kiac