| KUBERNETES(1) | راهنمای کاربر kubernetes | KUBERNETES(1) |
نام (NAME)
kubectl-debug - ایجاد نشستهای عیبیابی برای رفع اشکال بارهای کاری و نودها
خلاصه دستور (SYNOPSIS)
kubectl debug [OPTIONS]
توضیحات (DESCRIPTION)
اشکالزدایی منابع کلاستر با استفاده از کانتینرهای اشکالزدایی تعاملی.
دستور 'debug' عملیات خودکارسازی را برای وظایف رایج اشکالزدایی اشیاء کلاستر که بر اساس منبع و نام شناسایی میشوند، فراهم میکند. در صورتی که هیچ منبعی مشخص نشود، به صورت پیشفرض از پادها استفاده خواهد شد.
اقدام انجامشده توسط 'debug' بسته به منبع مشخصشده متفاوت است. اقدامات پشتیبانیشده عبارتند از:
- بار کاری (Workload): ایجاد یک کپی از یک پاد موجود با تغییر برخی ویژگیها، به عنوان مثال تغییر برچسب ایمیج به یک نسخه جدید.
- بار کاری (Workload): افزودن یک کانتینر موقت (ephemeral container) به پادی که از قبل در حال اجرا است، به عنوان مثال برای اضافه کردن ابزارهای اشکالزدایی بدون راهاندازی مجدد پاد.
- نود (Node): ایجاد یک پاد جدید که در فضاهای نام میزبان نود (host namespaces) اجرا میشود و میتواند به فایلسیستم نود دسترسی داشته باشد.
نکته: هنگامی که یک کاربر غیر root برای کل پاد هدف پیکربندی شده باشد، برخی از قابلیتهای اعطاشده توسط پروفایل debug ممکن است کار نکنند.
گزینهها (OPTIONS)
--arguments-only=false در صورت تعیین، همه موارد پس از -- به جای دستور (Command)، به عنوان آرگومانها (Args) به کانتینر جدید ارسال میشوند.
--attach=false در صورت true بودن، منتظر شروع به کار کانتینر میماند و سپس متصل میشود، درست مانند اینکه '... kubectl attach' فراخوانی شده باشد. پیشفرض false است، مگر اینکه '-i/--stdin' تنظیم شده باشد که در آن صورت پیشفرض true خواهد بود.
-c, --container="" نام کانتینر برای استفاده به عنوان کانتینر اشکالزدایی.
--copy-to="" ایجاد یک کپی از پاد هدف با این نام.
--custom="" مسیر یک فایل JSON یا YAML شامل مشخصات جزئی کانتینر برای سفارشیسازی پروفایلهای داخلی عیبیابی.
--env=[] متغیرهای محیطی برای تنظیم در کانتینر.
-f, --filename=[] شناسایی منبع برای اشکالزدایی
--image="" ایمیج کانتینر برای استفاده به عنوان کانتینر اشکالزدایی.
--image-pull-policy="" سیاست دریافت ایمیج (image pull policy) برای کانتینر. اگر خالی بماند، این مقدار توسط کلاینت مشخص نمیشود و توسط سرور به صورت پیشفرض تعیین میگردد.
--keep-annotations=false در صورت true بودن، یادداشتهای (annotations) پاد اصلی حفظ میشوند. (این فلگ تنها در صورت استفاده با '--copy-to' کار میکند)
--keep-init-containers=true اجرای کانتینرهای راهاندازی (init containers) برای پاد. پیشفرض true است. (این فلگ تنها در صورت استفاده با '--copy-to' کار میکند)
--keep-labels=false در صورت true بودن، برچسبهای (labels) پاد اصلی حفظ میشوند. (این فلگ تنها در صورت استفاده با '--copy-to' کار میکند)
--keep-liveness=false در صورت true بودن، پروبهای زندهبودن (liveness probes) پاد اصلی حفظ میشوند. (این فلگ تنها در صورت استفاده با '--copy-to' کار میکند)
--keep-readiness=false در صورت true بودن، پروبهای آمادهبهکاری (readiness probes) پاد اصلی حفظ میشوند. (این فلگ تنها در صورت استفاده با '--copy-to' کار میکند)
--keep-startup=false در صورت true بودن، پروبهای راهاندازی (startup probes) پاد اصلی حفظ میشوند. (این فلگ تنها در صورت استفاده با '--copy-to' کار میکند)
--profile="general" گزینهها عبارتند از "general"، "baseline"، "restricted"، "netadmin" یا "sysadmin". مقدار پیشفرض "general" است
-q, --quiet=false در صورت true بودن، پیامهای اطلاعاتی نادیده گرفته میشوند.
--replace=false هنگام استفاده با '--copy-to'، پاد اصلی حذف میشود.
--same-node=false هنگام استفاده با '--copy-to'، زمانبندی کپی پاد هدف بر روی همان نود انجام میشود.
--set-image=[] هنگام استفاده با '--copy-to'، فهرستی از جفتهای name=image برای تغییر ایمیج کانتینرها، مشابه با نحوه عملکرد 'kubectl set image'.
--share-processes=true هنگام استفاده با '--copy-to'، اشتراکگذاری فضای نام فرآیند (process namespace) در نسخه کپی فعال میشود.
-i, --stdin=false ورودی استاندارد (stdin) روی کانتینر(های) درون پاد باز نگه داشته میشود، حتی اگر چیزی متصل نباشد.
--target="" هنگام استفاده از کانتینر موقت (ephemeral container)، فرآیندها در نام این کانتینر هدف قرار میگیرند.
-t, --tty=false تخصیص یک TTY برای کانتینر اشکالزدایی.
گزینههای به ارث رسیده از دستورات والد (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 برای استفاده در تنظیمات ترجیحی. این قابلیت میتواند با export کردن ویژگی KUBECTL_KUBERC=false یا خاموش کردن ویژگی با KUBERC=off غیرفعال شود.
--match-server-version=false الزام به تطابق نسخه سرور با نسخه کلاینت
-n, --namespace="" در صورت وجود، دامنه فضای نام (namespace) برای این درخواست CLI
--password="" رمز عبور برای احراز هویت پایه (basic authentication) در سرور API
--profile-output="profile.pprof" نام فایلی که پروفایل در آن ذخیره میشود
--request-timeout="0" مدت زمان انتظار پیش از انصراف از یک درخواست به سرور. مقادیر غیر صفر باید شامل واحد زمانی متناظر باشند (مانند 1s، 2m، 3h). مقدار صفر یعنی درخواستها هرگز منقضی نشوند (بدون وقفه زمانی).
-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 در نظر گرفتن هشدارهای دریافتی از سرور به عنوان خطا و خروج با کد وضعیت غیر صفر
مثال (EXAMPLE)
# Create an interactive debugging session in pod mypod and immediately attach to it. kubectl debug mypod -it --image=busybox # Create an interactive debugging session for the pod in the file pod.yaml and immediately attach to it. # (requires the EphemeralContainers feature to be enabled in the cluster) kubectl debug -f pod.yaml -it --image=busybox # Create a debug container named debugger using a custom automated debugging image. kubectl debug --image=myproj/debug-tools -c debugger mypod # Create a copy of mypod adding a debug container and attach to it kubectl debug mypod -it --image=busybox --copy-to=my-debugger # Create a copy of mypod changing the command of mycontainer kubectl debug mypod -it --copy-to=my-debugger --container=mycontainer -- sh # Create a copy of mypod changing all container images to busybox kubectl debug mypod --copy-to=my-debugger --set-image=*=busybox # Create a copy of mypod adding a debug container and changing container images kubectl debug mypod -it --copy-to=my-debugger --image=debian --set-image=app=app:debug,sidecar=sidecar:debug # Create an interactive debugging session on a node and immediately attach to it. # The container will run in the host namespaces and the host's filesystem will be mounted at /host kubectl debug node/mynode -it --image=busybox
همچنین ببینید (SEE ALSO)
تاریخچه (HISTORY)
ژانویه ۲۰۱۵، در ابتدا توسط Eric Paris (eparis at redhat dot com) بر پایه محتوای منبع kubernetes گردآوری شد، اما امید است که از آن زمان به بعد به طور خودکار تولید شده باشند!
| Jan 2015 | Eric Paris |