User Tools

Site Tools


бюджетная_безотказная_сеть_для_кластера

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
бюджетная_безотказная_сеть_для_кластера [2025/04/06 11:12]
val [Шаг 1. Что у нас есть для начала]
бюджетная_безотказная_сеть_для_кластера [2025/04/09 04:49] (current)
val [Запись вебинара]
Line 13: Line 13:
 ===== Запись вебинара ===== ===== Запись вебинара =====
  
-  * Тэги: ​+  * Тэги: ​Linux, Bond, Ethernet, Cluster, Arp, High availability 
 +  * [[https://​val.bmstu.ru/​unix/​video/​Семинар%20Бюджетная%20безотказная%20сеть%20для%20кластера%2008.04.2025.mp4]]
  
 ===== Методическая подготовка ===== ===== Методическая подготовка =====
Line 22: Line 23:
   * [[Сети Cisco и Linux у Вас дома]]   * [[Сети Cisco и Linux у Вас дома]]
  
-===== Шаг 2. Добавляем второй сетевой адаптер =====+  * [[Утилита curl]] для тестирования работы приложения
  
-<​code>​ +===== Шаг 2. Создаем оказоустойчивую сеть ===== 
-(venv1) server:~# ansible all -a 'init 0' -i /​root/​kubespray/​inventory/​mycluster/​hosts.yaml + 
-</​code>​ +  * Используя ​[[Материалы по GNS]], создаем оказоустойчивую сеть: cloud LAN и Switch1,2,3 
-  * Создаем ​проект [[Материалы по GNS]] + 
-  * Добавляем в GNS VM kubeN и два ​сетевых адаптера +===== Шаг 3. Настраиваем bonding, добавляем второй ​сетевой адаптер ​и включаем в оказоустойчивую сеть =====
-  * Добавляем в GNS cloud LAN и Switch1+
  
-===== Шаг 3. Настраиваем bonding ===== 
 <​code>​ <​code>​
 (venv1) server:~# ansible all -f 4 -m apt -a '​pkg=ifenslave state=present update_cache=true'​ -i /​root/​kubespray/​inventory/​mycluster/​hosts.yaml (venv1) server:~# ansible all -f 4 -m apt -a '​pkg=ifenslave state=present update_cache=true'​ -i /​root/​kubespray/​inventory/​mycluster/​hosts.yaml
 </​code>​ </​code>​
-  ​* [[Настройка сети в Linux#​Настройка bonding]]+ 
 +  ​По очереди,​ на каждом узле проводим ​[[Настройка сети в Linux#​Настройка bonding]]
 <​code>​ <​code>​
 +server# cat /​tmp/​interfaces
 +...
 +iface bond0 inet static
 +        address 192.168.24.22N
 +...
 +
 server# scp /​tmp/​interfaces kubeN:/​etc/​network/​interfaces server# scp /​tmp/​interfaces kubeN:/​etc/​network/​interfaces
  
-server# ssh kubeN init 6+server# ssh kubeN init 
 +</​code>​ 
 +  * Удаляем на узле адаптер Vbox, добавляем его в GNS, указываем два сетевых адаптера,​ подключаем к Switch1,2 и запускаем
  
-server# ssh kube1 kubectl get nodes+  * Проверяем работоспособность узла 
 +<​code>​ 
 +cmder> ​kubectl get nodes 
 + 
 +nodeN# ceph -s 
 + 
 +nodeN# crm_mon
 </​code>​ </​code>​
  
Line 47: Line 61:
  
 <​code>​ <​code>​
 +kube1:~# kubectl get pods --field-selector=status.phase!=Running -A -o wide
 +
 kube1:~# kubectl delete pod --field-selector=status.phase==Succeeded -A kube1:~# kubectl delete pod --field-selector=status.phase==Succeeded -A
  
 kube1:~# kubectl delete pod --field-selector=status.phase==Failed -A kube1:~# kubectl delete pod --field-selector=status.phase==Failed -A
 </​code>​ </​code>​
-===== Шаг 4. Настраиваем и тестируем отказоустойчивую сеть =====+===== Шаг 4. Тестируем отказоустойчивую сеть =====
  
 +  * Удаляем отдельные линки ([[Настройка сети в Linux#​Настройка bonding]])
 +  * Ждем сообщение от мониторинга ([[Сервис Prometheus]] и [[Сервис Prometheus#​prometheus-alertmanager]])
 +  * Удаляем по очереди Switch1,2 (не забыть подключать к Switch3)
 +  * Пробуем устроить Ethernet петлю
  
 +<​code>​
 +kube1:~# tcpdump -nniany arp
  
-  * Добавляем в GNS Switch2 и подключаем cloud LAN через Switch3+kube1:~# ip n flush all 
 +</​code>​
  
-===== Вернуть ​обратно =====+===== Вопросы =====
  
 +===== Домашнее задание =====
 +
 +  - Написать ansible playbook для настройки bond ifupdown
 +  - Используя GNS, проверить гипотезу о возможности использования одного IP адреса двумя компьютерами
 +
 +===== Вернуть обратно =====
 +<​code>​
 +(venv1) server.corp24.un:​~#​ ansible all -a 'init 0' -i /​root/​kubespray/​inventory/​mycluster/​hosts.yaml ​                
 +</​code>​
   - Остановить проект   - Остановить проект
 +  - Удалить все объекты из проекта
   - Удалить VM из GNS   - Удалить VM из GNS
   - Удалить проект   - Удалить проект
   - Откатить VM kubeN на snapshot   - Откатить VM kubeN на snapshot
 +  - Запустить кластер
бюджетная_безотказная_сеть_для_кластера.1743927157.txt.gz · Last modified: 2025/04/06 11:12 by val