KUBERNETES(1) راهنمای کاربر kubernetes KUBERNETES(1)

kubectl-delete - حذف منابع از طریق نام فایل، ورودی استاندارد (stdin)، منابع و نام‌ها، یا منابع و انتخاب‌گر برچسب

kubectl delete [OPTIONS]

حذف منابع از طریق نام فایل، ورودی استاندارد (stdin)، منابع و نام‌ها، یا منابع و انتخاب‌گر برچسب.

قالب‌های JSON و YAML پذیرفته می‌شوند. تنها یک نوع از آرگومان‌ها را می‌توان مشخص کرد: نام فایل‌ها، منابع و نام‌ها، یا منابع و انتخاب‌گر برچسب.

برخی از منابع، مانند پادها (pods)، از حذف ملایم (graceful deletion) پشتیبانی می‌کنند. این منابع یک دوره زمانی پیش‌فرض را قبل از خاتمه اجباری مشخص می‌کنند (مهلت یا grace period)، اما شما می‌توانید با فلگ --grace-period این مقدار را بازنویسی کنید، یا با ارسال --now مقدار grace-period را روی ۱ تنظیم نمایید. از آنجا که این منابع اغلب نمایانگر موجودیت‌هایی در کلاستر هستند، ممکن است حذف آن‌ها بلافاصله تایید نشود. اگر نودی که میزبان پاد است از کار افتاده باشد یا نتواند به API سرور دسترسی پیدا کند، خاتمه ممکن است بسیار طولانی‌تر از دوره مهلت به طول بینجامد. برای حذف اجباری یک منبع، باید فلگ --force را مشخص کنید. توجه: تنها زیرمجموعه‌ای از منابع از حذف ملایم پشتیبانی می‌کنند. در صورت عدم پشتیبانی، فلگ --grace-period نادیده گرفته می‌شود.

مهم: حذف اجباری (force delete) پادها منتظر تایید خاتمه یافتن فرآیندهای پاد نمی‌ماند، که این امر می‌تواند فرآیندها را تا زمانی که نود حذف را شناسایی کرده و حذف ملایم را کامل کند در حال اجرا باقی بگذارد. اگر فرآیندهای شما از حافظه ذخیره‌سازی مشترک استفاده می‌کنند یا با یک API دوردست ارتباط دارند و برای شناسایی خود به نام پاد متکی هستند، حذف اجباری آن پادها ممکن است منجر به اجرای همزمان چند فرآیند روی ماشین‌های مختلف با شناسه یکسان شود که می‌تواند باعث خراب شدن داده‌ها یا ناسازگاری گردد. تنها زمانی پادها را با حذف اجباری پاک کنید که مطمئن باشید پاد خاتمه یافته است، یا برنامه شما می‌تواند اجرای همزمان چند نسخه از یک پاد را تحمل کند. همچنین اگر پادها را به صورت اجباری حذف کنید، زمان‌بند (scheduler) ممکن است پادهای جدید را پیش از آنکه نود منابع را آزاد کند بر روی آن نودها مستقر کند که باعث تخلیه و اخراج فوری (eviction) آن پادها خواهد شد.

توجه داشته باشید که دستور delete بررسی‌های نسخه منبع (resource version) را انجام نمی‌دهد؛ بنابراین اگر شخصی دقیقاً در زمانی که شما درخواست حذف را ارسال می‌کنید یک به‌روزرسانی برای منبع ارسال کند، به‌روزرسانی او همراه با بقیه منبع از بین خواهد رفت.

پس از حذف یک CustomResourceDefinition، باطل‌سازی کش کشف (discovery cache) ممکن است تا ۶ ساعت طول بکشد. اگر نمی‌خواهید صبر کنید، می‌توانید دستور "kubectl api-resources" را برای بازنشانی کش کشف اجرا نمایید.

--all=false حذف تمام منابع از انواع منابع مشخص‌شده در namespace.

-A, --all-namespaces=false در صورت وجود، شیء یا اشیاء درخواستی را در تمام namespaceها فهرست می‌کند. namespace موجود در کانتکست فعلی نادیده گرفته می‌شود، حتی اگر با --namespace مشخص شده باشد.

