Доработка СКВ

This commit is contained in:
Tot Maxim
2026-07-18 23:44:30 +03:00
parent 53032f1fd7
commit e990a21458
5 changed files with 22 additions and 11 deletions

10
.gitignore vendored
View File

@@ -1 +1,11 @@
.claude/ .claude/
# OS
.DS_Store
Thumbs.db
# Editor temp files
*.swp
*.swo
*~
.env

View File

@@ -41,6 +41,7 @@
- Все документы — на русском, в markdown. - Все документы — на русском, в markdown.
- Ответы на вопросы в `QUESTIONS.md` — от первого лица, разговорным языком, как кандидат реально бы ответил, с опорой на кейс. Не копировать формулировки из документации слово в слово. - Ответы на вопросы в `QUESTIONS.md` — от первого лица, разговорным языком, как кандидат реально бы ответил, с опорой на кейс. Не копировать формулировки из документации слово в слово.
- Без канцелярита и не заученно — если ответ звучит как выученный наизусть параграф, это плохой ответ и его надо переписать. - Без канцелярита и не заученно — если ответ звучит как выученный наизусть параграф, это плохой ответ и его надо переписать.
- Все даты в тексте записываются в формате `dd-mm-yyyy` (например, `18-07-2026`), а не `yyyy-mm-dd` или другими способами.
## Куда идти ## Куда идти

View File

@@ -13,7 +13,7 @@
--- ---
## 2026-07-18 ## 18-07-2026
### 0. SSH-обвязка (используется почти во всех командах ниже) ### 0. SSH-обвязка (используется почти во всех командах ниже)

View File

