树莓派上的集群实验--配置docker及swarm

Posted by Hsz on May 31, 2018

docker

安装

curl -sSL https://get.docker.com | sh

配置自启动

使用下面的命令将docker注册到开机自启动

sudo usermod -aG docker pi

sudo systemctl enable docker

sudo systemctl start docker

将pi用户添加进docker组

sudo gpasswd -a ${USER} docker

之后重启服务器或者重启docker服务即可

sudo service docker restart

swarm配置节点

swarm集群中有两种角色

  • manager节点

    manager角色用于管理集群中的节点,也可以运行容器并提供容灾. sudo docker swarm init

  • worker节点

    工人,就是供容器执行的平台 sudo docker swarm join --token <token> <location> 先在一台机器上执行init后就会获得token和location

docker运维可视化

swarm集群可以使用portainer进行可视化.功能很简单不做详细叙述.

安装和启动

在你希望启动该服务的节点上执行

docker volume create portainer_data
docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer:linux-arm

之后就可以访问9000端口管理集群了.当然了还是推荐将这个服务配置在manager节点上,这样如果manager节点奔溃了直接就没法访问这个服务,比较好辨识

集群配置

在manager节点上执行如下命令,这样每个节点就都会被放入portainer的管理范围中:

curl -L https://portainer.io/download/portainer-agent-stack.yml -o portainer-agent-stack.yml
docker stack deploy --compose-file=portainer-agent-stack.yml portainer

注意点

由于树莓派是arm架构,因此一般的镜像无法使用,需要使用支持arm的镜像才行.

有两种方式:

  1. 去dockhub查找想要的镜像有没有armv7/raspberrypi/linux-arm字样的标签
  2. 去找官方支持armv7的镜像作为基镜像自己编译.这些镜像在https://hub.docker.com/u/arm32v7/可以找到.