...
all:
hosts:
children:
master:
hosts:
localhost:
edge_nodes:
hosts:
edge1: # Name of first edge node
ip: 192.168.2.21 # IP address of first edge node
lora_id: 1
edge2: # Name of second edge node
ip: 192.168.2.25 # IP address of second edge node
lora_id: 4
In addition, if the master node is not the same as the deploy node, remove the line connection: local
wherever it follows hosts: master
in the playbooks in deploy/playbook
.
In the file master.yml
in the deploy/playbook/group_vars/all
directory, set the master_ip
value to the IP address of the master node. Note that this is required even if the master node is the same as the deploy node.
...
Kubernetes' initialization tool kubeadm
requires
Creating the Docker Registry
requires that swap be disabled on nodes in the cluster. Turn off swap on the master mode by editing the /etc/fstab
file (using sudo) and commenting out the line with "swap" as the third parameter:
# /swap.img none swap sw 0 0
In addition, if you have proxy settings kubeadm
will warn that you should disable the proxy for cluster IP addresses. The default cluster IP ranges 10.96.0.0/12
and 10.244.0.0/16
should be added to the no_proxy
and NO_PROXY
variables in /etc/environment
if necessary.
no_proxy=localhost,127.0.0.0/8,192.168.2.0/24,10.96.0.0/12,10.244.0.0/16,*.local,*.fujitsu.com
NO_PROXY=localhost,127.0.0.0/8,192.168.2.0/24,10.96.0.0/12,10.244.0.0/16,*.local,*.fujitsu.com
Creating the Docker Registry
This blueprint sets up a private Docker registry on the master node to hold all the images which will be downloaded to This blueprint sets up a private Docker registry on the master node to hold all the images which will be downloaded to the edge nodes. The following command with start the registry. This command also creates and installs a cryptographic key that is used to identify the registry to the edge nodes.
...
The following command will download the required images from their public repositories and store copies in the private repository:and store copies in the private repository:
ansible-playbook -i ./hosts pull_upstream_images.yml
Note that this process can take some time depending on the speed of the internet connection from the master node.
If the version of Kubernetes or Flannel changes you will need to populate the registry with updated images using the above command again.
Preparing Edge Nodes
Add an administrative account to all the edge nodes. This account will be used by the deploy node when it needs to run commands directly on the edge nodes (e.g. for installing base software, or for joining or leaving the cluster). The following commands run on each edge node will add a user account named "edge" and add it to the group of users with sudo
privileges.
...
ssh-copy-id -i ~/.ssh/edge.pub edge@nodename
Edge Node Kubernetes Requirements
Like the master node, swap should be disabled and the cluster IP address ranges should be excluded from proxy processing if necessary.
Note that on the Jetson Nano hardware platform has a service called nvzramconfig
that acts as swap and needs to be disabled. Use the following command to disable it:
sudo systemctl disable nvzramconfig.service
Starting the Cluster
Adding Edge Nodes to the Cluster
...