操作主機 (CentOS 7):
docker1 192.168.60.201 #master + node 及 swarm management
docker2 192.168.60.202
docker3 192.168.60.203
三台全裝
yum install -y docker
master 執行
docker run --rm swarm create
會出現一串 Cluster ID 記下來,因為每次執行都會再產生不同的 cluster id。
node 執行
docker run -d swarm join --addr=192.168.60.201:2375 token://07956fde8d6cd1363d5ca0e3a403b136
docker run -d swarm join --addr=192.168.60.202:2375 token://07956fde8d6cd1363d5ca0e3a403b136
docker run -d swarm join --addr=192.168.60.203:2375 token://07956fde8d6cd1363d5ca0e3a403b136
node 執行
vi /etc/sysconfig/docker
OPTIONS='-H 0.0.0.0:2375 -H unix:///var/run/docker.sock'
systemctl restart docker.service
master 執行
2375 port 己經被 docker 使用,所以必須使用其他的 port 來管理 docker:
docker run -t -p 2376:2375 -t swarm manage token://07956fde8d6cd1363d5ca0e3a403b136
正常應出現三台 join 主機的訊息,按 Ctrl + C 跳脫
確認 join 主機
docker run --rm swarm list token://07956fde8d6cd1363d5ca0e3a403b136
或
docker -H 192.168.60.201:2376 info
主機重開機時,如果沒有設定讓 Container 隨主機開機啟動,都要手動啟動它。
利用下列指令 update 讓 Container 隨主機啟動:
查看 Container ID:
docker ps -a
update container:
docker update --restart=always Container_ID
測試:
1.master 本機執行(不是在 master 的 docker container 裡)
安裝 Nginx 套件:
yum install -y epel-release
yum install -y nginx
將下列程式碼加入 /etc/nginx/nginx.conf 中:
upstream nodes {
server 192.168.60.203:8080 weight=1; #權重 = 1
server 192.168.60.202:8080 weight=2; #權重 = 2
server 192.168.60.201:8080 weight=3; #權重 = 3
server 192.168.60.201:8080 weight=3; #權重 = 3
}
server {
listen 80;
location / {
proxy_pass http://nodes;
}
}
2.master 從 docker.io PULL 測試網頁 image 裝到 node 上(有幾台 node 就執行幾次。我也不確定要這麼做嗎!!!!! 但我執行兩次只有兩台有 PULL。發現後再執行一次,三台 node 就都有 PULL 測試網頁了)
docker -H :2375 run -d -p 8080:80 cijie/haproxy-web-example:1.0.0
3.打開瀏覽器,輸入 master IP,就可看到 Container 的 ID 切換
http://192.168.60.201
沒有留言:
張貼留言