Naprawa: osobny udział na stan prezentacji (CreateContainerConfigError) #17
Reference in New Issue
Block a user
Delete Branch "fix/stan-prezentacji-nfs"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Co się stało
Mój błąd, nie zagadka. Udział z bazami jest wyeksportowany
ro: truezroot_squash— ustawiłem to runbookiem DAN-25 i sam napisałem tam ostrzeżenie, że po tej zmianie „nikt nie wgra". Dokładając wolumen na konta zmieniłemreadOnlyprzy montowaniu w podzie i uznałem sprawę za załatwioną, nie sprawdzając eksportu po stronie serwera.Przyczyna była podwójna i za każdym razem ta sama:
root_squashmapuje roota nanobody, więc aplikacja i tak nie zapisałaby tam pliku kontRozwiązanie — bez ruszania DAN-25
Osobny, mały udział
/mnt/Tank1/astrololo-state:ro: false)mapall_userna nieuprzywilejowanego użytkownika — bezpieczniejsze niżno_root_squash, bo nie oddaje rootaUdział z bazami zostaje tylko do odczytu. Przy okazji znika
subPath, czyli znika potrzeba, żeby kubelet cokolwiek zakładał — katalog istnieje, bo jest korzeniem udziału.Co musisz zrobić
Runbook:
README-stan-prezentacji.md. Trzy kroki, komendymidcltw konwencji DAN-25.Krok 2 to test zapisu z węzła, do wykonania przed wdrożeniem — dokładnie ten, którego zabrakło za pierwszym razem:
⚠️ To samo czeka DAN-27
Zarządzanie plikami baz (wgrywanie, archiwizacja, kasowanie) wymaga zapisu do udziału z bazami — a ten jest
ro. PRfeat/pliki-zapisnie zadziała w obecnej postaci: zdjąłem tamreadOnlyz montowania, ale eksport nadal jest read-only.Celowo tego tu nie rozwiązuję, bo to osobna decyzja: oznacza rezygnację z gwarancji DAN-25, że baz nie da się zmienić przez NFS. Napiszę o tym osobno.
🤖 Generated with Claude Code
Pod presentation nie wstawał: CreateContainerConfigError, „failed to create subPath directory for volumeMount state". MÓJ BŁĄD, NIE ZAGADKA. Udział z bazami jest wyeksportowany `ro: true` z `root_squash` — ustawiłem to runbookiem DAN-25 i sam tam napisałem ostrzeżenie, że po tej zmianie nikt nic nie wgra. Dokładając wolumen na konta zmieniłem `readOnly` przy MONTOWANIU w podzie i uznałem sprawę za załatwioną, nie sprawdzając eksportu po stronie serwera. Przyczyna była zresztą podwójna i za każdym razem ta sama: 1. kubelet nie mógł utworzyć podkatalogu, bo udział jest tylko do odczytu, 2. a gdyby nawet mógł — kontenery działają jako root, a root_squash mapuje roota na nobody, więc aplikacja i tak nie zapisałaby tam pliku kont. ROZWIĄZANIE BEZ RUSZANIA DAN-25: osobny, mały udział /mnt/Tank1/astrololo-state, zapisywalny, zawężony do tych samych trzech węzłów, z mapall_user na nieuprzywilejowanego użytkownika (bezpieczniejsze niż no_root_squash, bo nie oddaje roota). Udział z bazami ZOSTAJE tylko do odczytu. Przy okazji znika subPath, czyli znika potrzeba, żeby kubelet cokolwiek zakładał — katalog istnieje, bo jest korzeniem udziału. Runbook README-stan-prezentacji.md zawiera test zapisu Z WĘZŁA do wykonania PRZED wdrożeniem — dokładnie ten, którego zabrakło za pierwszym razem. UWAGA: DAN-27 (zarządzanie plikami baz) uderzy w tę samą ścianę, bo wymaga zapisu do udziału z BAZAMI. Ten commit tego nie rozwiązuje i celowo nie rusza DAN-25 — to osobna decyzja, opisana na końcu runbooka. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>