This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
devops2._использование_kubernetes [2024/02/24 11:50] val [Лабораторные работы: Разработка и CI приложения] |
devops2._использование_kubernetes [2024/10/28 14:14] (current) val [Лабораторные работы: CD приложения] |
||
---|---|---|---|
Line 29: | Line 29: | ||
cd | cd | ||
+ | |||
+ | test -d conf && rm -r conf | ||
git clone http://val.bmstu.ru/unix/conf.git | git clone http://val.bmstu.ru/unix/conf.git | ||
Line 109: | Line 111: | ||
==== Вопросы ==== | ==== Вопросы ==== | ||
+ | |||
+ | |||
===== Модуль 3: Развертывание кластера через Kubespray ===== | ===== Модуль 3: Развертывание кластера через Kubespray ===== | ||
Line 154: | Line 158: | ||
* Создаем и подключаемся учетной записью student ([[Инструмент GitLab#Управление пользователями]] GitLab) | * Создаем и подключаемся учетной записью student ([[Инструмент GitLab#Управление пользователями]] GitLab) | ||
* Можно использовать ключи ssh ([[Сервис SSH#Настройка ssh клиента]]) | * Можно использовать ключи ssh ([[Сервис SSH#Настройка ssh клиента]]) | ||
- | * Создаем новый публичный проект без Readme и копируем инструкции из подсказки | + | * Создаем новый публичный проект gowebd без Readme и копируем инструкции из подсказки |
* Перед git push... отключаем Auto DevOps и !!! проверить еще раз после push | * Перед git push... отключаем Auto DevOps и !!! проверить еще раз после push | ||
* [[Сервис Git#Обновление сетевого репозитория из локального]] | * [[Сервис Git#Обновление сетевого репозитория из локального]] | ||
+ | |||
* [[Инструмент GitLab#GitLab Docker Registry]] | * [[Инструмент GitLab#GitLab Docker Registry]] | ||
* Docker [[Технология Docker#Insecure Private Registry]] на client1 для проверки, можно использовать подсказки из раздела container_registry а затем удалить образ из GitLab | * Docker [[Технология Docker#Insecure Private Registry]] на client1 для проверки, можно использовать подсказки из раздела container_registry а затем удалить образ из GitLab | ||
+ | |||
* [[Инструмент GitLab#Установка в виде контейнера]] gitlab-runner на gate | * [[Инструмент GitLab#Установка в виде контейнера]] gitlab-runner на gate | ||
- | * Включаем [[Технология Docker#Insecure Private Registry]] (можно [[Сервис SSH#SCP]] c client1), копируем "Registration token" для [[Инструмент GitLab#Регистрация DooD]] | + | * Включаем [[Технология Docker#Insecure Private Registry]] (можно [[Сервис SSH#SCP]] c client1), копируем "Registration token" для gitlab-runner в режиме [[Инструмент GitLab#Регистрация DooD]] |
- | * Добавляем в проект [[Инструмент GitLab#Пример CI с использованием контейнеров]] и используем Git тэги ([[Сервис Git#Обновление сетевого репозитория из локального]]) для Docker образов | + | |
+ | * Добавляем в проект [[Инструмент GitLab#Пример CI с использованием контейнеров]] и используем Git тэги ([[Сервис Git#Обновление сетевого репозитория из локального]]) для сборки Docker образов | ||
* Останавливаем, очищаем конфигурацию [[Инструмент GitLab#Установка в виде контейнера]] gitlab-runner на gate | * Останавливаем, очищаем конфигурацию [[Инструмент GitLab#Установка в виде контейнера]] gitlab-runner на gate | ||
* Удаляем Runner в GitLab | * Удаляем Runner в GitLab | ||
* [[Технология Docker#Обзор и удаление]] образов gowebd c gate (может понадобиться -f) | * [[Технология Docker#Обзор и удаление]] образов gowebd c gate (может понадобиться -f) | ||
* Отключаем [[Технология Docker#Insecure Private Registry]] | * Отключаем [[Технология Docker#Insecure Private Registry]] | ||
+ | |||
* Повторяем [[Инструмент GitLab#Установка в виде контейнера]] gitlab-runner на gate | * Повторяем [[Инструмент GitLab#Установка в виде контейнера]] gitlab-runner на gate | ||
- | * Копируем "Registration token" для [[Инструмент GitLab#Регистрация DinD]] | + | * Копируем "Registration token" для gitlab-runner в режиме [[Инструмент GitLab#Регистрация DinD]] |
* Добавляем необходимые для DinD элементы конфигурации в [[Инструмент GitLab#Пример CI с использованием контейнеров]] | * Добавляем необходимые для DinD элементы конфигурации в [[Инструмент GitLab#Пример CI с использованием контейнеров]] | ||
Line 201: | Line 210: | ||
* Использование [[Система Kubernetes#Управление дополнениями через Kubespray]] для включения Ingress | * Использование [[Система Kubernetes#Управление дополнениями через Kubespray]] для включения Ingress | ||
* [[Пакет OpenSSL#Создание самоподписанного сертификата]] (gowebd без altdns) | * [[Пакет OpenSSL#Создание самоподписанного сертификата]] (gowebd без altdns) | ||
- | * [[Система Kubernetes#ingress-tls]] | + | * [[Система Kubernetes#secrets tls]] |
=== 5.2 GitOps === | === 5.2 GitOps === | ||
Line 213: | Line 222: | ||
* Создаем каталог gowebd-k8s пользователем gitlab-runner, [[Инструмент GitLab#Пример shell Kubernetes]], service и ingress можно оставить из лаборатороной работы 5.1 | * Создаем каталог gowebd-k8s пользователем gitlab-runner, [[Инструмент GitLab#Пример shell Kubernetes]], service и ingress можно оставить из лаборатороной работы 5.1 | ||
* Настраиваем stage deploy через envsubst ([[Инструмент GitLab#Пример shell Kubernetes]], см. выше) | * Настраиваем stage deploy через envsubst ([[Инструмент GitLab#Пример shell Kubernetes]], см. выше) | ||
- | * Создаем проект gowebd-k8s (что-бы не "возиться" с ключами ssh, указать: git remote add origin http://server.corpX.un/student/gowebd-k8s.git) | + | * Создаем проект gowebd-k8s, что-бы не "возиться" с ключами ssh, указать: |
+ | <code> | ||
+ | gitlab-runner@server:~/gowebd-k8s$ git remote add origin http://server.corpX.un/student/gowebd-k8s.git | ||
+ | </code> | ||
* Проводим [[Инструмент GitLab#Регистрация]] gitlab runner в этом проекте (вариант из командной строки) | * Проводим [[Инструмент GitLab#Регистрация]] gitlab runner в этом проекте (вариант из командной строки) | ||
* Настраиваем зависимость между проектами через stage deploy в [[Инструмент GitLab#Пример CI с использованием контейнеров]] | * Настраиваем зависимость между проектами через stage deploy в [[Инструмент GitLab#Пример CI с использованием контейнеров]] | ||
Line 228: | Line 240: | ||
* [[Система Kubernetes#Установка Helm]] | * [[Система Kubernetes#Установка Helm]] | ||
* Использование [[Система Kubernetes#Управление дополнениями через Kubespray]] для включения Helm | * Использование [[Система Kubernetes#Управление дополнениями через Kubespray]] для включения Helm | ||
- | * [[Система Kubernetes#Развертывание своего приложения]] | + | * [[Система Kubernetes#Развертывание своего приложения]] (webd-chart с образом gowebd) |
* Настраиваем stage deploy через helm ([[Инструмент GitLab#Пример shell Kubernetes]], см. выше) | * Настраиваем stage deploy через helm ([[Инструмент GitLab#Пример shell Kubernetes]], см. выше) | ||
* [[Система Kubernetes#Работа со своим репозиторием]] для развертывания приложения на kube кластере | * [[Система Kubernetes#Работа со своим репозиторием]] для развертывания приложения на kube кластере | ||
Line 244: | Line 256: | ||
=== 5.4 ArgoCD === | === 5.4 ArgoCD === | ||
+ | |||
+ | !!! ВНИМАНИЕ !!! Вместо 9-го фрагмента записи (его лучше просто просмотреть) рекомендую выполнить лабораторные работы из вебинара [[https://rutube.ru/video/356186164509624a323079127c4bd690/|Доступ к приложениям в Bare-Metal Kubernetes]], там есть все что нужно, плюс, много дополнительного материала !!! | ||
* [[Система Kubernetes#Работа со своим репозиторием]] для удаления приложения с kube кластера | * [[Система Kubernetes#Работа со своим репозиторием]] для удаления приложения с kube кластера | ||
Line 249: | Line 263: | ||
* Используем [[Контроллер ArgoCD]] на kube кластере для деплоя приложения | * Используем [[Контроллер ArgoCD]] на kube кластере для деплоя приложения | ||
+ | === 5.5 Работа с хранилищами в Kubernetes === | ||
+ | |||
+ | !!! Если есть "настрой", можно выполнить лабораторные работы из этого вебинара: | ||
+ | |||
+ | * [[https://rutube.ru/video/9c55de0f39d761d569761d2f553e0f61/|Работа с хранилищами в Kubernetes]] | ||
+ | |||
+ | === 5.6 Обновление кластера Kubernetes === | ||
+ | |||
+ | !!! Если Вы "еще здесь")), есть можно выполнить лабораторные работы из этого вебинара: | ||
+ | |||
+ | * [[https://rutube.ru/video/1b0cde4db02403e1e2a8a79cafda4131/|Обновление кластера Kubernetes]] | ||
==== Вопросы ==== | ==== Вопросы ==== |