2017-08-29 00:19:25 +03:00
|
|
|
# Provisioning Pod Network Routes
|
|
|
|
|
2025-06-02 06:37:55 +03:00
|
|
|
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].
|
2017-08-29 00:19:25 +03:00
|
|
|
|
2025-06-02 06:37:55 +03:00
|
|
|
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.
|
2017-08-29 00:19:25 +03:00
|
|
|
|
2025-06-02 06:37:55 +03:00
|
|
|
> There are [other ways] to implement the Kubernetes networking model.
|
2017-08-29 00:19:25 +03:00
|
|
|
|
|
|
|
## The Routing Table
|
|
|
|
|
2025-06-02 06:37:55 +03:00
|
|
|
In this section you will gather the information required to create routes in
|
|
|
|
the `kubernetes-the-hard-way` VPC network.
|
2017-08-29 00:19:25 +03:00
|
|
|
|
|
|
|
Print the internal IP address and Pod CIDR range for each worker instance:
|
|
|
|
|
2023-11-01 09:16:49 +03:00
|
|
|
```bash
|
|
|
|
{
|
2025-06-02 05:33:01 +03:00
|
|
|
NODE_0_IP=$(grep node01 machines.txt | cut -d " " -f 1)
|
|
|
|
NODE_0_SUBNET=$(grep node01 machines.txt | cut -d " " -f 4)
|
|
|
|
NODE_1_IP=$(grep node02 machines.txt | cut -d " " -f 1)
|
|
|
|
NODE_1_SUBNET=$(grep node02 machines.txt | cut -d " " -f 4)
|
2023-11-01 09:16:49 +03:00
|
|
|
}
|
2017-08-29 00:19:25 +03:00
|
|
|
```
|
|
|
|
|
2023-11-01 09:16:49 +03:00
|
|
|
```bash
|
2025-06-03 18:40:47 +03:00
|
|
|
ssh vagrant@controlplane <<EOF
|
|
|
|
sudo ip route add ${NODE_0_SUBNET} via ${NODE_0_IP}
|
|
|
|
sudo ip route add ${NODE_1_SUBNET} via ${NODE_1_IP}
|
2023-11-01 09:16:49 +03:00
|
|
|
EOF
|
2017-08-29 00:19:25 +03:00
|
|
|
```
|
2023-11-01 09:16:49 +03:00
|
|
|
|
|
|
|
```bash
|
2025-06-03 18:40:47 +03:00
|
|
|
ssh vagrant@node01 <<EOF
|
|
|
|
sudo ip route add ${NODE_1_SUBNET} via ${NODE_1_IP}
|
2023-11-01 09:16:49 +03:00
|
|
|
EOF
|
2017-08-29 00:19:25 +03:00
|
|
|
```
|
|
|
|
|
2023-11-01 09:16:49 +03:00
|
|
|
```bash
|
2025-06-03 18:40:47 +03:00
|
|
|
ssh vagrant@node02 <<EOF
|
|
|
|
sudo ip route add ${NODE_0_SUBNET} via ${NODE_0_IP}
|
2023-11-01 09:16:49 +03:00
|
|
|
EOF
|
|
|
|
```
|
2017-08-29 00:19:25 +03:00
|
|
|
|
2023-11-01 09:16:49 +03:00
|
|
|
## Verification
|
2017-08-29 00:19:25 +03:00
|
|
|
|
2023-11-01 09:16:49 +03:00
|
|
|
```bash
|
2025-06-03 18:40:47 +03:00
|
|
|
ssh vagrant@controlplane ip route
|
2017-08-29 00:19:25 +03:00
|
|
|
```
|
|
|
|
|
2023-11-01 09:16:49 +03:00
|
|
|
```text
|
|
|
|
default via XXX.XXX.XXX.XXX dev ens160
|
|
|
|
10.200.0.0/24 via XXX.XXX.XXX.XXX dev ens160
|
|
|
|
10.200.1.0/24 via XXX.XXX.XXX.XXX dev ens160
|
|
|
|
XXX.XXX.XXX.0/24 dev ens160 proto kernel scope link src XXX.XXX.XXX.XXX
|
2017-08-29 00:19:25 +03:00
|
|
|
```
|
2023-11-01 09:16:49 +03:00
|
|
|
|
|
|
|
```bash
|
2025-06-03 18:40:47 +03:00
|
|
|
ssh vagrant@node01 ip route
|
2017-08-29 00:19:25 +03:00
|
|
|
```
|
|
|
|
|
2023-11-01 09:16:49 +03:00
|
|
|
```text
|
|
|
|
default via XXX.XXX.XXX.XXX dev ens160
|
|
|
|
10.200.1.0/24 via XXX.XXX.XXX.XXX dev ens160
|
|
|
|
XXX.XXX.XXX.0/24 dev ens160 proto kernel scope link src XXX.XXX.XXX.XXX
|
|
|
|
```
|
2017-08-29 00:19:25 +03:00
|
|
|
|
2023-11-01 09:16:49 +03:00
|
|
|
```bash
|
2025-06-03 18:40:47 +03:00
|
|
|
ssh vagrant@node02 ip route
|
2017-08-29 00:19:25 +03:00
|
|
|
```
|
2023-11-01 09:16:49 +03:00
|
|
|
|
|
|
|
```text
|
|
|
|
default via XXX.XXX.XXX.XXX dev ens160
|
|
|
|
10.200.0.0/24 via XXX.XXX.XXX.XXX dev ens160
|
|
|
|
XXX.XXX.XXX.0/24 dev ens160 proto kernel scope link src XXX.XXX.XXX.XXX
|
2017-08-29 00:19:25 +03:00
|
|
|
```
|
|
|
|
|
2023-11-01 09:16:49 +03:00
|
|
|
Next: [Smoke Test](12-smoke-test.md)
|
2025-06-02 06:37:55 +03:00
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
[routes]: https://cloud.google.com/compute/docs/vpc/routes
|
|
|
|
[other ways]: https://kubernetes.io/docs/concepts/cluster-administration/networking/#how-to-achieve-this
|