k3s Docker & Self-Hosted Deployment

GitHub

Go k8s & kubernetes repository by @k3s-io. AI agent rules & system prompts with 34k stars.

33,728 stars Go Go 1 file ยท ~31,714 tokens #k8s#kubernetes
RAW Compose
1. Pull Image (DOCKERHUB) docker pull rancher/k3s
2. Docker Run (1-Click Launch) docker run -d --name k3s -p 6443:6443 --restart always rancher/k3s:${K3S_VERSION:-latest}
3. Podman Run podman run -d --name k3s -p 6443:6443 --restart always rancher/k3s:${K3S_VERSION:-latest}
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/rancher/k3s:${K3S_VERSION
5. ORAS Pull (OCI Artifact) oras pull rancher/k3s:${K3S_VERSION:-latest}
6. Compose Deployment docker compose up -d
docker-compose.yml
Download .yml
# to run define K3S_TOKEN, K3S_VERSION is optional, eg:
#   K3S_TOKEN=${RANDOM}${RANDOM}${RANDOM} docker-compose up

services:

  server:
    image: "rancher/k3s:${K3S_VERSION:-latest}"
    command: server
    tmpfs:
    - /run
    - /var/run
    ulimits:
      nproc: 65535
      nofile:
        soft: 65535
        hard: 65535
    privileged: true
    restart: always
    environment:
    - K3S_TOKEN=${K3S_TOKEN:?err}
    - K3S_KUBECONFIG_OUTPUT=/output/kubeconfig.yaml
    - K3S_KUBECONFIG_MODE=666
    volumes:
    - k3s-server:/var/lib/rancher/k3s
    # This is just so that we get the kubeconfig file out
    - .:/output
    ports:
    - 6443:6443  # Kubernetes API Server
    - 80:80      # Ingress controller port 80
    - 443:443    # Ingress controller port 443

  agent:
    image: "rancher/k3s:${K3S_VERSION:-latest}"
    tmpfs:
    - /run
    - /var/run
    ulimits:
      nproc: 65535
      nofile:
        soft: 65535
        hard: 65535
    privileged: true
    restart: always
    environment:
    - K3S_URL=https://server:6443
    - K3S_TOKEN=${K3S_TOKEN:?err}
    volumes:
    - k3s-agent:/var/lib/rancher/k3s

volumes:
  k3s-server: {}
  k3s-agent: {}