@@ -6,10 +6,10 @@
| Модуль | Тема | Статус | Дата | | Модуль | Тема | Статус | Дата |
|---|---|---|---| |---|---|---|---|
| 0 | Установка инструментов | ✅ Пройден | 2026-07-18 | | 0 | Установка инструментов | ✅ Пройден | 18-07-2026 |
| 1 | Зачем вообще Kubernetes | ✅ Пройден (как смоук-тест наладки) | 2026-07-18 | | 1 | Зачем вообще Kubernetes | ✅ Пройден (как смоук-тест наладки) | 18-07-2026 |
| 2 | Архитектура кластера | ✅ Пройден | 2026-07-18 | | 2 | Архитектура кластера | ✅ Пройден | 18-07-2026 |
| 3 | Pod и kubectl-база | ✅ Пройден | 2026-07-18 | | 3 | Pod и kubectl-база | ✅ Пройден | 18-07-2026 |
| 4 | Deployment и ReplicaSet | ⬜ Не начат | | | 4 | Deployment и ReplicaSet | ⬜ Не начат | |
| 5 | Service и сеть | ⬜ Не начат | | | 5 | Service и сеть | ⬜ Не начат | |
| 6 | Ingress | ⬜ Не начат | | | 6 | Ingress | ⬜ Не начат | |
@@ -24,7 +24,7 @@
## Лог по датам ## Лог по датам
### 2026-07-18 — наладка окружения на сервере + модуль 0 + модуль 1 ### 18-07-2026 — наладка окружения на сервере + модуль 0 + модуль 1
Сделано: Сделано:
- Сервер `totserver@192.168.31.163` обновлён (`apt upgrade`), перезагружен, добавлены sysctl-лимиты inotify (524288/512) для kind. - Сервер `totserver@192.168.31.163` обновлён (`apt upgrade`), перезагружен, добавлены sysctl-лимиты inotify (524288/512) для kind.
@@ -41,7 +41,7 @@
Затыки: нет (модуль 0 и смоук-тест прошли гладко). Затыки: нет (модуль 0 и смоук-тест прошли гладко).
### 2026-07-18 — модуль 2: архитектура кластера ### 18-07-2026 — модуль 2: архитектура кластера
Формат сессии новый: команды на сервере выполнял сам, мне присылались логи шаг за шагом — я вёл по шагам и разбирал вывод. Формат сессии новый: команды на сервере выполнял сам, мне присылались логи шаг за шагом — я вёл по шагам и разбирал вывод.
@@ -56,7 +56,7 @@
Затыки: нет, модуль 2 прошёл гладко. Затыки: нет, модуль 2 прошёл гладко.
### 2026-07-18 — модуль 3: Pod и kubectl-база ### 18-07-2026 — модуль 3: Pod и kubectl-база
Формат сессии тот же: команды на сервере выполнял сам, логи присылались шаг за шагом. Формат сессии тот же: команды на сервере выполнял сам, логи присылались шаг за шагом.
@@ -84,5 +84,5 @@
## Вне периметра курса (не забыть) ## Вне периметра курса (не забыть)
- `gitea_runner` был в restart-loop (`unregistered runner`, обнаружено 2026-07-18 при проверке после ребута) — **починено в тот же день** (чистая перерегистрация). Дополнительно поднят второй CI-раннер `gitea_runner_armhf` (cross-builder для ARM) под реальный проект `maxim/Pluto-SDR`; все 4 CI-workflow зелёные. Разбор — [../docker/CASE.md](../docker/CASE.md) → раздел 9. - `gitea_runner` был в restart-loop (`unregistered runner`, обнаружено 18-07-2026 при проверке после ребута) — **починено в тот же день** (чистая перерегистрация). Дополнительно поднят второй CI-раннер `gitea_runner_armhf` (cross-builder для ARM) под реальный проект `maxim/Pluto-SDR`; все 4 CI-workflow зелёные. Разбор — [../docker/CASE.md](../docker/CASE.md) → раздел 9.
- **Перед каждой сессией курса** сверяться с чек-листом [«CI-инфраструктура на сервере — что нельзя ломать»](SERVER.md#ci-инфраструктура-на-сервере--что-нельзя-ломать) в SERVER.md — там же актуальный список занятых портов (3000/3030/222/4400/9090). - **Перед каждой сессией курса** сверяться с чек-листом [«CI-инфраструктура на сервере — что нельзя ломать»](SERVER.md#ci-инфраструктура-на-сервере--что-нельзя-ломать) в SERVER.md — там же актуальный список занятых портов (3000/3030/222/4400/9090).

View File

@@ -14,7 +14,7 @@
| Уже занято | Gitea + Postgres + два CI-раннера + file-server (docker) + Grafana + nginx (systemd), ~1.3 ГБ RAM в простое. Порты 80, 443, **3000 (Grafana)**, **3030 (Gitea)**, 222 (Gitea SSH), 4400 (file-server), 9090 (Prometheus) на хосте заняты этим стеком — **не трогать**. Подробный чек-лист — [«CI-инфраструктура на сервере — что нельзя ломать»](#ci-инфраструктура-на-сервере--что-нельзя-ломать) ниже | | Уже занято | Gitea + Postgres + два CI-раннера + file-server (docker) + Grafana + nginx (systemd), ~1.3 ГБ RAM в простое. Порты 80, 443, **3000 (Grafana)**, **3030 (Gitea)**, 222 (Gitea SSH), 4400 (file-server), 9090 (Prometheus) на хосте заняты этим стеком — **не трогать**. Подробный чек-лист — [«CI-инфраструктура на сервере — что нельзя ломать»](#ci-инфраструктура-на-сервере--что-нельзя-ломать) ниже |
| sudo | Требует пароль — все команды курса на этом сервере выполняются без sudo (kind/helm стоят в `~/.local/bin`) | | sudo | Требует пароль — все команды курса на этом сервере выполняются без sudo (kind/helm стоят в `~/.local/bin`) |
## Результаты бенчмарков (2026-07-18) ## Результаты бенчмарков (18-07-2026)
| Тест | Результат | | Тест | Результат |
|---|---| |---|---|
@@ -103,7 +103,7 @@ curl -H "Host: demo.local" http://localhost:8080
## CI-инфраструктура на сервере — что нельзя ломать ## CI-инфраструктура на сервере — что нельзя ломать
Вне периметра K8s-курса, но на этом же сервере: Gitea + два CI-раннера Gitea Actions обслуживают реальный проект (`maxim/Pluto-SDR`, кросс-сборка C-кода под ARM). 2026-07-18 раннер `gitea_runner` был починен из restart-loop (устаревшая регистрация act_runner — вылечено чистой перерегистрацией), и поднят второй раннер `gitea_runner_armhf` — кастомный образ cross-builder'а (Debian + `arm-linux-gnueabihf-gcc` + статические armhf-либы в `/root/xarm`, собираются в образе через `build_deps.sh`). Подробный разбор этой настройки — в [../docker/CASE.md](../docker/CASE.md) → раздел 9 (это реальный кейс легенды, не учебный). Вне периметра K8s-курса, но на этом же сервере: Gitea + два CI-раннера Gitea Actions обслуживают реальный проект (`maxim/Pluto-SDR`, кросс-сборка C-кода под ARM). 18-07-2026 раннер `gitea_runner` был починен из restart-loop (устаревшая регистрация act_runner — вылечено чистой перерегистрацией), и поднят второй раннер `gitea_runner_armhf` — кастомный образ cross-builder'а (Debian + `arm-linux-gnueabihf-gcc` + статические armhf-либы в `/root/xarm`, собираются в образе через `build_deps.sh`). Подробный разбор этой настройки — в [../docker/CASE.md](../docker/CASE.md) → раздел 9 (это реальный кейс легенды, не учебный).
**Перед каждой сессией K8s-курса и в конце неё — быстрая проверка, что CI-стек жив:** **Перед каждой сессией K8s-курса и в конце неё — быстрая проверка, что CI-стек жив:**