अद्यतन
स्पष्ट रूप से डॉकर स्वार में मेमोरी आरक्षण का प्रभाव बहुत अच्छी तरह से प्रलेखित नहीं है और वे एक बेहतरीन प्रयास के रूप में काम करते हैं। स्मृति आरक्षण ध्वज के प्रभाव को समझने के लिए, जाँच documentation:
जब स्मृति आरक्षण सेट किया गया है, डोकर स्मृति विवाद या कम स्मृति और बलों के कंटेनर का पता लगाता है एक आरक्षण सीमा को उनके उपभोग प्रतिबंधित करने के लिए।
...
मेमोरी आरक्षण एक नरम सीमा सुविधा है और की गारंटी नहीं देता सीमा पार कर नहीं किया जाएगा। इसके बजाए, यह सुविधा सुनिश्चित करने का प्रयास करती है, जब स्मृति के लिए अत्यधिक दिक्कत होती है, तो स्मृति संकेत/सेटअप पर स्मृति पर आवंटित की जाती है।
यह लागू करने के लिए कि कोई अन्य कंटेनर उसी नोड पर चलता है, आपको सेवा की बाधाओं को सेट करने की आवश्यकता है। आप क्या कर सकते हैं झुंड विशिष्ट लेबल में नोड्स देते हैं और इन लेबलों का उपयोग केवल उन नोड्स पर चलाने के लिए सेवाओं को शेड्यूल करने के लिए करते हैं जिनमें विशिष्ट लेबल होते हैं।
के रूप में वर्णित here, नोड लेबल आदेश का उपयोग कर एक नोड में जोड़ा जा सकता:
docker node update --label-add hello-world=yes <node-name>
फिर अपने ढेर फाइल के अंदर, आप केवल निर्दिष्ट लेबल होने नोड्स पर चलने के लिए कंटेनर सीमित कर सकते हैं, और अन्य कंटेनर hello-world=yes
के साथ लेबल नोड्स से बचने के लिए।
my-service:
image: hello-world
deploy:
placement:
constraints:
- node.labels.hello-world == yes
other-service:
...
deploy:
placement:
constraints:
- node.labels.hello-world == no
आप एक से अधिक नोड्स पर मेरी सेवा की प्रतिकृतियां शुरू करने के लिए, और अभी भी एक कंटेनर प्रत्येक नोड पर चल रहे हैं चाहते हैं, आप मेरी सेवा के वैश्विक मोड सेट, और नोड्स पर समान लेबल जोड़ने की जरूरत जहां आप एक कंटेनर चलाने के लिए चाहते हैं।
my-service:
image: hello-world
deploy:
mode: global
placement:
constraints:
- node.labels.hello-world == yes
ओल्ड उत्तर::
आप इस तरह के रूप में संसाधन आरक्षण निर्धारित कर सकते हैं:
वैश्विक मोड कि वास्तव में एक कंटेनर प्रत्येक नोड कि सेवा की कमी को पूरा करता चला जाएगा सुनिश्चित करता है
version: '3'
services:
redis:
image: redis:alpine
deploy:
resources:
reservations:
cpus: '1'
memory: 20M
मैंने 'आरक्षण 'जोड़ा, हालांकि मैं अभी भी एक ही नोड पर शुरू होने वाले अन्य कंटेनर प्राप्त करें जो कंटेनर के लिए प्रदर्शन समस्याओं का कारण बनता है, मैं रक्षा करने की कोशिश कर रहा हूं। –
@MuhammadRehanSeed अद्यतन उत्तर – yamenk
"सबसे अच्छा प्रयास" यही मुझे डर था। बाधाएं अच्छी हैं लेकिन अतिरिक्त काम की आवश्यकता है। –