快速启用traefik+portainer作为集群管理工具
说明
domain.com 为某个你自己拥有的域名
cloud.domain.com 用来解析访问portainer服务
启用swarm集群
1 | docker swarm init |
创建network
1 | docker network create --driver=overlay traefik-net --attachable |
创建traefik服务
创建数据目录
1 | mkdir -p /data/traefik |
增加配置traefik.toml
1 | touch /data/traefik/traefik.toml |
需将相关的域名,邮箱更改为自己的
debug = false
logLevel = "ERROR"
defaultEntryPoints = ["https","http"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[retry]
[docker]
endpoint = "unix:///var/run/docker.sock"
#update
domain = "domain.com"
watch = true
exposedByDefault = false
[acme]
#update
email = "cloud@domain.com"
storage = "acme.json"
entryPoint = "https"
onHostRule = true
[acme.httpChallenge]
entryPoint = "http"
增加acme.json文件
用于存放证书数据1
2touch /data/traefik/acme.json
chmod 600 /data/traefik/acme.json
创建服务命令
需将相关的域名更改为自己的1
2
3
4
5
6
7
8
9
10
11
12docker service create \
--name traefik \
--constraint=node.role==manager \
--publish 80:80 --publish 443:443 --publish 8080:8080 \
--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
--mount type=bind,source=/data/traefik/traefik.toml,target=/etc/traefik/traefik.toml \
--mount type=bind,source=/data/traefik/acme.json,target=/acme.json \
--network traefik-net \
traefik \
--docker \
--docker.watch \
--api
创建portainer数据卷
1 | docker volume create --driver local \ |
创建portainer服务
1 | docker service create \ |
访问
现在访问cloud.domain.com
应当能够出现web界面,在出现的界面中可设置portainer访问密码。
如不能访问,请检查:
1.主机防火墙是否开启80,443端口访问
2.主机平台安全策略限制,如阿里云安全组策略
3.检查docker service logs portainer 是否出错等