Puncte:0

Obțineți pods-uri kubernetes pentru a prelua o anumită identitate/rol/lucrure odată începută

drapel mx

Ceea ce vă prezint aici este o versiune simplificată a configurației mele și a sintaxa este greșită.

Am o listă de „agenți” de nivel înalt pe care vreau să îi implementez ca pod-uri pe un cluster kubernetes.

Unele noduri din acest cluster au hardware special, altele nu, dar toate pod-urile ar trebui să folosească același container.

Ar putea arăta ca (din nou: sintaxa este greșită):

agent1 wlan
...
agent8 wlan
agent9 wlan rs232.1
agent10 wlan rs232.2

Am configurat o implementare care arată aproximativ așa (sintaxa este greșită):

implementare (noduri standard)
  replici: 8
---
implementare (rs232, terminal 1)
  replici: 1
  nodeSelector:
    rs232=1
  env:
    rs232=1 (deoarece nodeSelector nu poate fi trecut bine)
---
implementare (rs232, terminal 2)
  replici: 1
  nodeSelector:
    rs232=2
  env:
    rs232=2

Aș dori ca fiecare dintre acești agenți să pornească și să preia o singură identitate din listă, având, desigur, hardware-ul potrivit.

Așa că un pod ar vorbi cu un serviciu de distribuție de roluri ca acesta:

pod - Bună, sunt pod/container-xyz și am env/label/annotation rs232=2
service - Bună, atunci acum ești agent10
pod - OK, voi face treaba agentului 10 atunci
(serviciu - cool, voi adăuga agent10 ca alias pentru dvs. în cluster DNS) <- aceasta va fi următoarea mea întrebare

Același lucru pentru agenții nu cu hardware special: serviciul le oferă câte un rol de agent fiecare.

Am încercat ceva cu StatefulSet, dar asta nu se potrivește (din cauza diferitelor nodeSelector și sunt foarte lente la pornire).

Am început să mă gândesc la un pod de server dedicat auto-implementat care să-mi păstreze lista de agenți și să-i închirieze la hardware-ul potrivit (un pic ca serverul dhcp), dar sunt destul de sigur că nu sunt singurul care are această problemă și trebuie să existe o soluție acolo. M-am uitat repede la Zookeeper, dar nu cred că este pentru mine. Probabil că nu găsesc soluția pentru că vocabularul meu nu este cel corect, cred.

Are cineva o idee bună? Merg în direcția bună?

kkopczak avatar
drapel ng
Ce versiune de Kubernetes ați folosit și cum ați configurat clusterul? Ați folosit instalație bare metal sau vreun furnizor de cloud?
FLBzh avatar
drapel mx
Bună @kkopczak, mulțumesc pentru întrebarea ta, dar cum este relevantă pentru problema mea?
kkopczak avatar
drapel ng
Astfel de informații vă vor ajuta să vă reproduceți problema.
Puncte:1
drapel us

Probabil că aș implementa asta cu un MetaController CompositeController și o resursă personalizată care definește agenții. Codarea este însă necesară. Pare mult mai complicat decât este.

Practic, primiți în mod regulat cârlige de sincronizare prin HTTP care descriu starea curentă a resurselor și răspundeți cu JSON pentru a le crea/distruge.

FLBzh avatar
drapel mx
Da ! Mulțumesc mult. Există chiar și un exemplu care este o bază bună pentru a implementa ceea ce avem nevoie: https://github.com/metacontroller/metacontroller/tree/master/examples/indexedjob

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.