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/05 15:51]
val
бюджетная_безотказная_сеть_для_кластера [2025/04/09 04:49] (current)
val [Запись вебинара]
Line 1: Line 1:
 ====== Бюджетная безотказная сеть для кластера ====== ====== Бюджетная безотказная сеть для кластера ======
  
-  ​* [[Мониторинг кластера Kubernetes]] +===== Реклама ===== 
-  * [[Настройка сети в Linux#​Настройка bonding]]+ 
 +  * Всем привет! В нашем центре обучения вы научитесь разворачивать множество различных кластеров - pacemaker/​corosync,​ ceph, kubernetes, и, у студентов часто возникает вопрос,​ а что случится,​ если "​сломается"​ сеть между его узлами. Давайте на этот вопрос зададим другой - как сделать так, что бы сеть между узлами кластера "не сломалась"​ 
 + 
 +===== Техническое задание ===== 
 + 
 +  * Развернуть отказоустойчивую сеть с использованиием неуправляемых коммутаторов 
 +  * Мигрировать кластер в эту сеть с минимальным временем простоя 
 +  * Убедиться в отказоустойчивости решения  
 + 
 +===== Запись вебинара ===== 
 + 
 +  * Тэги: Linux, Bond, Ethernet, Cluster, Arp, High availability 
 +  * [[https://​val.bmstu.ru/​unix/​video/​Семинар%20Бюджетная%20безотказная%20сеть%20для%20кластера%2008.04.2025.mp4]] 
 + 
 +===== Методическая подготовка ===== 
 + 
 +===== Шаг 1. Что у нас есть для начала ===== 
 + 
 +  ​* [[Мониторинг кластера Kubernetes]] или [[Решение Ceph]] или [[Пакет Pacemaker]] 
 +  * [[Сети Cisco и Linux у Вас дома]] 
 + 
 +  * [[Утилита curl]] для тестирования работы приложения 
 + 
 +===== Шаг 2. Создаем оказоустойчивую сеть ===== 
 + 
 +  * Используя [[Материалы по GNS]], создаем оказоустойчивую сеть: cloud LAN и Switch1,​2,​3 
 + 
 +===== Шаг 3. Настраиваем bonding, добавляем второй сетевой адаптер и включаем в оказоустойчивую сеть ===== 
 + 
 +<​code>​ 
 +(venv1) server:~# ansible all -f 4 -m apt -a '​pkg=ifenslave state=present update_cache=true'​ -i /​root/​kubespray/​inventory/​mycluster/​hosts.yaml 
 +</​code>​ 
 + 
 +  * По очереди,​ на каждом узле проводим ​[[Настройка сети в Linux#​Настройка bonding]] 
 +<​code>​ 
 +server# cat /​tmp/​interfaces 
 +... 
 +iface bond0 inet static 
 +        address 192.168.24.22N 
 +... 
 + 
 +server# scp /​tmp/​interfaces kubeN:/​etc/​network/​interfaces 
 + 
 +server# ssh kubeN init 0 
 +</​code>​ 
 +  * Удаляем на узле адаптер Vbox, добавляем его в GNS, указываем два сетевых адаптера,​ подключаем к Switch1,2 и запускаем 
 + 
 +  * Проверяем работоспособность узла 
 +<​code>​ 
 +cmder> kubectl get nodes 
 + 
 +nodeN# ceph -s 
 + 
 +nodeN# crm_mon 
 +</​code>​ 
 + 
 +  * [[https://​stackoverflow.com/​questions/​55072235/​how-to-delete-completed-kubernetes-pod|How to delete completed kubernetes pod?]] 
 + 
 +<​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==Failed -A 
 +</​code>​ 
 +===== Шаг 4. Тестируем отказоустойчивую сеть ===== 
 + 
 +  * Удаляем отдельные линки ([[Настройка сети в Linux#​Настройка bonding]]) 
 +  * Ждем сообщение от мониторинга ([[Сервис Prometheus]] и [[Сервис Prometheus#​prometheus-alertmanager]]) 
 +  * Удаляем по очереди Switch1,2 (не забыть подключать к Switch3) 
 +  * Пробуем устроить Ethernet петлю 
 + 
 +<​code>​ 
 +kube1:~# tcpdump -nniany arp 
 + 
 +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 kubeN на snapshot 
 +  - Запустить кластер
бюджетная_безотказная_сеть_для_кластера.1743857501.txt.gz · Last modified: 2025/04/05 15:51 by val