From e990a21458a39b072d192cef91fb27dcb266bf5a Mon Sep 17 00:00:00 2001 From: Tot Maxim Date: Sat, 18 Jul 2026 23:44:30 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=A1=D0=9A=D0=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 10 ++++++++++ AI_GUIDELINES.md | 1 + stack/kubernetes/COMMANDS.md | 2 +- stack/kubernetes/PROGRESS.md | 16 ++++++++-------- stack/kubernetes/SERVER.md | 4 ++-- 5 files changed, 22 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 4c5f206..78c9530 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,11 @@ .claude/ + +# OS +.DS_Store +Thumbs.db + +# Editor temp files +*.swp +*.swo +*~ +.env diff --git a/AI_GUIDELINES.md b/AI_GUIDELINES.md index 091c78e..acddadd 100644 --- a/AI_GUIDELINES.md +++ b/AI_GUIDELINES.md @@ -41,6 +41,7 @@ - Все документы — на русском, в markdown. - Ответы на вопросы в `QUESTIONS.md` — от первого лица, разговорным языком, как кандидат реально бы ответил, с опорой на кейс. Не копировать формулировки из документации слово в слово. - Без канцелярита и не заученно — если ответ звучит как выученный наизусть параграф, это плохой ответ и его надо переписать. +- Все даты в тексте записываются в формате `dd-mm-yyyy` (например, `18-07-2026`), а не `yyyy-mm-dd` или другими способами. ## Куда идти diff --git a/stack/kubernetes/COMMANDS.md b/stack/kubernetes/COMMANDS.md index 7f3c5e7..d34402a 100644 --- a/stack/kubernetes/COMMANDS.md +++ b/stack/kubernetes/COMMANDS.md @@ -13,7 +13,7 @@ --- -## 2026-07-18 +## 18-07-2026 ### 0. SSH-обвязка (используется почти во всех командах ниже) diff --git a/stack/kubernetes/PROGRESS.md b/stack/kubernetes/PROGRESS.md index 53878c4..d79fab2 100644 --- a/stack/kubernetes/PROGRESS.md +++ b/stack/kubernetes/PROGRESS.md @@ -6,10 +6,10 @@ | Модуль | Тема | Статус | Дата | |---|---|---|---| -| 0 | Установка инструментов | ✅ Пройден | 2026-07-18 | -| 1 | Зачем вообще Kubernetes | ✅ Пройден (как смоук-тест наладки) | 2026-07-18 | -| 2 | Архитектура кластера | ✅ Пройден | 2026-07-18 | -| 3 | Pod и kubectl-база | ✅ Пройден | 2026-07-18 | +| 0 | Установка инструментов | ✅ Пройден | 18-07-2026 | +| 1 | Зачем вообще Kubernetes | ✅ Пройден (как смоук-тест наладки) | 18-07-2026 | +| 2 | Архитектура кластера | ✅ Пройден | 18-07-2026 | +| 3 | Pod и kubectl-база | ✅ Пройден | 18-07-2026 | | 4 | Deployment и ReplicaSet | ⬜ Не начат | | | 5 | Service и сеть | ⬜ Не начат | | | 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. @@ -41,7 +41,7 @@ Затыки: нет (модуль 0 и смоук-тест прошли гладко). -### 2026-07-18 — модуль 2: архитектура кластера +### 18-07-2026 — модуль 2: архитектура кластера Формат сессии новый: команды на сервере выполнял сам, мне присылались логи шаг за шагом — я вёл по шагам и разбирал вывод. @@ -56,7 +56,7 @@ Затыки: нет, модуль 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). diff --git a/stack/kubernetes/SERVER.md b/stack/kubernetes/SERVER.md index 6194260..633ea5d 100644 --- a/stack/kubernetes/SERVER.md +++ b/stack/kubernetes/SERVER.md @@ -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-инфраструктура-на-сервере--что-нельзя-ломать) ниже | | 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-инфраструктура на сервере — что нельзя ломать -Вне периметра 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-стек жив:**