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

kubectl-expose - دریافت یک replication controller، سرویس، استقرار یا پاد و ارائه آن به عنوان یک سرویس جدید کوبرنتیز

kubectl expose [OPTIONS]

ارائه یک منبع به عنوان یک سرویس جدید کوبرنتیز.

یک استقرار (deployment)، سرویس (service)، replica set، کنترلر تکثیر (replication controller) یا پاد (pod) را بر اساس نام جستجو می‌کند و از سلکتور آن منبع به عنوان سلکتور یک سرویس جدید روی پورت مشخص‌شده استفاده می‌کند. یک استقرار یا replica set تنها زمانی به عنوان یک سرویس ارائه می‌شود که سلکتور آن به یک سلکتور قابل پشتیبانی توسط سرویس قابل تبدیل باشد، یعنی زمانی که سلکتور فقط شامل بخش matchLabels باشد. توجه داشته باشید که اگر پورتی از طریق --port مشخص نشود و منبع ارائه‌شده دارای چندین پورت باشد، همهٔ آن‌ها توسط سرویس جدید دوباره استفاده خواهند شد. همچنین اگر هیچ برچسبی (label) مشخص نشود، سرویس جدید از برچسب‌های منبعی که ارائه می‌دهد دوباره استفاده خواهد کرد.

منابع ممکن شامل موارد زیر هستند (غیرحساس به حروف بزرگ و کوچک):

pod (po), service (svc), replicationcontroller (rc), deployment (deploy), replicaset (rs)

--allow-missing-template-keys=true در صورت true بودن، در صورت نبود یک فیلد یا کلید مپ در الگو، خطاهای الگو نادیده گرفته می‌شوند. فقط برای قالب‌های خروجی golang و jsonpath اعمال می‌شود.

--cluster-ip="" آدرس ClusterIP که باید به سرویس اختصاص یابد. برای تخصیص خودکار آن را خالی بگذارید، یا برای ایجاد یک سرویس headless آن را روی 'None' تنظیم کنید.

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

--external-ip="" آدرس IP خارجی اضافی (که توسط Kubernetes مدیریت نمی‌شود) برای پذیرش توسط سرویس. اگر این IP به یک گره هدایت (route) شود، سرویس علاوه بر IP تولیدشدهٔ خود از طریق این IP نیز قابل دسترسی خواهد بود.

--field-manager="kubectl-expose" نام مدیر استفاده‌شده برای رهگیری مالکیت فیلدها.

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

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

-l, --labels="" برچسب‌هایی (labels) که باید روی سرویس ایجادشده توسط این دستور اعمال شوند.

--load-balancer-ip="" آدرس IP برای اختصاص به LoadBalancer. در صورت خالی بودن، یک IP موقت (ephemeral) ایجاد شده و استفاده می‌شود (وابسته به ارائه‌دهنده ابری).

--name="" نام شیء جدید ساخته‌شده.

-o, --output="" قالب خروجی. یکی از: (json, yaml, kyaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file).

--override-type="merge" روش مورد استفاده برای بازنویسی شیء ایجادشده: json، merge یا strategic.

--overrides="" یک بازنویسی درون‌خطی JSON برای شیء تولیدشده. اگر خالی نباشد، برای بازنویسی شیء تولیدشده استفاده می‌شود. نیازمند این است که شیء یک فیلد معتبر apiVersion ارائه دهد.

--port="" پورتی که سرویس باید روی آن خدمت‌رسانی کند. در صورت عدم تعیین، از روی منبع ارائه‌شده کپی می‌شود

--protocol="" پروتکل شبکه برای سرویسی که ایجاد می‌شود. پیش‌فرض 'TCP' است.

--record=false ثبت دستور فعلی kubectl در حاشیه‌نویسی منبع. در صورت تنظیم روی false، دستور ثبت نمی‌شود. در صورت تنظیم روی true، دستور ثبت خواهد شد. اگر تنظیم نشود، پیش‌فرض به‌روزرسانی مقدار حاشیه‌نویسی موجود خواهد بود تنها در صورتی که از قبل وجود داشته باشد.

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

--save-config=false در صورت true بودن، پیکربندی شیء فعلی در حاشیه‌نویسی آن ذخیره می‌شود. در غیر این صورت، حاشیه‌نویسی دست‌نخورده باقی می‌ماند. این فلگ زمانی مفید است که بخواهید در آینده kubectl apply را روی این شیء اجرا کنید.

--selector="" سلکتور برچسب برای استفاده در این سرویس. فقط شرط‌های برابری (equality-based) در سلکتور پشتیبانی می‌شوند. در صورت خالی بودن (پیش‌فرض)، سلکتور از منبع ارائه‌شده استنباط می‌شود.

--session-affinity="" در صورت غیرخالی بودن، چسبندگی نشست (session affinity) را برای سرویس روی این مقدار تنظیم می‌کند؛ مقادیر مجاز: 'None', 'ClientIP'

--show-managed-fields=false در صورت true بودن، فیلدهای مدیریت‌شده (managedFields) هنگام چاپ اشیاء در قالب JSON یا YAML حفظ می‌شوند.

--target-port="" نام یا شماره پورت روی کانتینر که سرویس باید ترافیک را به آن هدایت کند. اختیاری است.

--template="" رشته الگو یا مسیر فایل الگو برای استفاده در مواقعی که -o=go-template یا -o=go-template-file باشد. قالب الگو از نوع الگوهای golang است [http://golang.org/pkg/text/template/#pkg-overview].

--type="" نوع این سرویس: ClusterIP، NodePort، LoadBalancer یا ExternalName. پیش‌فرض 'ClusterIP' است.

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

# ایجاد یک سرویس برای یک nginx تحت replication controller، که روی پورت 80 خدمت می‌دهد و به کانتینرها روی پورت 8000 متصل می‌شود
kubectl expose rc nginx --port=80 --target-port=8000
# ایجاد یک سرویس برای یک replication controller مشخص‌شده با نوع و نام تعیین‌شده در "nginx-controller.yaml"، که روی پورت 80 خدمت‌رسانی کرده و به کانتینرها روی پورت 8000 متصل می‌شود
kubectl expose -f nginx-controller.yaml --port=80 --target-port=8000
# ایجاد یک سرویس برای پاد valid-pod، که روی پورت 444 با نام "frontend" خدمت می‌دهد
kubectl expose pod valid-pod --port=444 --name=frontend
# ایجاد سرویس دوم بر پایه سرویس بالا، به طوری که پورت کانتینر 8443 را به عنوان پورت 443 با نام "nginx-https" در معرض دسترسی قرار می‌دهد
kubectl expose service nginx --port=443 --target-port=8443 --name=nginx-https
# ایجاد یک سرویس برای یک برنامه استریم تکثیرشده روی پورت 4100 جهت توازن ترافیک UDP با نام 'video-stream'
kubectl expose rc streamer --port=4100 --protocol=UDP --name=video-stream
# ایجاد یک سرویس برای یک nginx تحت replica set، که روی پورت 80 خدمت می‌دهد و به کانتینرها روی پورت 8000 متصل می‌شود
kubectl expose rs nginx --port=80 --target-port=8000
# ایجاد یک سرویس برای یک استقرار (deployment) مربوط به nginx، که روی پورت 80 خدمت می‌دهد و به کانتینرها روی پورت 8000 متصل می‌شود
kubectl expose deployment nginx --port=80 --target-port=8000

kubectl(1)

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

Jan 2015 Eric Paris