Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f571995ff9 |
@@ -29,49 +29,6 @@ Runbook: **[README-pliki.md](README-pliki.md)**. Ekran „Pliki" wymaga zapisu d
|
|||||||
udziału z bazami, więc znosi gwarancję z DAN-25, że baz nie da się zmienić przez
|
udziału z bazami, więc znosi gwarancję z DAN-25, że baz nie da się zmienić przez
|
||||||
NFS. Co zostaje z zabezpieczeń i jak to wdrożyć — w runbooku.
|
NFS. Co zostaje z zabezpieczeń i jak to wdrożyć — w runbooku.
|
||||||
|
|
||||||
## ⚠️ Wymóg węzłów: klient NFS
|
|
||||||
|
|
||||||
Wszystkie warstwy montują udziały z NAS-a, więc **każdy węzeł, na którym może
|
|
||||||
wylądować pod, musi mieć klienta NFS**. Bez niego kubelet nie zamontuje wolumenu:
|
|
||||||
|
|
||||||
```
|
|
||||||
mount: ... bad option; for several filesystems (e.g. nfs, cifs) you might need
|
|
||||||
a /sbin/mount.<type> helper program
|
|
||||||
```
|
|
||||||
|
|
||||||
Ten komunikat **nie oznacza problemu z udziałem ani z uprawnieniami** — serwer
|
|
||||||
w ogóle nie został zapytany. Jądro nie znalazło programu pomocniczego
|
|
||||||
`/sbin/mount.nfs`.
|
|
||||||
|
|
||||||
### Sprawdzenie
|
|
||||||
|
|
||||||
```bash
|
|
||||||
for N in 192.168.1.73 192.168.1.80 192.168.1.81; do
|
|
||||||
printf "%-15s " "$N"
|
|
||||||
ssh hammer@$N 'test -x /sbin/mount.nfs && echo MA-KLIENTA || echo BRAK-KLIENTA'
|
|
||||||
done
|
|
||||||
```
|
|
||||||
|
|
||||||
### Instalacja
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ssh hammer@<węzeł> 'sudo apt-get update && sudo apt-get install -y nfs-common'
|
|
||||||
```
|
|
||||||
|
|
||||||
> **Na WSZYSTKICH węzłach, nie tylko na tym, gdzie pod stoi teraz.** Braku na
|
|
||||||
> pozostałych nie widać, dopóki scheduler tam czegoś nie przeniesie — a wtedy
|
|
||||||
> awaria wygląda na nagłą, choć przyczyna leżała od dawna. Dokładnie tak wyszło
|
|
||||||
> za pierwszym razem: pody działały miesiącami na jednym węźle, aż zejście do
|
|
||||||
> zera replik przy innej naprawie przeplanowało je gdzie indziej.
|
|
||||||
|
|
||||||
### Skąd wiadomo, że to TO
|
|
||||||
|
|
||||||
| komunikat | co znaczy |
|
|
||||||
|---|---|
|
|
||||||
| `bad option ... mount.<type> helper program` | **brak `nfs-common` na węźle** — serwer niepytany |
|
|
||||||
| `access denied by server while mounting` | serwer odmawia: eksport nieprzeładowany, węzła nie ma na liście `hosts`, albo udział wyłączony |
|
|
||||||
| `Permission denied` przy zapisie | montowanie działa, brakuje praw — patrz `mapall_user` i właściciel katalogu |
|
|
||||||
|
|
||||||
## ⚠️ Sekret `astrololo-auth` — utwórz PRZED wdrożeniem
|
## ⚠️ Sekret `astrololo-auth` — utwórz PRZED wdrożeniem
|
||||||
|
|
||||||
Aplikacja wystawia treść **oryginalnych baz interpretacyjnych**, dlatego wymaga
|
Aplikacja wystawia treść **oryginalnych baz interpretacyjnych**, dlatego wymaga
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ resources:
|
|||||||
- ingress.yaml # wejście po https + przekierowanie z http
|
- ingress.yaml # wejście po https + przekierowanie z http
|
||||||
images:
|
images:
|
||||||
- name: gitea.czernobog.pl/gitea/astrololo-data
|
- name: gitea.czernobog.pl/gitea/astrololo-data
|
||||||
newTag: f0d07ee8
|
newTag: ee3c515d
|
||||||
- name: gitea.czernobog.pl/gitea/astrololo-logic
|
- name: gitea.czernobog.pl/gitea/astrololo-logic
|
||||||
newTag: f0d07ee8
|
newTag: ee3c515d
|
||||||
- name: gitea.czernobog.pl/gitea/astrololo-render
|
- name: gitea.czernobog.pl/gitea/astrololo-render
|
||||||
newTag: latest
|
newTag: latest
|
||||||
- name: gitea.czernobog.pl/gitea/astrololo-presentation
|
- name: gitea.czernobog.pl/gitea/astrololo-presentation
|
||||||
newTag: f0d07ee8
|
newTag: ee3c515d
|
||||||
|
|||||||
@@ -31,19 +31,6 @@ spec:
|
|||||||
# Where the librarian sends THIS bot's results/pongs back to (its own
|
# Where the librarian sends THIS bot's results/pongs back to (its own
|
||||||
# NodePort). Lets one librarian serve both bots - see deploy-bot.yaml.
|
# NodePort). Lets one librarian serve both bots - see deploy-bot.yaml.
|
||||||
- { name: CONJURER_SELF_CALLBACK, value: "http://192.168.1.73:32442" }
|
- { name: CONJURER_SELF_CALLBACK, value: "http://192.168.1.73:32442" }
|
||||||
# Self-hosted models (Ollama). No API key - the endpoint IS the
|
|
||||||
# configuration, and the backend stays unselectable while unset.
|
|
||||||
# Pick a model at runtime with: $gadaj_teraz ollama <model>
|
|
||||||
# ($modele_ai lists what the server actually has pulled).
|
|
||||||
- { name: CONJURER_OLLAMA_URL, value: "http://192.168.1.72:11434" }
|
|
||||||
# The server currently has exactly one model pulled (verified via
|
|
||||||
# /v1/models): gemma4:e2b. Without this the built-in default
|
|
||||||
# (llama3.1:8b) would be requested and every reply would fail.
|
|
||||||
- { name: CONJURER_OLLAMA_MODEL, value: "gemma4:e2b" }
|
|
||||||
# Self-hosted generation is far slower than a hosted API, especially
|
|
||||||
# the first request after the model is evicted from VRAM. Applies to
|
|
||||||
# every backend, so keep it only as high as you actually need.
|
|
||||||
- { name: CONJURER_AI_TIMEOUT_SECONDS, value: "240" }
|
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- { name: data, mountPath: /data }
|
- { name: data, mountPath: /data }
|
||||||
- { name: netrc, mountPath: /secrets, readOnly: true }
|
- { name: netrc, mountPath: /secrets, readOnly: true }
|
||||||
|
|||||||
@@ -51,19 +51,6 @@ spec:
|
|||||||
# query and answers results/pongs HERE - so it serves this bot AND the
|
# query and answers results/pongs HERE - so it serves this bot AND the
|
||||||
# test bot from one instance, no CONJURER_MAIN_BOT repointing needed.
|
# test bot from one instance, no CONJURER_MAIN_BOT repointing needed.
|
||||||
- { name: CONJURER_SELF_CALLBACK, value: "http://192.168.1.73:32443" }
|
- { name: CONJURER_SELF_CALLBACK, value: "http://192.168.1.73:32443" }
|
||||||
# Self-hosted models (Ollama). No API key - the endpoint IS the
|
|
||||||
# configuration, and the backend stays unselectable while unset.
|
|
||||||
# Pick a model at runtime with: $gadaj_teraz ollama <model>
|
|
||||||
# ($modele_ai lists what the server actually has pulled).
|
|
||||||
- { name: CONJURER_OLLAMA_URL, value: "http://192.168.1.72:11434" }
|
|
||||||
# The server currently has exactly one model pulled (verified via
|
|
||||||
# /v1/models): gemma4:e2b. Without this the built-in default
|
|
||||||
# (llama3.1:8b) would be requested and every reply would fail.
|
|
||||||
- { name: CONJURER_OLLAMA_MODEL, value: "gemma4:e2b" }
|
|
||||||
# Self-hosted generation is far slower than a hosted API, especially
|
|
||||||
# the first request after the model is evicted from VRAM. Applies to
|
|
||||||
# every backend, so keep it only as high as you actually need.
|
|
||||||
- { name: CONJURER_AI_TIMEOUT_SECONDS, value: "240" }
|
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- { name: data, mountPath: /data }
|
- { name: data, mountPath: /data }
|
||||||
- { name: netrc, mountPath: /secrets, readOnly: true }
|
- { name: netrc, mountPath: /secrets, readOnly: true }
|
||||||
|
|||||||
Reference in New Issue
Block a user