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ă?