|
|
|
# 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: {}
|