2017-08-29 00:19:25 +03:00
# Provisioning Pod Network Routes
Pods scheduled to a node receive an IP address from the node's Pod CIDR range. At this point pods can not communicate with other pods running on different nodes due to missing network [routes ](https://cloud.google.com/compute/docs/vpc/routes ).
In this lab you will create a route for each worker node that maps the node's Pod CIDR range to the node's internal IP address.
> There are [other ways](https://kubernetes.io/docs/concepts/cluster-administration/networking/#how-to-achieve-this) to implement the Kubernetes networking model.
## The Routing Table
2020-06-20 16:44:45 +03:00
**On each worker node**, add the following routes:
2017-08-29 00:19:25 +03:00
2020-06-20 10:24:03 +03:00
```bash
2020-06-20 16:44:45 +03:00
ip route add 10.200.0.0/24 via 192.168.8.20
ip route add 10.200.1.0/24 via 192.168.8.21
ip route add 10.200.2.0/24 via 192.168.8.22
2017-08-29 00:19:25 +03:00
```
2020-06-20 16:44:45 +03:00
> Don't take care of the `RTNETLINK answers: File exists` message, it appears just when you try to add an existing route, not a real problem.
2017-08-29 00:19:25 +03:00
List the routes in the `kubernetes-the-hard-way` VPC network:
2020-06-20 10:24:03 +03:00
```bash
2020-06-20 16:44:45 +03:00
ip route
2017-08-29 00:19:25 +03:00
```
2020-06-22 13:42:19 +03:00
> Output (example for worker-0):
2017-08-29 00:19:25 +03:00
2020-06-20 10:24:03 +03:00
```bash
2020-06-20 16:44:45 +03:00
default via 192.168.8.1 dev ens18 proto static
2020-06-22 13:42:19 +03:00
10.200.0.0/24 via 192.168.8.20 dev ens18
2020-06-20 16:44:45 +03:00
10.200.1.0/24 via 192.168.8.21 dev ens18
10.200.2.0/24 via 192.168.8.22 dev ens18
192.168.8.0/24 dev ens18 proto kernel scope link src 192.168.8.21
2017-08-29 00:19:25 +03:00
```
2020-06-22 13:42:19 +03:00
To make it persistent (if reboot), you need to edit your network configuration (depends on your Linux distribution).
Example for **Ubuntu 18.04** and higher:
```bash
vi /etc/netplan/00-installer-config.yaml
```
> Content (example for worker-0, **don't specify the POD CIDR associated with the current node**):
```bash
# This is the network config written by 'subiquity'
network:
ethernets:
ens18:
addresses:
- 192.168.8.10/24
gateway4: 192.168.8.1
nameservers:
addresses:
- 9.9.9.9
routes:
- to: 10.200.1.0/24
via: 192.168.8.21
- to: 10.200.2.0/24
via: 192.168.8.22
version: 2
```
2017-08-29 00:19:25 +03:00
Next: [Deploying the DNS Cluster Add-on ](12-dns-addon.md )