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

kubeadm-join - اجرای این دستور روی هر ماشینی که قصد پیوستن آن به یک کلاستر موجود را دارید

kubeadm join [OPTIONS]

هنگام اتصال به یک کلاستر راه‌اندازی‌شده با kubeadm، باید اعتماد دوطرفه برقرار شود. این فرآیند به دو بخش کشف یا شناسایی (اعتماد کردن گره به صفحه کنترل کوبرنتیز) و راه‌اندازی اولیه با TLS (اعتماد کردن صفحه کنترل کوبرنتیز به گره) تقسیم می‌شود.

دو روش اصلی برای کشف (discovery) وجود دارد. روش اول استفاده از یک توکن مشترک به همراه آدرس IP سرور API است. روش دوم ارائه یک فایل است که زیرمجموعه‌ای از فایل استاندارد kubeconfig می‌باشد. فایل کشف/kubeconfig از توکن، افزایه‌های احراز هویت client-go (با نام «exec»)، «tokenFile» و «authProvider» پشتیبانی می‌کند. این فایل می‌تواند یک فایل محلی باشد یا از طریق یک نشانی HTTPS بارگیری شود. قالب‌های دستوری عبارتند از: kubeadm join --discovery-token abcdef.1234567890abcdef 1.2.3.4:6443، kubeadm join --discovery-file path/to/file.conf یا kubeadm join --discovery-file https://url/file.conf. تنها می‌توان از یکی از این قالب‌ها استفاده کرد. اگر اطلاعات کشف از یک نشانی اینترنتی بارگذاری شود، باید حتماً از پروتکل HTTPS استفاده گردد. همچنین، در آن حالت از بسته CA نصب‌شده روی میزبان برای تایید اتصال استفاده می‌شود.

اگر از یک توکن مشترک برای کشف استفاده می‌کنید، باید فلگ --discovery-token-ca-cert-hash را نیز برای اعتبارسنجی کلید عمومی مرجع صدور گواهی ریشه (CA) ارائه شده توسط صفحه کنترل کوبرنتیز ارسال کنید. مقدار این فلگ به صورت «<type>:<value>» مشخص می‌شود که نوع هش پشتیبانی‌شده در آن «sha256» است. هش بر روی بایت‌های شیء Subject Public Key Info (SPKI) محاسبه می‌شود (مشابه RFC7469). این مقدار در خروجی دستور kubeadm init در دسترس است یا می‌تواند با استفاده از ابزارهای استاندارد محاسبه شود. فلگ --discovery-token-ca-cert-hash را می‌توان چندین بار تکرار کرد تا امکان پذیرش بیش از یک کلید عمومی وجود داشته باشد.

اگر از قبل امکان دانستن هش کلید عمومی CA را ندارید، می‌توانید فلگ --discovery-token-unsafe-skip-ca-verification را برای غیرفعال کردن این اعتبارسنجی ارسال کنید. این کار مدل امنیتی kubeadm را تضعیف می‌کند زیرا سایر گره‌ها می‌توانند به طور بالقوه هویت صفحه کنترل کوبرنتیز را جعل نمایند.

سازوکار راه‌اندازی اولیه با TLS (بوت‌استرپ TLS) نیز از طریق یک توکن مشترک هدایت می‌شود. این توکن برای احراز هویت موقت با صفحه کنترل کوبرنتیز جهت ارسال درخواست امضای گواهی (CSR) برای یک جفت‌کلید ایجادشده به صورت محلی استفاده می‌شود. به طور پیش‌فرض، kubeadm صفحه کنترل کوبرنتیز را طوری تنظیم می‌کند که این درخواست‌های امضا را به صورت خودکار تایید کند. این توکن با فلگ --tls-bootstrap-token abcdef.1234567890abcdef منتقل می‌شود.

اغلب اوقات از همان توکن یکسان برای هر دو بخش استفاده می‌شود. در این حالت، می‌توان به جای تعیین جداگانه هر توکن، از فلگ --token استفاده کرد.

دستور «join [api-server-endpoint]» فازهای زیر را اجرا می‌کند:

preflight               Run join pre-flight checks
control-plane-prepare   Prepare the machine for serving a control plane
  /download-certs         Download certificates shared among control-plane nodes from the kubeadm-certs Secret
  /certs                  Generate the certificates for the new control plane components
  /kubeconfig             Generate the kubeconfig for the new control plane components
  /control-plane          Generate the manifests for the new control plane components
