Saya memiliki gerombolan buruh pelabuhan kecil yang berjalan di kantor saya: satu 40-core (128GB RAM) dan dua 8-core (masing-masing 16GB RAM). Ketika saya menggunakan layanan di segerombolan, pekerjaan sedang berjalan, tetapi mereka tersebar secara merata tanpa memperhatikan kapasitas per-mesin.
Saya memulai kawanan pada manajer dengan:
docker swarm init
docker swarm update --task-history-limit 2
dan pada setiap node:
docker swarm join --token <token-string> <ipaddr:port>
Lalu saya memulai layanan dengan:
docker service create --detach \
--mount type=bind,src=/s/mypath,dst=/home/mypath \
--entrypoint "/home/mypath/myscript.sh arg1 arg2" \
--name "mystuff" -w /home/mypath myregistry.me.com:5433/myimage
Prosesnya bekerja secara individual. Saya belum menemukan indikasi bobot tugas atau afinitas berdasarkan kekuatan simpul.
Idealnya, saya ingin bisa mengatakan sesuatu seperti ini:
- bergabung dengan gerombolan, tidak lebih dari
n
tugas (agak naif) - bergabung dengan segerombolan, timbangkan kapasitas saya (cpu-) sebagai
0.2
(atau5
yang lebih besar) - mulai layanan ini, tetapkan tidak lebih dari satu tugas per inti yang tersedia
Saya mengatur sendiri keseluruhan skala layanan docker service scale
, tetapi itu tidak memberikan rincian. Apakah mungkin untuk mengatur layanan gerombolan buruh pelabuhan per node oleh sumber daya yang tersedia?
(Ini mungkin bahkan lebih insentif untuk beralih ke k8, yang saya asumsikan menyediakan fungsionalitas di sepanjang garis-garis ini. Ada rasa sakit yang tumbuh dengan pembelajaran dan transisi yang telah saya lakukan dengan kaku.)