|
| 1 | +--- |
| 2 | +author: Wale Soyinka |
| 3 | +contributors: Steven Spencer, Ganna Zhyrnova |
| 4 | +tags: |
| 5 | + - kubernetes |
| 6 | + - k8s |
| 7 | + - лабораторна вправа |
| 8 | + - runc |
| 9 | + - containerd |
| 10 | + - etcd |
| 11 | + - kubectl |
| 12 | +--- |
| 13 | + |
| 14 | +# Лабораторна робота 11: Надання мережевих маршрутів Pod |
| 15 | + |
| 16 | +> Це вітка оригінального ["Kubernetes the hard way"](https://github.com/kelseyhightower/kubernetes-the-hard-way), яку спочатку створив Келсі Хайтауер (GitHub: kelseyhightower). На відміну від оригіналу, який базується на дистрибутивах, подібних до Debian, для архітектури ARM64, ця гілка націлена на дистрибутиви Enterprise Linux, такі як Rocky Linux, що працюють на архітектурі x86_64. |
| 17 | +
|
| 18 | +Поди, заплановані на вузол, отримують IP-адресу з діапазону CIDR модуля вузла. Наразі модулі не можуть обмінюватися даними з іншими модулями, що працюють на різних вузлах, через відсутність мережевих [маршрутів](https://cloud.google.com/compute/docs/vpc/routes). |
| 19 | + |
| 20 | +У цій лабораторній роботі ви створите маршрут для кожного робочого вузла, який зіставляє діапазон CIDR Pod вузла з внутрішньою IP-адресою вузла. |
| 21 | + |
| 22 | +> Існують [інші способи](https://kubernetes.io/docs/concepts/cluster-administration/networking/#how-to-achieve-this) реалізації моделі мережі Kubernetes. |
| 23 | +
|
| 24 | +## Таблиця маршрутизації |
| 25 | + |
| 26 | +У цьому розділі ви зберете інформацію, необхідну для створення маршрутів у мережі VPC `kubernetes-the-hard-way`. |
| 27 | + |
| 28 | +Надрукуйте внутрішню IP-адресу та діапазон CIDR Pod для кожного робочого екземпляра: |
| 29 | + |
| 30 | +```bash |
| 31 | +{ |
| 32 | + SERVER_IP=$(grep server machines.txt | cut -d " " -f 1) |
| 33 | + NODE_0_IP=$(grep node-0 machines.txt | cut -d " " -f 1) |
| 34 | + NODE_0_SUBNET=$(grep node-0 machines.txt | cut -d " " -f 5) |
| 35 | + NODE_1_IP=$(grep node-1 machines.txt | cut -d " " -f 1) |
| 36 | + NODE_1_SUBNET=$(grep node-1 machines.txt | cut -d " " -f 5) |
| 37 | +} |
| 38 | +``` |
| 39 | + |
| 40 | +```bash |
| 41 | +ssh root@server <<EOF |
| 42 | + ip route add ${NODE_0_SUBNET} via ${NODE_0_IP} |
| 43 | + ip route add ${NODE_1_SUBNET} via ${NODE_1_IP} |
| 44 | +EOF |
| 45 | +``` |
| 46 | + |
| 47 | +```bash |
| 48 | +ssh root@node-0 <<EOF |
| 49 | + ip route add ${NODE_1_SUBNET} via ${NODE_1_IP} |
| 50 | +EOF |
| 51 | +``` |
| 52 | + |
| 53 | +```bash |
| 54 | +ssh root@node-1 <<EOF |
| 55 | + ip route add ${NODE_0_SUBNET} via ${NODE_0_IP} |
| 56 | +EOF |
| 57 | +``` |
| 58 | + |
| 59 | +## Верифікація |
| 60 | + |
| 61 | +```bash |
| 62 | +ssh root@server ip route |
| 63 | +``` |
| 64 | + |
| 65 | +```text |
| 66 | +default via XXX.XXX.XXX.XXX dev ens160 |
| 67 | +10.200.0.0/24 via XXX.XXX.XXX.XXX dev ens160 |
| 68 | +10.200.1.0/24 via XXX.XXX.XXX.XXX dev ens160 |
| 69 | +XXX.XXX.XXX.0/24 dev ens160 proto kernel scope link src XXX.XXX.XXX.XXX |
| 70 | +``` |
| 71 | + |
| 72 | +```bash |
| 73 | +ssh root@node-0 ip route |
| 74 | +``` |
| 75 | + |
| 76 | +```text |
| 77 | +default via XXX.XXX.XXX.XXX dev ens160 |
| 78 | +10.200.1.0/24 via XXX.XXX.XXX.XXX dev ens160 |
| 79 | +XXX.XXX.XXX.0/24 dev ens160 proto kernel scope link src XXX.XXX.XXX.XXX |
| 80 | +``` |
| 81 | + |
| 82 | +```bash |
| 83 | +ssh root@node-1 ip route |
| 84 | +``` |
| 85 | + |
| 86 | +```text |
| 87 | +default via XXX.XXX.XXX.XXX dev ens160 |
| 88 | +10.200.0.0/24 via XXX.XXX.XXX.XXX dev ens160 |
| 89 | +XXX.XXX.XXX.0/24 dev ens160 proto kernel scope link src XXX.XXX.XXX.XXX |
| 90 | +``` |
| 91 | + |
| 92 | +Далі: [Smoke Test](lab12-smoke-test.md) |
0 commit comments