conjurer: napraw drogę powrotną librarian/musician -> bot

Wyniki wyszukań (librarian) i eventy 'now playing' (musician) POST-owane do
bota ginęły, bo droga powrotna do bota była krucha:

* Service 'bot' był NodePort BEZ przypiętego nodePort -> k8s losował port z
  30000-32767 przy każdym (od)tworzeniu Service, a musician/betoniarka z
  Dockera adresują bota na sztywno http://192.168.1.73:32442. Rozjazd = każdy
  POST leci w zamknięty port. Przypinam nodePort: 32442.
* Librarian jest w tym samym klastrze co bot, a mimo to szedł przez nodePort
  węzła. Przełączam na DNS Service'u http://bot:5000 - odporne na
  przetasowania nodePortu (nodePort zostaje tylko dla zewnętrznych z Dockera).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit was merged in pull request #8.
This commit is contained in:
2026-08-02 17:04:57 +02:00
parent d84b982e0f
commit b7f226062c
2 changed files with 8 additions and 2 deletions
+4 -1
View File
@@ -53,4 +53,7 @@ metadata: { name: bot, namespace: conjurer }
spec: spec:
type: NodePort # radio/musician z Dockera muszą go dosięgnąć type: NodePort # radio/musician z Dockera muszą go dosięgnąć
selector: { app: bot } selector: { app: bot }
ports: [{ port: 5000, targetPort: 5000 }] # nodePort PRZYPIĘTY na sztywno. Bez tego k8s losuje port z 30000-32767 przy
# (od)tworzeniu Service, a musician/betoniarka z Dockera adresują bota po
# http://192.168.1.73:32442 na sztywno - rozjazd = wyniki/eventy giną w locie.
ports: [{ port: 5000, targetPort: 5000, nodePort: 32442 }]
+4 -1
View File
@@ -22,7 +22,10 @@ spec:
- { name: CONJURER_LIBRARIAN_MAXTHREADS, value: "40" } - { name: CONJURER_LIBRARIAN_MAXTHREADS, value: "40" }
- { name: CONJURER_CROSSREF_MAILTO, value: "mtuszowski@gmail.com" } - { name: CONJURER_CROSSREF_MAILTO, value: "mtuszowski@gmail.com" }
- { name: CONJURER_LIBRARIAN_CHUNK, value: "_chunk.txt" } - { name: CONJURER_LIBRARIAN_CHUNK, value: "_chunk.txt" }
- { name: CONJURER_MAIN_BOT, value: "http://192.168.1.73:32442" } # Librarian jest W TYM SAMYM klastrze/namespace co bot - gada z nim
# po DNS Service'u, nie przez nodePort węzła (ten zostaje tylko dla
# zewnętrznych musician/betoniarka z Dockera). Odporne na przetasowania.
- { name: CONJURER_MAIN_BOT, value: "http://bot:5000" }
- { name: CONJURER_LIBRARIAN_STATE_DIR, value: "/lib_temp_files" } - { name: CONJURER_LIBRARIAN_STATE_DIR, value: "/lib_temp_files" }