--cascade="background" باید یکی از مقادیر "background"، "orphan" یا "foreground" باشد. راهبرد آبشاری حذف را برای وابسته‌ها (مانند پادهای ایجادشده توسط ReplicationController) انتخاب می‌کند. پیش‌فرض بر روی background است.

--dry-run="none" باید یکی از مقادیر "none"، "server" یا "client" باشد. در راهبرد client، تنها شیئی که ارسال می‌شد چاپ می‌شود، بدون آنکه ارسال گردد. در راهبرد server، درخواست سمت سرور ارسال می‌شود بدون آنکه منبع پایدار و ذخیره شود.

--field-selector="" انتخاب‌گر (پرس‌وجوی فیلد) برای فیلتر کردن، از '='، '==' و '!=' پشتیبانی می‌کند (مانند ‎--field-selector key1=value1,key2=value2‎). سرور تنها از تعداد محدودی پرس‌وجوی فیلد به ازای هر نوع پشتیبانی می‌کند.

-f, --filename=[] فایل حاوی منبع مورد نظر برای حذف.

--force=false در صورت true بودن، بلافاصله منابع را از API حذف کرده و از حذف ملایم صرف‌نظر می‌کند. توجه داشته باشید که حذف فوری برخی منابع ممکن است منجر به ناسازگاری یا از دست رفتن داده‌ها شود و نیازمند تایید است.

--grace-period=-1 مدت زمان به ثانیه که به منبع داده می‌شود تا به صورت ملایم خاتمه یابد. در صورت منفی بودن نادیده گرفته می‌شود. برای خاموش شدن فوری روی ۱ تنظیم کنید. تنها زمانی می‌تواند روی ۰ تنظیم شود که --force برابر با true باشد (حذف اجباری).

--ignore-not-found=false در نظر گرفتن وضعیت "resource not found" (منبع یافت نشد) به عنوان حذف موفقیت‌آمیز. هنگام مشخص شدن --all به طور پیش‌فرض برابر با "true" است.

-i, --interactive=false در صورت true بودن، منبع را تنها پس از تایید کاربر حذف می‌کند.

-k, --kustomize="" پردازش دایرکتوری kustomization. این فلگ نمی‌تواند همراه با -f یا -R استفاده شود.

--now=false در صورت true بودن، سیگنال خاموش شدن فوری به منابع ارسال می‌شود (مشابه با ‎--grace-period=1‎).

-o, --output="" حالت خروجی. از ‎"-o name";‎ برای خروجی کوتاه‌تر (resource/name) استفاده کنید.

--raw="" شناسه خام URI برای ارسال درخواست DELETE به سرور. از پروتکل انتقال مشخص‌شده در فایل kubeconfig استفاده می‌کند.

-R, --recursive=false پردازش بازگشتی دایرکتوری استفاده‌شده در -f، --filename. زمانی کاربرد دارد که می‌خواهید مانیفست‌های مرتبط سازمان‌یافته در یک دایرکتوری یکسان را مدیریت کنید.

-l, --selector="" انتخاب‌گر (پرس‌وجوی برچسب) برای فیلتر کردن، از '='، '=='، '!='، 'in' و 'notin' پشتیبانی می‌کند (مانند ‎-l key1=value1,key2=value2,key3 in (value3)‎). اشیاء منطبق باید تمام قیود برچسب مشخص‌شده را برآورده کنند.

--timeout=0s مدت زمان انتظار پیش از انصراف از حذف؛ مقدار صفر به معنای تعیین مدت‌زمان انقضا بر اساس اندازه شیء است.

--wait=true در صورت true بودن، پیش از بازگشت منتظر از بین رفتن منابع می‌ماند. این گزینه منتظر نهایی‌سازها (finalizers) می‌ماند.

--as="" نام کاربری برای جعل هویت (impersonate) در این عملیات. کاربر می‌تواند یک کاربر معمولی یا یک حساب خدمت (service account) در یک namespace باشد.

--as-group=[] گروه برای جعل هویت در این عملیات؛ این فلگ می‌تواند برای تعیین چندین گروه تکرار شود.

--as-uid="" شناسه UID برای جعل هویت در این عملیات.

--as-user-extra=[] اطلاعات اضافی کاربر برای جعل هویت در این عملیات؛ این فلگ می‌تواند برای مشخص کردن چندین مقدار برای یک کلید یکسان تکرار شود.

