بهروزرسانی کانتینرها
دستور update برای تغییر پیکربندی یک کانتینر در حال اجرا استفاده میشود، بدون اینکه نیاز به حذف و بازسازی آن باشد. این دستور برای مدیریت منابع پردازنده، حافظه، و سایر محدودیتهای سیستمی بسیار کاربردی است.
🧩 دستور کلی
k3 container update [options] <containerId>
containerId: شناسه کانتینری که میخواهید پیکربندی آن را تغییر دهید.
⚙️ گزینهها (Options)
| گزینه کوتاه | گزینه بلند | توضیح |
|---|---|---|
--blkio-weight <value> | وزن IO برای cgroup (عدد بین 10 تا 1000) | |
--cpu-period <value> | دوره CPU CFS برای محدودیت سخت (بر حسب میکروثانیه) | |
--cpu-quota <value> | سقف سخت مصرف CPU (بر حسب میکروثانیه) | |
--cpu-rt-period <value> | دوره زمانبندی RealTime برای CPU | |
--cpu-rt-runtime <value> | سقف RealTime مصرف CPU | |
--cpu-share <value> | سهم CPU تخصیصیافته (مقدار نسبی) | |
--cpuset-cpus <value> | اختصاص CPUهای خاص (مثلاً 0,1 یا 0-3) | |
--cpuset-mems <value> | اختصاص گرههای حافظه خاص | |
--kernel-memory <value> | محدودیت حافظه کرنل | |
--kernel-memory-tcp <v> | محدودیت حافظه کرنل برای بافرهای TCP | |
--l3-cache-schema <v> | طرح تخصیص کش L3 (Intel RDT/CAT) | |
--mem-bw-schema <v> | طرح تخصیص پهنایباند حافظه (Intel RDT/MBA) | |
--memory <value> | محدودیت کل حافظه | |
--memory-reservation <v> | رزرو حافظه (soft_limit) | |
--memory-swap <value> | مجموع مصرف حافظه و swap | |
--pids-limit <value> | حداکثر تعداد پردازشهای مجاز در کانتینر | |
-r | --resources <file> | مسیر فایل پیکربندی منابع (برای اعمال تنظیمات آماده) |
-h | --help | نمایش راهنمای کامل دستور |
📥 مثالهای کاربردی
✅ تغییر محدودیت حافظه کانتینر:
k3 container update --memory 512MB 08a79d22
✅ تغییر محدودیت پردازشهای مجاز:
k3 container update --pids-limit 100 08a79d22
✅ اختصاص CPU خاص به کانتینر:
k3 container update --cpuset-cpus 0-1 08a79d22
✅ بارگذاری تنظیمات منابع از فایل آماده:
k3 container update --resources /path/to/resources.json 08a79d22
✅ تغییر همزمان چند منبع:
k3 container update --memory 1GB --cpu-quota 50000 --cpuset-cpus 0-2 08a79d22
نکات مهم
این دستور فقط برای کانتینرهای موجود کاربرد دارد و باعث حذف یا راهاندازی مجدد کانتینر نمیشود.
برای اعمال تغییرات گسترده و چند گزینهای، میتوانید فایل resources آماده کنید و با گزینه --resources اعمال کنید.
مقدار حافظه میتواند با واحد MB (مگابایت) یا GB (گیگابایت) مشخص شود.
تست جامع
#!/bin/bash
echo "Starting k3 container update tests..."
echo "[1] Setting memory to 1GB, CPU quota to 50000 microseconds, and PID limit to 200 for container contID"
sudo k3 container update --memory 1GB --cpu-quota 50000 --pids-limit 200 contID
echo
echo "[2] Assigning CPUs 1 and 3 and memory node 0 to container contID"
sudo k3 container update --cpuset-cpus 1,3 --cpuset-mems 0 contID
echo
echo "[3] Setting RealTime CPU period to 1,000,000 and runtime to 950,000 microseconds"
sudo k3 container update --cpu-rt-period 1000000 --cpu-rt-runtime 950000 contID
echo
echo "[4] Setting IO weight to 500 for container contID"
sudo k3 container update --blkio-weight 500 contID
echo
echo "[5] Setting kernel memory TCP limit to 64MB for container contID"
sudo k3 container update --kernel-memory-tcp 64MB contID
echo
echo "[6] Loading resource settings from a JSON config file"
sudo k3 container update --resources /configs/resourceLimits.json contID
echo
echo "[7] Setting memory reservation (soft limit) to 256MB"
sudo k3 container update --memory-reservation 256MB contID
echo
echo "[8] Updating multiple resources at once: memory 2GB, CPU quota 80000, CPUs 0-2"
sudo k3 container update --memory 2GB --cpu-quota 80000 --cpuset-cpus 0-2 contID
echo
echo "All update tests completed."
🆘 دریافت راهنما
برای مشاهدهی راهنمای کامل این دستور در خط فرمان:
k3 container update -h