| KUBERNETES(1) | راهنمای کاربر kubernetes | KUBERNETES(1) |
نام (NAME)
kubectl-apply - اعمال پیکربندی روی یک منبع از طریق نام فایل یا ورودی استاندارد (stdin)
خلاصه دستور (SYNOPSIS)
kubectl apply [OPTIONS]
توضیحات (DESCRIPTION)
اعمال یک پیکربندی روی یک منبع از طریق نام فایل یا ورودی استاندارد (stdin). نام منبع باید مشخص شود. اگر این منبع هنوز وجود نداشته باشد، ایجاد خواهد شد. برای استفاده از 'apply'، همیشه منبع را در ابتدا با 'apply' یا 'create --save-config' ایجاد کنید.
قالبهای JSON و YAML پذیرفته میشوند.
سلب مسئولیت آلفا: قابلیت --prune هنوز کامل نشده است. از آن استفاده نکنید مگر اینکه از وضعیت فعلی آن مطلع باشید. ببینید: https://issues.k8s.io/34274
گزینهها (OPTIONS)
--all=false انتخاب تمام منابع از نوع منبع مشخصشده در فضای نام.
--allow-missing-template-keys=true در صورت true بودن، از هرگونه خطای درون الگوها در زمان مفقود بودن یک فیلد یا کلید map در الگو چشمپوشی میشود. فقط برای قالبهای خروجی golang و jsonpath اعمال میگردد.
--cascade="background" باید یکی از موارد "background" ،"orphan" یا "foreground" باشد. راهبرد آبشاری حذف را برای وابستهها (مانند پادهای ایجادشده توسط ReplicationController) انتخاب میکند. پیشفرض: background.
--dry-run="none" باید یکی از موارد "none" ،"server" یا "client" باشد. اگر راهبرد client باشد، فقط شیئی که قرار است ارسال شود بدون ارسال چاپ میشود. اگر راهبرد server باشد، درخواست سمت سرور ارسال میشود بدون اینکه منبع در پایگاهداده ذخیره و پایدار گردد.
--field-manager="kubectl-client-side-apply" نام مدیری که برای ردیابی مالکیت فیلدها استفاده میشود.
-f, --filename=[] فایلهای حاوی پیکربندیها برای اعمال.
--force=false در صورت true بودن، منابع فوراً از API حذف میشوند و از فرآیند حذف مسالمتآمیز (graceful deletion) صرفنظر میگردد. توجه داشته باشید که حذف فوری برخی منابع ممکن است منجر به ناهماهنگی یا از دست رفتن دادهها شود و نیاز به تایید دارد.
--force-conflicts=false در صورت true بودن، اعمال سمت سرور (server-side apply) تغییرات را با وجود تداخلها تحمیل خواهد کرد.
--grace-period=-1 مدت زمان بر حسب ثانیه که به منبع داده میشود تا به صورت مسالمتآمیز خاتمه یابد. در صورت منفی بودن نادیده گرفته میشود. برای خاموش شدن فوری روی 1 تنظیم کنید. تنها زمانی که --force برابر true باشد میتواند روی 0 تنظیم شود (حذف اجباری).
-k, --kustomize="" پردازش دایرکتوری kustomization. این فلگ نمیتواند همراه با -f یا -R استفاده شود.
--openapi-patch=true در صورت true بودن، در صورت در دسترس بودن openapi و یافت شدن منبع در مشخصات openapi، از openapi برای محاسبه تفاوتها (diff) استفاده میشود. در غیر این صورت، به استفاده از انواع پیشساخته درونبرنامهای بازمیگردد.
-o, --output="" قالب خروجی. یکی از موارد: (json, yaml, kyaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file).
--overwrite=true حل خودکار تداخلهای بین پیکربندی تغییریافته و زنده با استفاده از مقادیر حاصل از پیکربندی تغییریافته
--prune=false حذف خودکار اشیاء منابعی که در پیکربندیها ظاهر نشدهاند و با یکی از دستورات apply یا create --save-config ایجاد شدهاند. باید همراه با -l یا --all استفاده شود.
--prune-allowlist=[] بازنویسی فهرست مجاز (allowlist) پیشفرض با مقادیر مشخصشده برای --prune
--record=false ثبت دستور فعلی kubectl در یادداشت (annotation) منبع. اگر روی false تنظیم شود، دستور ثبت نمیشود. اگر روی true تنظیم شود، دستور ثبت میشود. در صورت تنظیم نشدن، پیشفرض این است که مقدار annotation موجود را فقط در صورتی بهروزرسانی کند که از قبل وجود داشته باشد.
-R, --recursive=false پردازش بازگشتی دایرکتوری استفادهشده در -f, --filename. زمانی مفید است که بخواهید مانیفستهای مرتبط سازماندهیشده در یک دایرکتوری را مدیریت کنید.
-l, --selector="" انتخابگر (پرسوجوی برچسب) برای فیلتر کردن؛ از '=', '==', '!=', 'in', 'notin' پشتیبانی میکند (مانند -l key1=value1,key2=value2,key3 in (value3)). اشیاء منطبق باید تمام محدودیتهای برچسب مشخصشده را برآورده کنند.
--server-side=false در صورت true بودن، دستور apply به جای کلاینت روی سرور اجرا میشود.
--show-managed-fields=false در صورت true بودن، هنگام چاپ اشیاء در قالبهای JSON یا YAML فیلدهای managedFields حفظ میشوند.
--subresource="" در صورت مشخص شدن، دستور apply روی زیرمنبع (subresource) شیء درخواستشده عمل میکند. فقط هنگام استفاده از --server-side مجاز است.
--template="" رشته الگو یا مسیر فایل الگو برای استفاده زمانی که -o=go-template یا -o=go-template-file باشد. قالب الگو، الگوهای گولنگ است [http://golang.org/pkg/text/template/#pkg-overview].
--timeout=0s مدت زمان انتظار پیش از انصراف از یک عملیات حذف؛ مقدار صفر به معنای تعیین مدتزمان انتظار بر اساس اندازه شیء است
--validate="strict" باید یکی از موارد: strict (یا true)، warn، ignore (یا false) باشد. "true" یا "strict" از یک شِما برای اعتبارسنجی ورودی استفاده میکند و در صورت نامعتبر بودن درخواست را با خطا مواجه میسازد. اگر ServerSideFieldValidation روی api-server فعال باشد، اعتبارسنجی سمت سرور را انجام میدهد، در غیر این صورت به اعتبارسنجی کماطمینانتر سمت کلاینت بازمیگردد. "warn" در صورت فعال بودن اعتبارسنجی فیلد سمت سرور روی API server، درباره فیلدهای ناشناخته یا تکراری هشدار میدهد بدون اینکه درخواست را مسدود کند، و در غیر این صورت مانند "ignore" عمل میکند. "false" یا "ignore" هیچگونه اعتبارسنجی شما را انجام نمیدهد و هرگونه فیلد ناشناخته یا تکراری را بدون اعلام نادیده میگیرد.
--wait=false در صورت true بودن، پیش از بازگشت منتظر از بین رفتن منابع میماند. این گزینه برای نهاییسازها (finalizers) منتظر میماند.
گزینههای به ارث رسیده از دستورات والد (OPTIONS INHERITED FROM PARENT COMMANDS)
--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 در نظر گرفتن هشدارهای دریافتی از سرور به عنوان خطا و خروج با کد وضعیت غیر صفر
مثالها (EXAMPLES)
# اعمال پیکربندی موجود در pod.json روی یک پاد kubectl apply -f ./pod.json # اعمال منابع از یک دایرکتوری حاوی kustomization.yaml - مانند dir/kustomization.yaml kubectl apply -k dir/ # اعمال JSON ارسالشده به ورودی استاندارد (stdin) روی یک پاد cat pod.json | kubectl apply -f - # اعمال پیکربندی از تمامی فایلهایی که به '.json' ختم میشوند kubectl apply -f '*.json' # توجه: گزینه --prune هنوز در وضعیت آلفا است # اعمال پیکربندی در manifest.yaml که با برچسب app=nginx تطابق دارد و حذف تمام منابع دیگری که در فایل نیستند و با برچسب app=nginx مطابقت دارند kubectl apply --prune -f manifest.yaml -l app=nginx # اعمال پیکربندی در manifest.yaml و حذف تمامی پیکربندیهای نقشهبندیشده دیگر (ConfigMapها) که در فایل نیستند kubectl apply --prune -f manifest.yaml --all --prune-allowlist=core/v1/ConfigMap
همچنین ببینید (SEE ALSO)
kubectl(1), kubectl-apply-edit-last-applied(1), kubectl-apply-set-last-applied(1), kubectl-apply-view-last-applied(1),
تاریخچه (HISTORY)
ژانویه ۲۰۱۵، در ابتدا توسط Eric Paris (eparis at redhat dot com) بر پایه محتوای منبع kubernetes گردآوری شد، اما امید است که از آن زمان به بعد به طور خودکار تولید شده باشند!
| Jan 2015 | Eric Paris |