59 lines
1.7 KiB
YAML
59 lines
1.7 KiB
YAML
# to run define K3S_TOKEN, K3S_VERSION is optional, eg:
|
|
# export K3S_TOKEN=${RANDOM}${RANDOM}${RANDOM}
|
|
# docker compose -f k3s.yml up -d
|
|
services:
|
|
server:
|
|
image: "rancher/k3s:${K3S_VERSION:-latest}"
|
|
command: server --disable-agent --disable traefik
|
|
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 will generate a kubeconfig.yaml in this directory. This volume is mounted
|
|
# on your host, so you can then 'export KUBECONFIG=/somewhere/on/your/host/out/kubeconfig.yaml',
|
|
# in order for your kubectl commands to work.
|
|
- ./config:/output
|
|
# This directory is where you put all the (yaml) configuration files of
|
|
# the Kubernetes resources.
|
|
- k3s-server:/var/lib/rancher/k3s
|
|
ports:
|
|
- 6443:6443
|
|
# - 80:80 # Ingress controller port 80
|
|
# - 443:443 # Ingress controller port 443
|
|
|
|
node:
|
|
image: "rancher/k3s:${K3S_VERSION:-latest}"
|
|
tmpfs:
|
|
- /run
|
|
- /var/run
|
|
ulimits:
|
|
nproc: 65535
|
|
nofile:
|
|
soft: 65535
|
|
hard: 65535
|
|
privileged: true
|
|
restart: always
|
|
links:
|
|
- server
|
|
environment:
|
|
- K3S_TOKEN=${K3S_TOKEN:?err}
|
|
- K3S_URL=https://server:6443
|
|
volumes:
|
|
# this is where you would place a alternative traefik image (saved as a .tar file with
|
|
# 'docker save'), if you want to use it, instead of the traefik:v3.0 image.
|
|
- k3s-agent:/var/lib/rancher/k3s
|
|
|
|
volumes:
|
|
k3s-server: {}
|
|
k3s-agent: {} |