User Tools

Site Tools


devops2._использование_kubernetes

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
devops2._использование_kubernetes [2025/03/21 06:55]
val [4.3 Работа с хранилищами в Kubernetes и восстановление после аварии]
devops2._использование_kubernetes [2025/06/02 14:45] (current)
val [3.3 Развертывание нужной версии приложения в kubernetes]
Line 1: Line 1:
 ====== DevOps2. Использование Kubernetes ====== ====== DevOps2. Использование Kubernetes ======
  
-===== При вводе в эксплуатацию учесть ===== 
  
-  * 4GB на узел для лонгхорн и кейклоак + 
-  * 12-й дебиан + 
-  * Нужен работающий k8s для демонстрации, ​в ожидании Kubespray ​+===== Программа курса ===== 
 + 
 +  * [[https://​www.specialist.ru/​course/​devops2|DevOps. Уровень 2. Использование Kubernetes]]
  
 ===== Модуль 0. Подготовка к занятию ===== ===== Модуль 0. Подготовка к занятию =====
Line 155: Line 156:
   * Используем на kube1 [[Система Kubernetes#​Инструмент командной строки kubectl]] ​   * Используем на kube1 [[Система Kubernetes#​Инструмент командной строки kubectl]] ​
  
 +===== Практикум =====
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​dev2/​dev2_mod1_pract.mp4|Запись практикума]] (длительность:​ 53 минуты)
 ===== Модуль 2. Объекты kubernetes, helm ===== ===== Модуль 2. Объекты kubernetes, helm =====
  
Line 195: Line 199:
   * [[Система Kubernetes#​hostPath и nodeSelector]] (lifecycle и initContainers снова пригодятся на следующем шаге)   * [[Система Kubernetes#​hostPath и nodeSelector]] (lifecycle и initContainers снова пригодятся на следующем шаге)
   * [[Система Kubernetes#​Установка Helm]] на kube1 (**делаем все**)   * [[Система Kubernetes#​Установка Helm]] на kube1 (**делаем все**)
-  * [[Система Kubernetes#​PersistentVolume и PersistentVolumeVolumeClaim]] (убрать nodeSelector)+  * [[Система Kubernetes#​PersistentVolume и PersistentVolumeClaim]] (убрать nodeSelector) 
 + 
 +  * Можно показать [[Система Kubernetes#​rancher local-path-provisioner]]
  
  
Line 254: Line 260:
   * Удаляем [[Система Kubernetes#​LoadBalancer]]   * Удаляем [[Система Kubernetes#​LoadBalancer]]
  
 +===== Практикум =====
  
 +  * [[https://​val.bmstu.ru/​~val/​pract/​dev2/​dev2_mod2_pract.mp4|Запись практикума]] (длительность:​ 12 минут)
 ===== Модуль 3. Создание CI/CD в kubernetes ===== ===== Модуль 3. Создание CI/CD в kubernetes =====
  
Line 260: Line 268:
 ==== 3.1 Запуск gitlab-runner в kubernetes ==== ==== 3.1 Запуск gitlab-runner в kubernetes ====
  
 +  * [[Система Kubernetes#​Установка Helm]]
   * Сделать общий [[Система Kubernetes#​gitlab-runner kubernetes]] с тегом "​build"​   * Сделать общий [[Система Kubernetes#​gitlab-runner kubernetes]] с тегом "​build"​
  
Line 270: Line 279:
   * В GitLab добавляем тег ver1.1 и проверяем наличие образов   * В GitLab добавляем тег ver1.1 и проверяем наличие образов
  
-==== 3.3 Разворачивание нужной версии приложения в kubernetes ====+==== 3.3 Развертывание нужной версии приложения в kubernetes ====
  
 <​code>​ <​code>​
-kube1:~# mkdir gowebd-k8s;​cd $_+kube1:~# mkdir -p gowebd-k8s;​cd $_
 </​code>​ </​code>​
   * [[Система Kubernetes#​Deployment]] ver1.1   * [[Система Kubernetes#​Deployment]] ver1.1
Line 299: Line 308:
   * Настраиваем [[Система Kubernetes#​Подключение к кластеру]] для пользователя gitlab-runner на server   * Настраиваем [[Система Kubernetes#​Подключение к кластеру]] для пользователя gitlab-runner на server
  
 +  * Преподаватель демонстрирует
   * Настраиваем stage deploy через envsubst используя [[Инструмент GitLab#​Пример shell Kubernetes]]   * Настраиваем stage deploy через envsubst используя [[Инструмент GitLab#​Пример shell Kubernetes]]
-  * Создаем проект gowebd-k8s (Public, ​без Readme)+  * Создаем проект gowebd-k8s (без Readme)
   * Деплоим нужную версию в ручную (New Pipeeline MY_WEBD_VER=ver1.1)   * Деплоим нужную версию в ручную (New Pipeeline MY_WEBD_VER=ver1.1)
- +  ​Преподаватель ​удаляет проект ​gowebd-k8s
-  ​Через WebIDE +
-  * Настраиваем зависимость между проектами gowebd и gowebd-k8s через stage deploy ​в [[Инструмент GitLab#​Пример CI с использованием контейнеров]] +
-  * Увеличиваем версию, ​добавляем соответствующий тег, ​проверяем версию приложения в k8s +
- +
-  * Обсуждаем [[Система Kubernetes#​Версии deployment]],​ недостатки Gitlab CD и варианты, например Argo CD+
  
   * [[Система Kubernetes#​Удаление объектов]] (весь namespace)   * [[Система Kubernetes#​Удаление объектов]] (весь namespace)
-  * [[Система Kubernetes#​Установка Helm]] (если еще не установлен) на kube1 
   * [[Система Kubernetes#​Развертывание своего приложения]] (webd-chart с образом gowebd)   * [[Система Kubernetes#​Развертывание своего приложения]] (webd-chart с образом gowebd)
  
Line 329: Line 333:
 gitlab-runner@server:​~$ helm list -n my-ns gitlab-runner@server:​~$ helm list -n my-ns
 </​code>​ </​code>​
-  ​Исправляем [[Инструмент GitLab#​Пример shell Kubernetes]] ​с использованим helm и push-им все в репозиторий gowebd-k8s + 
-  * В проекте ​gowebd увеличиваем версию,​ добавляем соответствующий тег, проверяем версию приложения в k8s+  ​Настраиваем stage deploy с helm используя ​[[Инструмент GitLab#​Пример shell Kubernetes]] 
 +  * Создаем проект gowebd-k8s (Public, без Readme) 
 + 
 +  * Через WebIDE 
 +  * Настраиваем зависимость между ​проектами gowebd ​и gowebd-k8s ​через stage deploy в [[Инструмент GitLab#​Пример CI с использованием контейнеров]] 
 +  * Увеличиваем версию,​ добавляем соответствующий тег, проверяем версию приложения в k8s 
 + 
 +  * Ожидая процесс сборки,​ обсуждаем [[Система Kubernetes#​Версии deployment]],​ недостатки Gitlab CD и варианты,​ например Argo CD
  
   * [[Система Kubernetes#​Работа со своим репозиторием]] для размещения helm пакета (будет использоваться в дополнительном материале)   * [[Система Kubernetes#​Работа со своим репозиторием]] для размещения helm пакета (будет использоваться в дополнительном материале)
 +
 +===== Практикум =====
 +
 +  * [[https://​val.bmstu.ru/​~val/​pract/​dev2/​dev2_mod3_pract.mp4|Запись практикума]] (длительность:​ 52 минуты)
 ===== Модуль 4. Дополнительные материалы ===== ===== Модуль 4. Дополнительные материалы =====
  
Line 358: Line 373:
 ==== 4.3 Работа с хранилищами в Kubernetes и восстановление после аварии ==== ==== 4.3 Работа с хранилищами в Kubernetes и восстановление после аварии ====
  
-  * “Хором” в классе можно выполнить [[Система Kubernetes#​Добавление узла через Kubespray]] и, параллельно,​ шаги 4, 5, 3+  * “Хором” в классе можно выполнить [[Система Kubernetes#​Добавление узла через Kubespray]] и, параллельно,​ шаги 4, 5, 3, можно, добавить мониторинг (VictoriaMetrics Cluster), перед аварией узла
  
   * Видео [[Работа с хранилищами в Kubernetes]] (выполняем работы с 00:04:00 до конца)   * Видео [[Работа с хранилищами в Kubernetes]] (выполняем работы с 00:04:00 до конца)
Line 374: Line 389:
   * с 00:54:50 до 01:03:33 (обновляем кластер)   * с 00:54:50 до 01:03:33 (обновляем кластер)
  
 +==== 4.5 Мониторинг кластера Kubernetes ====
 +
 +  * Видео [[Мониторинг кластера Kubernetes]] (выполняем работы с 00:04:50 до конца)
 +
 +==== 4.6 Бюджетная безотказная сеть для кластера ====
 +
 +  * Видео [[Бюджетная безотказная сеть для кластера]]
 +
 +==== 4.7 Все что должен знать DevOps про PostgreSQL ====
  
 +  * Видео [[Все что должен знать DevOps про PostgreSQL]]
devops2._использование_kubernetes.1742529340.txt.gz · Last modified: 2025/03/21 06:55 by val