You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
3.2 KiB

7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
  1. # Weave
  2. Weave 2.0.1 is supported by kubespray
  3. Weave uses [**consensus**](https://www.weave.works/docs/net/latest/ipam/##consensus) mode (default mode) and [**seed**](https://www.weave.works/docs/net/latest/ipam/#seed) mode.
  4. `Consensus` mode is best to use on static size cluster and `seed` mode is best to use on dynamic size cluster
  5. Weave encryption is supported for all communication
  6. * To use Weave encryption, specify a strong password (if no password, no encryption)
  7. ```ShellSession
  8. # In file ./inventory/sample/group_vars/k8s-cluster.yml
  9. weave_password: EnterPasswordHere
  10. ```
  11. This password is used to set an environment variable inside weave container.
  12. Weave is deployed by kubespray using a daemonSet
  13. * Check the status of Weave containers
  14. ```ShellSession
  15. # From client
  16. kubectl -n kube-system get pods | grep weave
  17. # output
  18. weave-net-50wd2 2/2 Running 0 2m
  19. weave-net-js9rb 2/2 Running 0 2m
  20. ```
  21. There must be as many pods as nodes (here kubernetes have 2 nodes so there are 2 weave pods).
  22. * Check status of weave (connection,encryption ...) for each node
  23. ```ShellSession
  24. # On nodes
  25. curl http://127.0.0.1:6784/status
  26. # output on node1
  27. Version: 2.0.1 (up to date; next check at 2017/08/01 13:51:34)
  28. Service: router
  29. Protocol: weave 1..2
  30. Name: fa:16:3e:b3:d6:b2(node1)
  31. Encryption: enabled
  32. PeerDiscovery: enabled
  33. Targets: 2
  34. Connections: 2 (1 established, 1 failed)
  35. Peers: 2 (with 2 established connections)
  36. TrustedSubnets: none
  37. Service: ipam
  38. Status: ready
  39. Range: 10.233.64.0/18
  40. DefaultSubnet: 10.233.64.0/18
  41. ```
  42. * Check parameters of weave for each node
  43. ```ShellSession
  44. # On nodes
  45. ps -aux | grep weaver
  46. # output on node1 (here its use seed mode)
  47. root 8559 0.2 3.0 365280 62700 ? Sl 08:25 0:00 /home/weave/weaver --name=fa:16:3e:b3:d6:b2 --port=6783 --datapath=datapath --host-root=/host --http-addr=127.0.0.1:6784 --status-addr=0.0.0.0:6782 --docker-api= --no-dns --db-prefix=/weavedb/weave-net --ipalloc-range=10.233.64.0/18 --nickname=node1 --ipalloc-init seed=fa:16:3e:b3:d6:b2,fa:16:3e:f0:50:53 --conn-limit=30 --expect-npc 192.168.208.28 192.168.208.19
  48. ```
  49. ## Consensus mode (default mode)
  50. This mode is best to use on static size cluster
  51. ### Seed mode
  52. This mode is best to use on dynamic size cluster
  53. The seed mode also allows multi-clouds and hybrid on-premise/cloud clusters deployment.
  54. * Switch from consensus mode to seed mode
  55. ```ShellSession
  56. # In file ./inventory/sample/group_vars/k8s-cluster.yml
  57. weave_mode_seed: true
  58. ```
  59. These two variables are only used when `weave_mode_seed` is set to `true` (**/!\ do not manually change these values**)
  60. ```ShellSession
  61. # In file ./inventory/sample/group_vars/k8s-cluster.yml
  62. weave_seed: uninitialized
  63. weave_peers: uninitialized
  64. ```
  65. The first variable, `weave_seed`, contains the initial nodes of the weave network
  66. The second variable, `weave_peers`, saves the IPs of all nodes joined to the weave network
  67. These two variables are used to connect a new node to the weave network. The new node needs to know the firsts nodes (seed) and the list of IPs of all nodes.
  68. To reset these variables and reset the weave network set them to `uninitialized`