树莓派 RaspberryPi docker集群
概述:
参考 Hypriot 的博客,我买了1块Rasp2代板和2块Rasp3代板。
其中2代默认安装了 Hypriot 的系统。3代板如果您有兴趣可以自己参考 《Building a 64bit Docker OS for the Raspberry Pi 3》 这篇文章编译一套64bit的系统。也可以直接下载作者的 已编译好镜像地址 中压缩包。
网络的问题:
日常的升级或者包安装之类的情况,都会遇到墙的问题。为了避免经常为墙而烦恼的情况,有必要给控制网络出口的路由做些调整。参考 《Shadowsocks + ChnRoute 实现 OpenWRT / LEDE 路由器自动翻墙》 解决墙的烦恼,因为这个不是这篇文的重点,具体细节略。
给每个arm板子在路由上赋予一个静态IP地址。
系统:
- OS细节: 个人习惯调整一下环境,如zsh,vim等,可以考虑弄个ansible-playbook或者shell脚本来简化一下。
|
|
Kubernetes(本来我想用这个来管理的,但是我的pi2的docker是最新ce版本,kubeadmin提示不支持。) 参考 《Setup Kubernetes on a Raspberry Pi Cluster easily the official way!》
添加源:
1 2
$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - $ echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
安装kubeadm
1
$ apt-get update && apt-get install -y kubeadm
初始化主节点
1
$ kubeadm init --pod-network-cidr 10.244.0.0/16
略。。。
Swarm(选择了这个)
初始化pi2
1
$ docker swarm init
把得到的token信息给每个节点接入来
1 2 3
$ docker swarm join \ --token SWMTKN-1-5pm7otmn3vt9bmjhdfdk2hhgxp1zm9wfcyebl7x4dlkbbqujke-4fmuuxxxxxxxxxhiyqem \ 192.168.xx.2:2377
输出一下node信息:
1 2 3 4 5
$ docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS mbosd1usr6vfoj2p9zyw6zhau node01-pearl Ready Active sc4vtm5fqbdet8k4vrr38x1fo * master-pearl Ready Active Leader v8uxeq9pc8pzlciing7lol16e node02-pearl Ready Active
Docker-Engine的安装:
利用 MickeyZZC / MiAnsibleRules 中的docker-engine ,参考以下playbook:
|
|
Docker-Container:
- 参考 MickeyZZC / MiAnsibleRules 其他rules.
- 每个rules都有变量,可以在自己的ansible项目中给予vars值.