星期四, 10月 27, 2016

docker swarm mode with openSUSE Leap 42.1 建立小記

Docker swarm mode with openSUSE Leap 42.1

OS: openSUSE Leap 42.1

3 個 node
  • 1 個 manager node
  • 2 個 worker node

# docker  --version
Docker version 1.12.1, build 8eab29e

Manager node 上面

初始化 swarm, 如果有多張網卡就要使用 --advertise-add 指定 IP
# docker   swarm   init   --advertise-addr   192.168.100.254
Swarm initialized: current node (bhmgljncagkfzsnhob3d9ricd) is now a manager.

To add a worker to this swarm, run the following command:

   docker swarm join \
   --token SWMTKN-1-5iju0vxuje0wkczh52qdwa73k0xq3s6jd8coql0wrlogo57l5c-8nl9nbnxs192kgu09kotylwd8 \
   192.168.100.254:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

使用 docker  info 觀察 Swarm 啟動狀況
# docker   info  |   grep  Swarm
Swarm: active

檢查 node 資訊
# docker  node   ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
bhmgljncagkfzsnhob3d9ricd *  docker1   Ready   Active        Leader


在所有 worker node 上面
加入 swarm,
使用 剛剛 docker swarm init 顯示出來的資訊加入 ,或是使用 #docker swarm join-token work 查詢

# docker   swarm   join \
  --token  SWMTKN-1-5iju0vxuje0wkczh52qdwa73k0xq3s6jd8coql0wrlogo57l5c-8nl9nbnxs192kgu09kotylwd8 \
 192.168.100.254:2377


Manager node 上面

檢查相關資訊
# docker   node  ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
8268xbtnb28i9sy2tbkwlz7i0    docker2   Ready   Active        
bhmgljncagkfzsnhob3d9ricd *  docker1   Ready   Active        Leader
ezwivow6sctk9wiit19g89fz7    docker3   Ready   Active  


到此 swarm mode  佈署成功

建立測試服務



參考文件



星期四, 10月 13, 2016

Docker Swarm 移除小記

OS: openSUSE Leap 42.1


之前的測試環境用的是測試版本的 repo, 目前官方已經到 1.12.1 所以就想進行重新安裝
重新安裝前, 先記下移除 swarm mode 相關程序


Docker 版本
# docker --version
Docker version 1.13.0-dev, build dcdf2b4


使用的來源
# zypper   repos  -E
#  | Alias                                  | Name                                                                            | Enabled | GPG Check | Refresh
---+----------------------------------------+---------------------------------------------------------------------------------+---------+-----------+--------
1 | Virtualization_containers_experimental | Docker Experimental Packages (openSUSE_Leap_42.1)                               | Yes     | (r ) Yes  | Yes

目前的測試環境是 3 個 nodes
先使用 docker  node ls 來列出所有的 node


# docker   node  ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
71llz5z3q8f390s9l47qeypue    docker2   Ready   Active        
91ilfph3oq77e1jfwfzm1hm3g    docker3   Ready   Active        
bvbah38n6vusy7nilnbcve22w *  docker1   Ready   Active        Leader


因為要重新安裝, 所以就把上面的服務都移除了
# docker  service  ls
ID  NAME  REPLICAS  IMAGE  COMMAND

參考官方移除的程序


移除所有 work node
以我的環境來說, 我有兩個 work nodes, 一個 manager node


首先到 work node 上面進行 node 移除動作
使用 docker  swarm  leave 指令移除 node


# docker   swarm   leave
Node left the swarm.


回到 manager node 上面觀察
會發現 Availability 為 Down


# docker node ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
71llz5z3q8f390s9l47qeypue    docker2   Ready   Active        
91ilfph3oq77e1jfwfzm1hm3g    docker3   Down    Active        
bvbah38n6vusy7nilnbcve22w *  docker1   Ready   Active        Leader


# docker   node  rm  docker3
docker3

觀察結果
# docker   node   ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
71llz5z3q8f390s9l47qeypue    docker2   Ready   Active        
bvbah38n6vusy7nilnbcve22w *  docker1   Ready   Active        Leader


在執行 docker  rm 的時候, node 必須狀態為 Down 才可以移除, 否則就會出現警告並不能執行


# docker   node  rm  docker2
Error response from daemon: rpc error: code = 9 desc = node 71llz5z3q8f390s9l47qeypue is not down and can't be removed


接下來到 所有的 work node 離開 swarm mode
並進行 docker  node  rm


回到 manager node
目前只剩下 manager node
# docker  node  ls
ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
bvbah38n6vusy7nilnbcve22w *  docker1   Ready   Active        Leader


觀察目錄
# du  -sh   /var/lib/docker/swarm/raft/
123M /var/lib/docker/swarm/raft/


使用 docker swarm leave 指令離開, 因為是 manager node 所以會被提示使用 --force
# docker  swarm  leave
Error response from daemon: You are attempting to leave the swarm on a node that is participating as a manager. Removing the last manager erases all current state of the swarm. Use `--force` to ignore this message.

# docker  swarm  leave  --force
Node left the swarm.


再次觀察
# du  -sh  /var/lib/docker/swarm/
4.0K /var/lib/docker/swarm/


到這邊就可以了
接下來就是在各個 node 移除實驗的 repos, 以及移除 docker 套件重新安裝


# zypper   -n   remove    docker


# yast2   repositories


:)


先記下來


~ enjoy it


參考文件