2019-07-31 10:26:54 +00:00
|
|
|
version: '3'
|
|
|
|
services:
|
|
|
|
etcd:
|
|
|
|
image: quay.io/coreos/etcd
|
|
|
|
command: /usr/local/bin/etcd -name etcd --data-dir /data --listen-client-urls http://0.0.0.0:2379 --advertise-client-urls http://etcd:2379
|
|
|
|
volumes:
|
|
|
|
- etcd:/data
|
|
|
|
ports:
|
|
|
|
- 2379:2379
|
|
|
|
|
|
|
|
server:
|
2019-08-21 00:32:49 +00:00
|
|
|
image: rancher/k3s:v0.8.1
|
2019-07-31 10:26:54 +00:00
|
|
|
command: server --disable-agent --bootstrap write
|
|
|
|
environment:
|
|
|
|
- K3S_STORAGE_BACKEND=etcd3
|
|
|
|
- K3S_STORAGE_ENDPOINT=etcd:2379
|
|
|
|
- K3S_CLUSTER_SECRET=somethingtotallyrandom
|
|
|
|
- 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
|
|
|
|
|
|
|
|
server2:
|
2019-08-21 00:32:49 +00:00
|
|
|
image: rancher/k3s:v0.8.1
|
2019-07-31 10:26:54 +00:00
|
|
|
command: server --disable-agent --bootstrap read
|
|
|
|
# restart to wait for the bootstrap data prepared by the primary server
|
|
|
|
restart: always
|
|
|
|
environment:
|
|
|
|
- K3S_STORAGE_BACKEND=etcd3
|
|
|
|
- K3S_STORAGE_ENDPOINT=etcd:2379
|
|
|
|
volumes:
|
|
|
|
- k3s-server2:/var/lib/rancher/k3s
|
|
|
|
ports:
|
|
|
|
- 16443:6443
|
|
|
|
|
|
|
|
node:
|
2019-08-21 00:32:49 +00:00
|
|
|
image: rancher/k3s:v0.8.1
|
2019-07-31 10:26:54 +00:00
|
|
|
tmpfs:
|
|
|
|
- /run
|
|
|
|
- /var/run
|
|
|
|
privileged: true
|
|
|
|
environment:
|
|
|
|
- K3S_URL=https://server:6443
|
|
|
|
- K3S_CLUSTER_SECRET=somethingtotallyrandom
|
|
|
|
# Can also use K3S_TOKEN from /var/lib/rancher/k3s/server/node-token instead of K3S_CLUSTER_SECRET
|
|
|
|
#- K3S_TOKEN=K13849a67fc385fd3c0fa6133a8649d9e717b0258b3b09c87ffc33dae362c12d8c0::node:2e373dca319a0525745fd8b3d8120d9c
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
k3s-server: {}
|
|
|
|
k3s-server2: {}
|
|
|
|
etcd: {}
|