User Tools

Site Tools


devops1._основные_инструменты

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
devops1._основные_инструменты [2024/09/12 13:38]
val [Лабораторные работы: Работа с контейнерами Docker]
devops1._основные_инструменты [2025/01/27 10:17] (current)
val [Дополнительные материалы]
Line 32: Line 32:
 cd cd
  
-test -d conf && rm -conf+test -d conf && rm -rf conf
  
 git clone http://​val.bmstu.ru/​unix/​conf.git git clone http://​val.bmstu.ru/​unix/​conf.git
Line 44: Line 44:
 === 1.2 Настройка сети VM gate и server === === 1.2 Настройка сети VM gate и server ===
  
-  * !!! Добавить HDD 20GB к server 
   * [[Настройка стендов слушателей#​Настройка виртуальных систем Unix]] с использованием [[Настройка стендов слушателей#​Скрипты автоконфигурации]]   * [[Настройка стендов слушателей#​Настройка виртуальных систем Unix]] с использованием [[Настройка стендов слушателей#​Скрипты автоконфигурации]]
  
Line 65: Line 64:
 === 1.3 настройка сервиса DNS === === 1.3 настройка сервиса DNS ===
  
-  * [[Управление файловыми системами в Linux#​Использование LVM]] 
   * [[Финальная настройка DNS сервера]] ​   * [[Финальная настройка DNS сервера]] ​
 <​code>​ <​code>​
Line 86: Line 84:
  
   * !!! Заранее выполняем на server   * !!! Заранее выполняем на server
-  * [[Переменные окружения#​Установка переменных окружения]] http_proxy, https_proxy и no_proxy (только для ОО) 
  
   * Установку [[Инструмент Gitea]]   * Установку [[Инструмент Gitea]]
Line 120: Line 117:
 </​code>​ </​code>​
   * [[Установка ПО из исходных текстов#​Использование make для сопровождения файлов конфигурации сервиса]]   * [[Установка ПО из исходных текстов#​Использование make для сопровождения файлов конфигурации сервиса]]
-  * [[Сервис Git]] для каталога ~student/​dhcp/​ на gate+  * [[Сервис Git]] для каталога ~student/​dhcp/​ на gate (лучше в следующей лабораторной)
  
 === 2.2 Знакомимся с SCM Gitea === === 2.2 Знакомимся с SCM Gitea ===
Line 126: Line 123:
   * [[Инструмент Gitea]]   * [[Инструмент Gitea]]
   * Подключаемся как student, Repository Name: dhcp   * Подключаемся как student, Repository Name: dhcp
-  * [[Сервис Git#​Обновление сетевого репозитория из локального]] (копируем инструкции из посказки, ветка master)+  * [[Сервис Git#​Обновление сетевого репозитория из локального]] (копируем инструкции из подсказки)
   * Редактируем dhcpd.conf в Gitea (Commit to master branch)   * Редактируем dhcpd.conf в Gitea (Commit to master branch)
  
Line 144: Line 141:
   * Установка [[Инструмент GitLab]]   * Установка [[Инструмент GitLab]]
   * http://​server.corpX.un/​   * http://​server.corpX.un/​
-  * Используем [[Инструмент GitLab#​Управление пользователями]] в GitLab для ​отключения авто регистрации, ​назначении пароля пользователю root и создания учетной записи student +  * Используем [[Инструмент GitLab#​Управление пользователями]] в GitLab для назначении пароля пользователю root и создания учетной записи student ​(лучше назначить его администратором)
- +
-  * http://​server.corpX.un:​81/​mail+
  
 !!! в теме Ansible !!! в теме Ansible
Line 228: Line 223:
   * [[https://​lindevs.com/​install-vegeta-on-ubuntu|Install Vegeta on Ubuntu 20.04]]   * [[https://​lindevs.com/​install-vegeta-on-ubuntu|Install Vegeta on Ubuntu 20.04]]
   * [[https://​github.com/​tsenart/​vegeta/​releases|github/​tsenart/​vegeta/​releases]]   * [[https://​github.com/​tsenart/​vegeta/​releases|github/​tsenart/​vegeta/​releases]]
-  * [[https://​val.bmstu.ru/​unix/​WWW/​vegeta_12.11.0_linux_amd64.tar.gz]]+  * [[https://​val.bmstu.ru/​unix/​WWW/​vegeta_12.12.0_linux_amd64.tar.gz]]
  
   * [[https://​serverfault.com/​questions/​389645/​ftp-tcp-server-failing-looping|ftp/​tcp server failing (looping)]]   * [[https://​serverfault.com/​questions/​389645/​ftp-tcp-server-failing-looping|ftp/​tcp server failing (looping)]]
Line 235: Line 230:
   * в качестве external-host можно использовать gate   * в качестве external-host можно использовать gate
 <​code>​ <​code>​
 +cmd> route add 172.16.1.0 mask 255.255.255.0 10.5.N.178
 +
 external-host#​ curl http://​172.16.1.X external-host#​ curl http://​172.16.1.X
  
Line 244: Line 241:
 === 4.2 Использование технологии Docker и docker-compose для масштабирования приложения webd на одном узле === === 4.2 Использование технологии Docker и docker-compose для масштабирования приложения webd на одном узле ===
  
-  * Устанавливаем [[Технология Docker]] на server, и рассматриваем [[Технология Docker#​Создание ​контейнера для приложения вручную]] и образа из него (из под root)+  * Устанавливаем [[Технология Docker]] на server, и рассматриваем [[Технология Docker#​Создание образа для приложения вручную]] и образа из него (из под root)
   * Рассматриваем [[Технология Docker#​Запуск в режиме демона и подключение к контейнеру]]   * Рассматриваем [[Технология Docker#​Запуск в режиме демона и подключение к контейнеру]]
   * Изучаем [[Технология Docker#​Процессы контейнера и системы]] и [[Технология Docker#​Анализ параметров запущенного контейнера]] (преподаватель,​ можно на node1, пока у всех ставится docker)   * Изучаем [[Технология Docker#​Процессы контейнера и системы]] и [[Технология Docker#​Анализ параметров запущенного контейнера]] (преподаватель,​ можно на node1, пока у всех ставится docker)
  
   * Для удобства,​ выполнить [[Настройка командных интерпретаторов]]   * Для удобства,​ выполнить [[Настройка командных интерпретаторов]]
-  * Используя [[Технология Docker#​Предоставление прав непривилегированным пользователям]] для gitlab-runner (пригодится для процесса CD в minikube), знакомимся с [[Технология Docker#​Создание ​контейнера для приложения с использованием Dockerfile]]+  * Используя [[Технология Docker#​Предоставление прав непривилегированным пользователям]] для gitlab-runner (пригодится для процесса CD в minikube), знакомимся с [[Технология Docker#​Создание образа для приложения с использованием Dockerfile]]
  
   * [[Технология Docker#​Запуск в режиме демона и подключение к контейнеру]] несколько копий вручную,​ и, через [[Сервис Keepalived#​Настройка балансировки нагрузки]],​ повторяем нагрузочное тестирование (преподаватель)   * [[Технология Docker#​Запуск в режиме демона и подключение к контейнеру]] несколько копий вручную,​ и, через [[Сервис Keepalived#​Настройка балансировки нагрузки]],​ повторяем нагрузочное тестирование (преподаватель)
Line 297: Line 294:
 === 5.1 Установка и подключение к k8s === === 5.1 Установка и подключение к k8s ===
  
-  * Может закончиться место на диске VM server и понадобиться [[Управление ПО в Linux#​Удаление архива установленных пакетов]] плюс отключение [[Инструмент GitLab#​GitLab Prometheus]] или [[Управление файловыми системами в Linux#​Расширение существующего логического тома]] 
   * Производим [[Система Kubernetes#​Установка minikube]] для gitlab-runner@server (для доступа к репозиторию,​ на нем же, понадобится включить [[Сервисы Gateway и routing]])   * Производим [[Система Kubernetes#​Установка minikube]] для gitlab-runner@server (для доступа к репозиторию,​ на нем же, понадобится включить [[Сервисы Gateway и routing]])
  
 === 5.2 Базовые объекты k8s === === 5.2 Базовые объекты k8s ===
  
-  * Изучаем [[Система Kubernetes#​Базовые объекты k8s]] (gitlab-runner@server:​~/​webd$) +  * Изучаем [[Система Kubernetes#​Базовые объекты k8s]]  
-  * Для понимания работы [[Система Kubernetes#​Ingress]] (понадобится в следующем курсе),​ настраиваем [[Сервис HTTP#NGINX]] для доступа к приложению webd в minikube с хост системы ​+  * Для понимания работы [[Система Kubernetes#​Ingress]] (понадобится в следующем курсе),​ настраиваем [[Сервис HTTP#Прокси "​красивого"​ URL в приложение (пример 3)|Nginx]] для доступа к приложению webd в minikube с хост системы ​ 
 +  * Настраиваем [[Сервис Keepalived#​Настройка балансировки нагрузки|Keepalived]] и тестируем [[Утилита curl]]
   * Тестируем livenessProbe с extern-host   * Тестируем livenessProbe с extern-host
 +
 <​code>​ <​code>​
-extern-host# ​cat /etc/hosts +ext-host:~echo "GET http://webd.corpX.un" | vegeta attack -duration=20s -rate=400 -connect-to webd.corpX.un:​80:​172.16.1.X:80 | vegeta report
-</​code><​code>​ +
-... +
-172.16.1.X ​    webd.corpX.un+
 </​code>​ </​code>​
  
 === 5.3 Deploy в k8s === === 5.3 Deploy в k8s ===
  
-  * Автоматизируем deploy используя [[Инструмент GitLab#​Пример shell Kubernetes]] GitLab CD (см. выше)сталкиваемся с необходимостью править версию в манифесте,​ рассмотрев вариант envsubst видимнеобходимость в Helm +  * Автоматизируем deploy используя [[Инструмент GitLab#​Пример shell Kubernetes]] GitLab CD (см. выше) 
-  * В финале,​ можно "собрать"​ новую версию приложения ​на gate из под учетной записи student+  * Тестируем "​выкатку" новой версии приложения через запрос несуществующего файла и [[Система Kubernetes#​Версии deployment]] 
 +  * Столкнувшись ​с необходимостью править версию в манифесте,​ рассмотрев вариант ​с envsubst ​в [[Инструмент GitLab#​Пример shell Kubernetes]], ​видим необходимость в Helm 
 +  * В финале,​ можно "закоммитить" новую версию приложения прямо в GitLab
  
  
Line 327: Line 324:
 ===== Дополнительные материалы ===== ===== Дополнительные материалы =====
  
- +  * [[https://​rutube.ru/​video/​010673aafbfa7669938d1c3fec3a2ed8|Зачем нужен Kubernetes?​]] 
 +  * [[https://​rutube.ru/​video/​299b61b457e95203906d9e60878993e3|Вход в Jenkins для администратора Linux]] 
 +  * [[https://​rutube.ru/​video/​5ba29eaa5f03107ea8d4b686ae7551a6|Развертывание инфраструктуры в On-premise облаке с использованием Terraform]]
  
  
devops1._основные_инструменты.1726137527.txt.gz · Last modified: 2024/09/12 13:38 by val