کنٹرول سسٹمز اور خودکار نظام
آٹومید اسٹوپ کے لئے سسٹم کے ساتھ ڈرم ڈکر ڈرافٹ کرنے والے
Table of Contents
پیداوار کے لیے ڈکار کے ساتھ کام کرنے والے نظام
جدید انفنٹری تقاضوں کہ سانچہ:ابتدائی خدمات غیر متوقع ریبٹ، ہارڈ ویئر ناکامیوں یا پیکج تجدید کے بغیر زندہ بچتی رہیں۔ جب کہ ڈمر نے دوبارہ سے دوبارہ حاصل ہونے والی پالیسیوں () فراہم کی ہیں تو یہ پالیسیاں صرف جب تک ڈرک ڈایمون چلاتی ہیں. سسٹم - سسٹم کی طرف سے استعمال ہونے والی نظام، ڈیوٹا، سی او ایس اور زیادہ تر جدید لینکس کی تقسیم خود مختاری سے پہلے ہی ختم کر کے دوران میں ڈاکوکر کے نظام کو استعمال میں شامل کر کے لیے استعمال کر لیتی ہیں
- نیٹ ورک کے بعد سے اب تک دوبارہ شروع کی گئی کمانڈ اس ڈ.target, Ducker)
- [ فٹنوٹ : ۱ ]
- سکہ پر فنی کنٹرول کنٹرول (CPU, emor, I/O) میں نظام اکائی ہدایات استعمال کرتے ہوئے نظام شمسی کی حدود (Excid unit ہدایات) کا استعمال کرتے ہوئے
- خودکار وقفہ کے ساتھ ناکامی پر دوبارہ شروع کریں اور حدود کو توڑیں
- سویککین اور وقت کا آغاز
ہر ڈریک کے برتن کو سسٹمڈ سروس فائل میں حل کرنے سے آپریشنز شروع کرنے، روک تھام اور نگرانی کے لیے ایک متوازن ری ایکٹر حاصل کرتے ہیں،
تنہا ڈرم کے لئے سسٹم سروس بنانا
معیاری طریقہ کار میں ایک سروس یونٹ فائل لکھنا شامل ہے جو ڈریک کے حکموں کو چلانے اور اسے روکنے کے لئے دواکار کو دعوت دیتا ہے۔ ہم قدم آگے چل کر ایک بنیادی مثال سے شروع کرتے ہیں اور پھر عام پیداوار کے تقاضوں کو ڈھانپتے ہیں۔
ہدایت : خدمت کو پہلا درجہ دیں
فائل بنام . شروع نقطہ کے طور پر مندرجہ ذیل Template استعمال کریں:
[Unit]
Description=My Application Container
After=network-online.target docker.service
Wants=network-online.target
Requires=docker.service
[Service]
Restart=always
RestartSec=10
StartLimitBurst=3
ExecStartPre=-/usr/bin/docker kill myapp
ExecStartPre=-/usr/bin/docker rm myapp
ExecStart=/usr/bin/docker run --rm --name myapp \
-e DB_HOST=10.0.1.50 \
-e DB_PORT=5432 \
-v /data/myapp:/app/data \
-p 8080:8080 \
myregistry/myapp:latest
ExecStop=/usr/bin/docker stop -t 10 myapp
ExecStopPost=-/usr/bin/docker rm myapp
[Install]
WantedBy=multi-user.target
کلیدی ہدایات کی Explanation:
- – یقینی طور پر اس سانچے کا آغاز کرنے سے پہلے ڈرافٹس ڈمن چلا رہا ہے۔
- ] – اگر ڈکر روک دیا جائے تو یہ سروس بھی رک جاتی ہے۔
- – کسی بھی متروکہ برتن کو سابقہ دوڑ سے اوپر اوپر رکھیں ([حوالہ درکار] PFLT:7] Press کا مطلب یہاں غیر افسانوی ہے۔
- – استعمال کرنے کے لیے استعمال ہوتا ہے تاکہ وہ بلے باز کو خودبخود ختم کر دے۔
- – servesant sermet (10 سیکنڈ) کے ساتھ سانچہ کو روک لیتا ہے۔
- – برآمد شدہ کوڈ سے قطع نظر سانچہ:ابتدائی ترتیب:1]۔
- ] – دوبارہ شروع ہونے سے پہلے انتظار 10 سیکنڈ کا ہے۔
- – حدود کو دوبارہ حاصل کرنے کی کوشش 3 جلدوں (یعنی 10 سیکنڈ) کو دوبارہ شروع کرنے سے بچنے کے لیے.
ہدایت :
sudo systemctl daemon-reload
sudo systemctl enable myapp.service
sudo systemctl start myapp.service
نظمیں کہلاتی ہیں دوبارہ سروس فائل پڑھنے کے لیے ۔ ] سیمیکلن پیدا کرتی ہے لہذا سروس بوٹ پر شروع ہوتی ہے۔
معیاری نظاماُلعمل کے ساتھ خدمت کی نگرانی کرنا
جب سروس چلا رہی ہو تو آپ اسے بس کسی بھی دوسرے نظام کی خدمت کی طرح کنٹرول کرتے ہیں:
- کو روکنے کے لیے
- ]
- ] اسطاطس: ]۔
- لاگوس: (آئندہ زندہ لاگس)
اعلیٰ درجے کے فاضل
پیداوار کے انتظامات اکثر ایک سادہ سے سے زیادہ درکار ہوتے ہیں ۔
ماحولیاتی میدانوں کو عبور کرنا
سروس فائل میں ہارڈ کوڈ کے خفیہ یا وضع کاری کی سفارش نہیں کی گئی. بلکہ ایک علاحدہ ماحول فائل استعمال کریں:
[Service]
EnvironmentFile=-/etc/myapp/env.conf
ExecStart=/usr/bin/docker run --rm --name myapp \
--env-file /etc/myapp/env.conf \
myregistry/myapp:latest
راہ کے پہلے حصے میں آنے سے پہلے presse کا مطلب یہ ہے کہ سروس شروع ہو جائے گی چاہے فائل موجود نہ ہو (یعنی ابتدائی سیٹ کے دوران میں استعمال ہو)۔
بندرگاہ اور بندرگاہیں
ایسے ایسے آلات کے لیے جو ایک ہی میزبان پر رابطہ رکھنے کے لیے درکار ہوں، یا صارف-d صف بند نیٹ ورک استعمال کریں۔
ExecStart=/usr/bin/docker run --rm --name web \
--network=my-net \
-p 443:443 \
-v /etc/ssl/certs:/etc/ssl/certs:ro \
myregistry/web:latest
اگر کوئی دستوری نیٹ ورک استعمال کرتے ہوئے نیٹ ورک کا موجود ہو تو سروس شروع ہونے سے پہلے ہی آپ اسے بنانے کے لیے کمانڈ شامل کر سکتے ہیں:
ExecStartPre=/usr/bin/docker network create my-net
بین الاقوامی انحصار
جب ایک سانچہ شروع کرنے سے پہلے ایک اور تیار ہونے کی ضرورت ہوتی ہے (جیسے، ڈیٹا بیس کے لئے ویب ایپ)، سسٹم کمانڈ کمانڈ کمانڈ کر سکتا ہے۔
[Unit]
Description=Web App Container
After=network-online.target docker.service mydb.service
BindsTo=mydb.service
تعلقات ویب ایپ کی لائف سائیکل ٹو ڈیٹا بیسکٹیو – اگر ڈیٹابیس رک جائے تو ویب ایپ بھی بند ہو جاتی ہے۔
صحت کا جائزہ لینے اور پڑھنے کی اہمیت
ڈاکٹروں کی صحت کا جائزہ نظام سے لیا جا سکتا ہے تاکہ وہ غیرضروری خدمت کی دستیابی کو روکنے کے لئے کامیاب ہو سکیں. استعمال کریں اسکرپٹ کے ساتھ جو صحت کے اختتام کو حل کرتا ہے:
ExecStartPost=/usr/local/bin/wait-for-health.sh http://localhost:8080/health 30
اسکرپٹ کو صرف 0 نکال کر باہر کرنا چاہیے جب ڈبے صحت یاب ہو جائے تو اگر ناکام ہو جائے تو اس یونٹ کو اس طرح نشان لگائیں کہ جیسے ناکام رہے۔
نظام کے ذریعے حاصلکردہ مشورت
آپ اپنے وسائل کے بغیر گروپ کی سطح پر ایک سانچہ کو دبا سکتے ہیں اور آپ کو یاد کر سکتے ہیں. یہ خاص طور پر جب ایک ہی میزبان پر کئی ایک دوسرے کے ساتھ کئی بلے بازی کرتے ہیں:
[Service]
MemoryMax=512M
CPUQuota=50%
یہ ترتیبات ایک سخت حد پیدا کرتی ہیں جس میں ڈرم کی عدم موجودگی کو عمل میں لایا جاتا ہے۔
انتظامیہ : سسٹمڈ ویو. ڈکلر ڈرم :
ایک چھوٹی سی تعداد (مثلاً 2-5) کے لیے انفرادی نظام بندی فائل سادہ اور برقرار رکھنے کے قابل ہے. تاہم جب کوئی منصوبہ بہت سے انفصرام خدمات میں شامل ہوتا ہے تو ڈمر کرشن زیادہ آسانی سے کام لیتا ہے. آپ اب بھی ایک سروس یونٹ بنانے کے لیے نظام استعمال کر سکتے ہیں جو کہلاتا ہے-
[Unit]
Description=My Application Stack
After=network-online.target docker.service
Requires=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/opt/myapp
ExecStart=/usr/local/bin/docker-compose up -d
ExecStop=/usr/local/bin/docker-compose down
[Install]
WantedBy=multi-user.target
[ فٹنوٹ :37 ] [ فٹنوٹ :38 ] [ فٹنوٹ ]
آپ کو کس طریقے کا انتخاب کرنا چاہئے ؟
- instruction systems خدمات – ورثہ کے لیے بہترین درخواستوں کے لیے، سخت شروعاتی حکم کے ساتھ خدمات یا جب آپ کو فی کس وقت وسائل کی حدود درکار ہوتی ہیں۔
- Dicker sound with system – مائکروسافٹ کے اسٹاک کے لیے آئیڈیل جہاں پلگ انس کو اندرونی طور پر کنٹرول کیا جاتا ہے، اور آپ پورے گروپ کو منظم کرنے کے لئے ایک اکائی چاہتے ہیں۔
مسائل کا حل
اگر آپ کو کسی مسئلے کا سامنا ہو تو اُس کے بارے میں سوچیں ۔
سروس ” ڈکار دامون سے نہیں ملا “
عام طور پر اس کا مطلب ہے کہ ڈمر سوکٹ سے پہلے سروس شروع ہوتی ہے. آپ کی یونٹ میں اور . مزید چیک کریں کہ ڈرک ڈیمون قابلِ استعمال ہے: ۔
لوپ میں ایک نہایت اہم کام
اگر سانچہ خارجہ فوری طور پر اسے کے مطابق دوبارہ جاری رکھے گی . . . [g] [ یعنی 30 سیکنڈ ] اور کو ایک مصروف عمل روکنے کے لیے] چیک کریں.
خدمت پاکصاف نہیں رہتی
[ فٹنوٹ :48] [1 ] سانچہ:ابتدائی ترتیب سے سانچہ کو چھوڑ کر آگے بڑھ سکتا ہے ۔
ماحولیاتی کمزوریاں برداشت نہیں کرتیں
اگر آپ استعمال کریں تو فائل موجود ہے اور اسے جڑ سے پڑھا جاتا ہے. مسائل سے کنارہ کش کریں – نظاموں کو تبدیلی اقدار سے ہٹانے والی پٹیاں. خفیہ پلگ انس کے لیے نظام شناخت یا مخصوص خفیہ مینیجر کو استعمال کریں.
سیکورٹی معاملات پر غور کریں
نظام کے ذریعے ڈرنگ ڈریک کے ذریعے چند حفاظتی نکات کھڑے کیے گئے:
- ہمیشہ نظام بندی کو جاری رکھیں اگر ممکن ہو ( اور ہدایات، لیکن صارف کو بنیادوں والے موڈ میں ڈکار سوکٹ یا چلانے کی سہولت حاصل ہو۔
- استعمال کرنے سے گریز کریں بغیر ضرورت کے نظام کے
- پڑھنے کو صرف لنکس استعمال کریں ( جب بھی برتن میزبان کو لکھنے کی ضرورت نہیں پڑتی۔
- لیورجی سسٹم اور کے ذریعے فرار ہونے والے یونٹ کو سخت کرنے کے لیے.
[Service]
ProtectSystem=strict
ReadWritePaths=/var/log/myapp
PrivateTmp=true
User=myappuser
بیرونی وسائل
مزید پڑھنے کے لیے ان سرکاری حوالوں سے رجوع کریں:
کُنَّا
ڈرافٹ سسٹم کے ساتھ دیا گیا تھا نا کہ آپ کو ایک قابل قبول، آغاز شروع کر دے کہ آپ اپنے لینکس کے نظام کے باقی حصے سے مل کر شروع کر دیں،
ایک سادہ یونٹ فائل سے شروع کریں، اسے پوری طرح آزما لیں، پھر ماحول، صحت کے جائزہ اور حفاظتی سخت کرنے جیسے ترقیاتی طریقوں پر مبنی سطح پر۔ اس رسائی کے ساتھ ساتھ آپ کے ڈرافٹس ریوت، گراوٹز اور سنبھالنے والی تبدیلیاں بھی بغیر دستی مداخلت کے جاری رکھیں گے۔