This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
devops2._использование_kubernetes [2025/05/14 17:06] val [4.6 Бюджетная безотказная сеть для кластера] |
devops2._использование_kubernetes [2026/01/30 13:18] (current) val [4.8 Helm - от основ до универсального чарта] |
||
|---|---|---|---|
| Line 13: | Line 13: | ||
| - Сообщить его в чат преподавателю | - Сообщить его в чат преподавателю | ||
| + | ===== Практикум ===== | ||
| + | |||
| + | * [[https://val.bmstu.ru/~val/pract/dev2/|Записи практикума]] | ||
| ===== Модуль 1. Развертывание стенда и kubernetes кластера ===== | ===== Модуль 1. Развертывание стенда и kubernetes кластера ===== | ||
| Line 128: | Line 131: | ||
| * Только преподаватель | * Только преподаватель | ||
| - | * [[Язык программирования Python]] (в venv2, без ssl (добавим в теме ingress), с конфигурацией и с /var/www, для демонстрации работы) | + | * [[Язык программирования Python]] (в venv2, без ssl (добавим в теме ingress), с конфигурацией и с /var/www, для проверки работоспособности) |
| - | * Создаем и тестируем Docker образ для [[Технология Docker#Приложение python pywebd]] (безопасный вариант, для демонстрации всех нюансов в k8s) | + | * Создаем и тестируем Docker образ для [[Технология Docker#Приложение python pywebd]] (безопасный вариант, с конфигурацией и с /var/www, для начальных простых развертываний в k8s) |
| * Создаем проект **pywebd** (Public (Private на следующей итерации), без README) и [[Технология Docker#Использование Private Registry]] для хранения образа (метки latest и ver1.1) | * Создаем проект **pywebd** (Public (Private на следующей итерации), без README) и [[Технология Docker#Использование Private Registry]] для хранения образа (метки latest и ver1.1) | ||
| Line 147: | Line 150: | ||
| ssh kube3 systemctl restart containerd | ssh kube3 systemctl restart containerd | ||
| ' | ' | ||
| - | |||
| - | kubeN# | ||
| - | crictl pull server.corpX.un:5000/student/gowebd | ||
| - | crictl images | ||
| - | crictl rmi server.corpX.un:5000/student/gowebd | ||
| </code> | </code> | ||
| + | * [[Система Kubernetes#Управление образами]] | ||
| * Используем на 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 177: | Line 179: | ||
| kube1:~# mkdir pywebd-k8s;cd $_ | kube1:~# mkdir pywebd-k8s;cd $_ | ||
| </code> | </code> | ||
| - | * !!! Можно начать с использования образа gowebd, а потом усложнить | + | * !!! Можно начать с использования образа gowebd, а после демонстрации балансировки заменить на pywebd |
| * [[Система Kubernetes#Deployment]] | * [[Система Kubernetes#Deployment]] | ||
| * [[Система Kubernetes#Service]], [[Система Kubernetes#ClusterIP]] | * [[Система Kubernetes#Service]], [[Система Kubernetes#ClusterIP]] | ||
| - | * Предоставляем доступ к приложниям в k8s по [[Система Kubernetes#NodePort]] | + | * Предоставляем доступ к приложениям в k8s по [[Система Kubernetes#NodePort]] |
| + | * Проверка статуса пода | ||
| <code> | <code> | ||
| kube1:~/pywebd-k8s# kubectl -n my-ns exec -ti pods/my-webd-<TAB> -- sh | kube1:~/pywebd-k8s# kubectl -n my-ns exec -ti pods/my-webd-<TAB> -- sh | ||
| Line 189: | Line 192: | ||
| kube1:~/pywebd-k8s# kubectl get pods -n my-ns --watch | kube1:~/pywebd-k8s# kubectl get pods -n my-ns --watch | ||
| </code> | </code> | ||
| + | |||
| + | * Настройка лимитов в [[Система Kubernetes#Manifest]] | ||
| + | * Основы администрирования систем Linux [[Основы администрирования систем Linux#Модуль 11. Анализ производительности и оптимизация системы]] | ||
| + | * Управление ПО [[Управление ПО в Linux#APK Alpine Linux]] | ||
| ==== 2.2 volumes, nodeAffinity, helm ==== | ==== 2.2 volumes, nodeAffinity, helm ==== | ||
| Line 244: | Line 251: | ||
| <code> | <code> | ||
| - | $ curl --connect-to "":"":192.168.X.64:443 https://pywebd.corp24.un | + | $ curl --connect-to "":"":192.168.X.64:443 https://pywebd.corpX.un |
| server# cat /etc/bind/corpX.un | server# cat /etc/bind/corpX.un | ||
| Line 257: | Line 264: | ||
| * Удаляем [[Система 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 263: | Line 272: | ||
| ==== 3.1 Запуск gitlab-runner в kubernetes ==== | ==== 3.1 Запуск gitlab-runner в kubernetes ==== | ||
| + | * [[Система Kubernetes#Установка Helm]] | ||
| + | * Методически, можно показать: "Развертывание своего приложения (webd-chart с образом gowebd)" | ||
| * Сделать общий [[Система Kubernetes#gitlab-runner kubernetes]] с тегом "build" | * Сделать общий [[Система Kubernetes#gitlab-runner kubernetes]] с тегом "build" | ||
| Line 273: | Line 284: | ||
| * В 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 338: | Line 349: | ||
| * [[Система Kubernetes#Работа со своим репозиторием]] для размещения helm пакета (будет использоваться в дополнительном материале) | * [[Система Kubernetes#Работа со своим репозиторием]] для размещения helm пакета (будет использоваться в дополнительном материале) | ||
| + | |||
| + | ===== Практикум ===== | ||
| + | |||
| + | * [[https://val.bmstu.ru/~val/pract/dev2/dev2_mod3_pract.mp4|Запись практикума]] (длительность: 52 минуты) | ||
| ===== Модуль 4. Дополнительные материалы ===== | ===== Модуль 4. Дополнительные материалы ===== | ||
| Line 387: | Line 402: | ||
| * Видео [[Бюджетная безотказная сеть для кластера]] | * Видео [[Бюджетная безотказная сеть для кластера]] | ||
| - | ==== 4.7 Бюджетная безотказная сеть для кластера ==== | + | ==== 4.7 Все что должен знать DevOps про PostgreSQL ==== |
| * Видео [[Все что должен знать DevOps про PostgreSQL]] | * Видео [[Все что должен знать DevOps про PostgreSQL]] | ||
| + | |||
| + | ==== 4.8 Helm - от основ до универсального чарта ==== | ||
| + | |||
| + | * Видео [[универсальный_helm-чарт|Helm - от основ до универсального чарта]] | ||