kubelet-start           Write kubelet settings, certificates and (re)start the kubelet
etcd-join               Join etcd for control plane nodes
kubelet-wait-bootstrap  Wait for the kubelet to bootstrap itself
control-plane-join      Join a machine as a control plane instance
  /mark-control-plane     Mark a node as a control-plane
wait-control-plane      Wait for the control plane to start

--apiserver-advertise-address="" در صورتی که گره میزبان نمونه جدیدی از صفحه کنترل باشد، آدرس IP که سرور API برای اعلام وضعیت شنود خود منتشر می‌کند. اگر تنظیم نشود، از رابط شبکه پیش‌فرض استفاده خواهد شد.

--apiserver-bind-port=6443 در صورتی که گره میزبان نمونه جدیدی از صفحه کنترل باشد، پورتی که سرور API به آن متصل (bind) می‌شود.

--certificate-key="" استفاده از این کلید برای رمزگشایی سکرت‌های گواهی بارگذاری‌شده توسط init. کلید گواهی یک رشته با کدبندی هگزادسیمال است که یک کلید AES به اندازه ۳۲ بایت می‌باشد.

--config="" مسیر فایل پیکربندی kubeadm.

--control-plane=false ایجاد یک نمونه جدید از صفحه کنترل روی این گره.

--cri-socket="" مسیر سوکت CRI برای اتصال. در صورت خالی بودن، kubeadm تلاش می‌کند این مقدار را به صورت خودکار شناسایی کند؛ از این گزینه تنها در صورتی استفاده کنید که بیش از یک CRI نصب شده باشد یا از سوکت غیراستاندارد CRI استفاده می‌کنید.

--discovery-file="" برای کشف مبتنی بر فایل، یک فایل یا نشانی اینترنتی (URL) که اطلاعات کلاستر از آن بارگیری شود.

--discovery-token="" برای کشف مبتنی بر توکن، توکن مورد استفاده برای اعتبارسنجی اطلاعات کلاستر دریافت شده از سرور API.

--discovery-token-ca-cert-hash=[] برای کشف مبتنی بر توکن، اعتبارسنجی اینکه کلید عمومی CA ریشه با این هش مطابقت دارد (قالب: «<type>:<value>»).

--discovery-token-unsafe-skip-ca-verification=false برای کشف مبتنی بر توکن، اجازه اتصال بدون پین کردن --discovery-token-ca-cert-hash داده شود.

--dry-run=false هیچ تغییری اعمال نکن؛ فقط کارهایی را که انجام خواهد شد خروجی بده.

--ignore-preflight-errors=[] فهرستی از بررسی‌ها که خطاهای آنها به صورت هشدار نشان داده خواهد شد. مثال: «IsPrivilegedUser,Swap». مقدار «all» خطاهای تمام بررسی‌ها را نادیده می‌گیرد.

--node-name="" تعیین نام گره.

--patches="" مسیر دایرکتوری حاوی فایل‌هایی با نامگذاری «target[suffix][+patchtype].extension». برای مثال، «kube-apiserver0+merge.yaml» یا فقط «etcd.json». مقدار «target» می‌تواند یکی از موارد «kube-apiserver»، «kube-controller-manager»، «kube-scheduler»، «etcd»، «kubeletconfiguration» یا «corednsdeployment» باشد. مقدار «patchtype» می‌تواند یکی از گزینه‌های «strategic»، «merge» یا «json» باشد که با قالب‌های وصله پشتیبانی‌شده در kubectl مطابقت دارند. مقدار پیش‌فرض «patchtype» برابر با «strategic» است. مقدار «extension» باید «json» یا «yaml» باشد. مقدار «suffix» یک رشته اختیاری است که می‌تواند برای تعیین ترتیب اولویت الفبایی-عددی اعمال وصله‌ها به کار رود.

--skip-phases=[] فهرستی از فازها که باید نادیده گرفته (رد) شوند.

--tls-bootstrap-token="" تعیین توکن مورد استفاده برای احراز هویت موقت با صفحه کنترل کوبرنتیز در هنگام پیوستن گره.

--token="" استفاده از این توکن برای هر دو گزینه discovery-token و tls-bootstrap-token هنگامی که مقادیر آنها ارائه نشده باشد.

--rootfs="" مسیر سیستم‌فایل ریشه «واقعی» میزبان. این گزینه باعث می‌شود kubeadm در مسیر ارائه‌شده chroot کند.

--version=false --version و --version=raw اطلاعات نسخه را چاپ کرده و خارج می‌شوند؛ --version=vX.Y.Z... نسخه گزارش‌شده را تنظیم می‌کند.

kubeadm(1), kubeadm-join-phase(1),

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

Jan 2015 Eric Paris