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

kubectl-proxy - اجرای یک پروکسی به سمت سرور Kubernetes API

kubectl proxy [OPTIONS]

یک سرور پروکسی یا درگاه در سطح لایه کاربرد بین localhost و سرور Kubernetes API ایجاد می‌کند. همچنین امکان ارائه محتوای ایستا (static content) را روی مسیر HTTP مشخص‌شده فراهم می‌آورد. تمام داده‌های ورودی از طریق یک پورت وارد شده و به پورت دوردست سرور Kubernetes API هدایت می‌شوند، به جز مسیری که با مسیر محتوای ایستا مطابقت دارد.

--accept-hosts="^localhost$,^127\.0\.0\.1$,^\[::1\]$" عبارت باقاعده (regular expression) برای هاست‌هایی که پروکسی باید بپذیرد.

--accept-paths="^.*" عبارت باقاعده برای مسیرهایی که پروکسی باید بپذیرد.

--address="127.0.0.1" آدرس IP که سرویس‌دهی روی آن انجام می‌شود.

--api-prefix="/" پیشوندی که API تحت پروکسی تحت آن ارائه می‌شود.

--append-server-path=false در صورت true بودن، افزودن خودکار مسیر سرور کانتکست kube به هر درخواست را فعال می‌کند.

--disable-filter=false در صورت true بودن، فیلتر کردن درخواست‌ها در پروکسی غیرفعال می‌شود. این کار خطرناک است و در صورت استفاده با یک پورت در دسترس، می‌تواند شما را در برابر حملات XSRF آسیب‌پذیر کند.

--keepalive=0s مدت زمان زنده نگه‌داشتن (keep-alive) را برای یک اتصال شبکه فعال مشخص می‌کند. برای غیرفعال کردن keepalive روی 0 تنظیم کنید.

-p, --port=8001 پورتی که پروکسی روی آن اجرا می‌شود. برای انتخاب یک پورت تصادفی روی 0 تنظیم کنید.

--reject-methods="^$" عبارت باقاعده برای متدهای HTTP که پروکسی باید رد کند (مثال: --reject-methods='POST,PUT,PATCH').

--reject-paths="^/api/./pods/./exec,^/api/./pods/./attach" عبارت باقاعده برای مسیرهایی که پروکسی باید رد کند. مسیرهای مشخص‌شده در اینجا حتی در صورت پذیرفته شدن توسط --accept-paths نیز رد خواهند شد.

-u, --unix-socket="" سوکت یونیکس که پروکسی روی آن اجرا می‌شود.

-w, --www="" همچنین فایل‌های ایستا را از دایرکتوری داده‌شده تحت پیشوند مشخص‌شده ارائه می‌دهد.

-P, --www-prefix="/static/" پیشوندی برای ارائه فایل‌های ایستا، در صورتی که دایرکتوری فایل‌های ایستا مشخص شده باشد.

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

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

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

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

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

# پروکسی کردن تمام Kubernetes API و نه چیز دیگر
kubectl proxy --api-prefix=/
# پروکسی کردن تنها بخشی از Kubernetes API و همچنین برخی فایلهای ایستا
# می‌توانید اطلاعات پادها را با دستور 'curl localhost:8001/api/v1/pods' دریافت کنید
kubectl proxy --www=/my/files --www-prefix=/static/ --api-prefix=/api/
# پروکسی کردن کل Kubernetes API در یک ریشه متفاوت
# می‌توانید اطلاعات پادها را با دستور 'curl localhost:8001/custom/api/v1/pods' دریافت کنید
kubectl proxy --api-prefix=/custom/
# اجرای یک پروکسی به سمت سرور Kubernetes API روی پورت 8011، ارائه محتوای ایستا از ./local/www/
kubectl proxy --port=8011 --www=./local/www/
# اجرای یک پروکسی به سمت سرور Kubernetes API روی یک پورت محلی دلخواه
# پورت انتخاب‌شده برای سرور در خروجی استاندارد (stdout) چاپ خواهد شد
kubectl proxy --port=0
# اجرای یک پروکسی به سمت سرور Kubernetes API با تغییر پیشوند API به k8s-api
# این کار مثلاً API پادها را در آدرس localhost:8001/k8s-api/v1/pods/ در دسترس قرار می‌دهد
kubectl proxy --api-prefix=/k8s-api

kubectl(1)

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

Jan 2015 Eric Paris