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

kubectl-exec - اجرای یک دستور در یک کانتینر

kubectl exec [OPTIONS]

اجرای یک دستور در یک کانتینر.

-c, --container="" نام کانتینر. در صورت حذف، از حاشیه‌نویسی kubectl.kubernetes.io/default-container برای انتخاب کانتینر جهت اتصال استفاده می‌شود، یا اولین کانتینر موجود در پاد انتخاب خواهد شد.

-f, --filename=[] نام فایلی که برای اجرای دستور درون منبع استفاده می‌شود

--pod-running-timeout=1m0s مدت زمان انتظار (مانند 5s، 2m یا 3h، بیشتر از صفر) تا زمانی که حداقل یک پاد در حال اجرا باشد

-q, --quiet=false تنها چاپ خروجی نشست از راه دور (remote session)

-i, --stdin=false ارسال ورودی استاندارد (stdin) به کانتینر

-t, --tty=false ورودی استاندارد یک TTY است

--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 در نظر گرفتن هشدارهای دریافتی از سرور به عنوان خطا و خروج با کد وضعیت غیر صفر

# دریافت خروجی از اجرای دستور 'date' در پاد mypod با استفاده از اولین کانتینر به صورت پیش‌فرض
kubectl exec mypod -- date
# دریافت خروجی از اجرای دستور 'date' در کانتینر ruby-container از پاد mypod
kubectl exec mypod -c ruby-container -- date
# رفتن به حالت خام ترمینال (raw terminal mode)؛ ارسال stdin به 'bash' در ruby-container از پاد mypod
# و بازگرداندن stdout/stderr از 'bash' به کلاینت
kubectl exec mypod -c ruby-container -i -t -- bash -il
# فهرست کردن محتویات /usr از اولین کانتینر پاد mypod و مرتب‌سازی بر اساس زمان ویرایش
# اگر دستوری که می‌خواهید در پاد اجرا کنید دارای فلگ‌های مشترک است (مانند -i)،
# باید از دو خط تیره (--) برای جداسازی فلگ‌ها/آرگومان‌های دستور خود استفاده کنید
# همچنین توجه داشته باشید، دستور و فلگ‌ها/آرگومان‌های آن را داخل علامت نقل‌قول (کوتیشن) قرار ندهید
# مگر اینکه به طور معمول به آن صورت اجرا شود (یعنی ls -t /usr را اجرا کنید، نه "ls -t /usr")
kubectl exec mypod -i -t -- ls -t /usr
# دریافت خروجی از اجرای دستور 'date' از اولین پاد deployment به نام mydeployment با استفاده از اولین کانتینر به صورت پیش‌فرض
kubectl exec deploy/mydeployment -- date
# دریافت خروجی از اجرای دستور 'date' از اولین پاد service به نام myservice با استفاده از اولین کانتینر به صورت پیش‌فرض
kubectl exec svc/myservice -- date

kubectl(1)

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

Jan 2015 Eric Paris