--cache-dir="/home/username/.kube/cache" دایرکتوری پیش‌فرض کش

--certificate-authority="" مسیر فایل گواهی برای مرجع صدور گواهی (certificate authority)

--client-certificate="" مسیر فایل گواهی کلاینت برای TLS

--client-key="" مسیر فایل کلید کلاینت برای TLS

--cluster="" نام کلاستر kubeconfig برای استفاده

--context="" نام کانتکست kubeconfig برای استفاده

--disable-compression=false در صورت true بودن، فشرده‌سازی پاسخ‌ها برای تمام درخواست‌ها به سرور غیرفعال می‌شود

--insecure-skip-tls-verify=false در صورت true بودن، اعتبار گواهی سرور بررسی نخواهد شد. این کار اتصالات HTTPS شما را ناامن می‌کند

--kubeconfig="" مسیر فایل kubeconfig برای استفاده در درخواست‌های CLI.

--kuberc="" مسیر فایل kuberc برای استفاده در ترجیحات (preferences). این قابلیت می‌تواند با export کردن feature gate به صورت KUBECTL_KUBERC=false یا خاموش کردن ویژگی با KUBERC=off غیرفعال شود.

--match-server-version=false الزام به تطابق نسخه سرور با نسخه کلاینت

-n, --namespace="" در صورت وجود، حوزه namespace برای این درخواست CLI

--password="" رمز عبور برای احراز هویت پایه (basic authentication) در سرور API

--profile="none" نام پروفایل برای ثبت. یکی از (none|cpu|heap|goroutine|threadcreate|block|mutex|trace)

--profile-output="profile.pprof" نام فایلی که پروفایل در آن ذخیره می‌شود

--request-timeout="0" مدت زمان انتظار پیش از انصراف از یک درخواست به سرور. مقادیر غیر صفر باید شامل واحد زمانی متناظر باشند (مانند 1s، 2m، 3h). مقدار صفر یعنی درخواست‌ها هرگز منقضی نشوند (بدون timeout).

-s, --server="" آدرس و پورت سرور Kubernetes API

--tls-server-name="" نام سرور برای اعتبارسنجی گواهی سرور. در صورت عدم ارائه، از hostname استفاده‌شده برای برقراری ارتباط با سرور استفاده می‌شود

--token="" توکن Bearer برای احراز هویت در سرور API

--user="" نام کاربر kubeconfig برای استفاده

--username="" نام کاربری برای احراز هویت پایه در سرور API

--version=false گزینه --version یا --version=raw اطلاعات نسخه را چاپ کرده و خارج می‌شود؛ --version=vX.Y.Z... نسخه گزارش‌شده را تنظیم می‌کند

--warnings-as-errors=false در نظر گرفتن هشدارهای دریافتی از سرور به عنوان خطا و خروج با کد وضعیت غیر صفر

# حذف یک پاد با استفاده از نوع و نام مشخص‌شده در pod.json
kubectl delete -f ./pod.json
# حذف منابع از دایرکتوری حاوی kustomization.yaml - مانند dir/kustomization.yaml
kubectl delete -k dir
# حذف منابع از تمام فایل‌هایی که به ‎'.json'‎ ختم می‌شوند
kubectl delete -f '*.json'
# حذف یک پاد بر اساس نوع و نام موجود در JSON ارسال‌شده به ورودی استاندارد (stdin)
cat pod.json | kubectl delete -f -
# حذف پادها و سرویس‌ها با نام‌های یکسان "baz" و "foo"
kubectl delete pod,service baz foo
# حذف پادها و سرویس‌های دارای برچسب name=myLabel
kubectl delete pods,services -l name=myLabel
# حذف یک پاد با کمترین تاخیر زمانی
kubectl delete pod foo --now
# حذف اجباری یک پاد روی یک نود از کار افتاده (dead node)
kubectl delete pod foo --force
# حذف تمام پادها
kubectl delete pods --all
# حذف تمام پادها تنها در صورت تایید کاربر
kubectl delete pods --all --interactive

kubectl(1)

ژانویه ۲۰۱۵، در ابتدا توسط Eric Paris (eparis at redhat dot com) بر پایه محتوای منبع kubernetes گردآوری شد، اما امید است که از آن زمان به بعد به طور خودکار تولید شده باشند!

Jan 2015 Eric Paris