Skip to content

Instantly share code, notes, and snippets.

@jamesdube
Forked from clemenko/k3s_airgap.md
Last active November 28, 2025 00:10
Show Gist options
  • Select an option

  • Save jamesdube/2cac88fe65f4268d53cb9559166bac8f to your computer and use it in GitHub Desktop.

Select an option

Save jamesdube/2cac88fe65f4268d53cb9559166bac8f to your computer and use it in GitHub Desktop.

k3s airgap

Docs

https://docs.k3s.io/installation/airgap#manually-deploy-images-method
https://github.com/k3s-io/k3s/

download

# download these
sudo mkdir /opt/k3s && cd /opt/k3s
sudo curl --proxy http://192.168.100.37:80 -#LO https://github.com/k3s-io/k3s/releases/download/v1.32.1%2Bk3s1/k3s
sudo curl --proxy http://192.168.100.37:80 -#L  https://get.k3s.io -o install.sh
sudo curl --proxy http://192.168.100.37:80 -#LO https://github.com/k3s-io/k3s/releases/download/v1.32.1%2Bk3s1/k3s-airgap-images-amd64.tar

mkdir /tmp/k3s && cd /tmp/k3s

curl -#LO http://192.168.39.233:8081/repository/k3s-artifacts/v1.32.1%2Bk3s1/k3s-airgap-images-amd64.tar
curl -#LO http://192.168.39.233:8081/repository/k3s-artifacts/v1.32.1%2Bk3s1/k3s
curl -#LO http://192.168.39.233:8081/repository/k3s-artifacts/install.sh
curl -#LO http://192.168.39.233:8081/repository/k3s-artifacts/registries.yaml

chmod 755 k3s install.sh
sudo mkdir /etc/rancher/k3s/
sudo cp k3s /usr/local/bin/
sudo cp registries.yaml /etc/rancher/k3s/registries.yaml

#Note - not needed for Debain based systems.
curl -#LO https://github.com/k3s-io/k3s-selinux/releases/download/v1.6.stable.1/k3s-selinux-1.6-1.el9.noarch.rpm

tar and move

this step should be self explanatory.

# compress
cd /opt/k3s
tar -vzcf /opt/k3s_airgapped.tgz $(ls)
# decompress
sudo mkdir /opt/k3s
sudo tar -vzxf /opt/k3s_airgapped.tgz -C /opt/k3s

install

run as root chmod 755 k3s install.sh

cd /opt/k3s
sudo mkdir -p /var/lib/rancher/k3s/agent/images/ 
sudo mv k3s /usr/local/bin/
sudo mv k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/

#Note - not needed for Debain based systems.
yum install -y container-selinux k3s-selinux-1.4-1.el9.noarch.rpm

export TOKEN=f67j8j56e4fgbr4
INSTALL_K3S_SKIP_DOWNLOAD=true K3S_TOKEN=${TOKEN} INSTALL_K3S_EXEC="--disable=traefik,coredns" ./install.sh --data-dir=/data/kubernetes --node-name ecok8s-production-wvl-01

for agent

export TOKEN=f67j8j56e4fgbr4 INSTALL_K3S_SKIP_DOWNLOAD=true K3S_TOKEN=${TOKEN} INSTALL_K3S_EXEC="--disable=traefik,coredns" sudo ./install.sh agent --data-dir=/data/kubernetes --node-name ecok8s-production-wvl-02 --server 192.168.39.234

INSTALL_K3S_SKIP_DOWNLOAD=true K3S_TOKEN=${TOKEN} INSTALL_K3S_EXEC="--disable=traefik --disable=coredns --data-dir=/data/kubernetes --node-name=ecok8s-operations-wvl-03" ./install.sh --server https://192.168.39.234:6443

INSTALL_K3S_SKIP_DOWNLOAD=true
K3S_TOKEN=${TOKEN}
K3S_URL=https://192.168.39.234:6443
INSTALL_K3S_EXEC="--data-dir=/data/kubernetes --node-name=ecok8s-operations-wvl-03"
./install.sh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment