Skip to main content

دسترسی kubectl

دسترسی kubectl دارکوب، محدود به زیرمجموعه‌ای‌ از دستورات با هدف ساده‌سازی عملیات خطایابی و مدیریت اپ‌ها است. ممکن است در اجرای برخی از دستورات دیگر kubectl با خطای سطح دسترسی ناکافی مواجه شوید. برای کار با این خط فرمان، نیاز به آشنایی حداقلی با مفاهیمی مانند Pod در کوبرنتیز دارید. در انتهای این صفحه مجموعه‌ای از دستورات ممکن برای کار با این خط فرمان آمده است.

نصب و راه‌اندازی

در ابتدا فایل اجرایی kubectl را با استفاده از لینک نصب kubectl دانلود و نصب کنید.

سپس افزونه‌ی krew را نصب کنید.

سپس افزونه‌ی kubelogin را با استفاده از دستور زیر نصب کنید:

kubectl krew install oidc-login

سپس فایل کانفیگ kubectl را از قسمت کانفیگ kubectl در پنل دارکوب (صفحه‌ی لیست اپ‌ها) دریافت کنید و محتوای آن را به عنوان کانفیگ kubectl در مسیر پیش‌فرض ~/.kube/config جای‌گذاری کنید.

همچنین می‌توانید با استفاده از متغیر محیطی KUBECONFIG فایل کانفیگ مورد نظر خود را استفاده کنید. درصورت استفاده از این متغیر، محتوای آن با اولویت بالاتر نسبت به کانفیگ جای‌گذاری شده مورد استفاده قرار می‌گیرد. با دستور زیر می‌توانید این متغیر محیطی را در محیط ترمینال خود تنظیم کنید:

export KUBECONFIG=/path/to/kube/config.yaml

بعد از انجام این مراحل، در اولین دستور kubectl، مرورگر شما باز می‌شود و باید با ایمیل و کلمه‌ی ‌عبور خود در کنسول هم‌روش لاگین کنید. همچنین می‌توانید با اضافه کردن username (همان ایمیل در هم‌روش) و password به فایل کانفیگ، بدون نیاز به مرورگر با kubectl کار کنید مطالعه‌ی بیشتر. البته پیشنهاد می‌کنیم تا جای ممکن به دلایل امنیتی چنین کاری نکنید.

دستورات پرکاربرد

در ادامه برخی از دستورات پرکاربرد را بیان می‌کنیم. در صورتی که چند namespace در دارکوب دارید، باید نام آن را هم با گزینه‌ی namespace در دستورات مشخص کنید.

دیدن وضعیت پادها

با اجرای این دستور نمایی کلی از وضعیت اجرای پادها و وضعیت سلامت هر کدام را خواهید دید.

kubectl get pods -o wide

دیدن مشخصات یک پاد

با این دستور می‌توانید مشخصات یک پاد (شامل مقدار متغیرهای محیطی و دستور اجرایی) را ببینید.

kubectl get pod POD_NAME -o yaml

دیدن جزئیات یک پاد (به همراه eventها)

از این دستور برای دیدن eventهای مربوط به اجرای یک پاد استفاده می‌شود.

kubectl describe pod POD_NAME

حذف کردن یک پاد

kubectl delete pod POD_NAME

دیدن لاگ‌های یک پاد

با این دستور می‌توان خروجی stdout و stderr برنامه را مشاهده کرد.

kubectl logs POD_NAME
kubectl logs -f POD_NAME

Port-forward

به این طریق می‌توان ترافیک روی یک پورت محلی را به پورتی در پاد در حال اجرا فرستاد. می‌توان از این کار برای خطایابی و انجام کارهای مدیریتی (روی پورت‌هایی که به شکل عمومی باز نیستند) استفاده کرد. پس از اجرای این دستور پورت LOCAL_PORT_NUMBER روی کامپیوتر محلی به پورت POD_PORT_NUMBER متصل می‌شود.

kubectl port-forward pod/POD_NAME LOCAL_PORT_NUMBER:POD_PORT_NUMBER

کپی کردن فایل‌ها از پاد به سیستم محلی و بالعکس

از این دستور می‌توان برای آپدیت کردن یک فایل (یا پوشه) در پاد و یا انتقال محتویات یک فایل از پاد استفاده کرد.

kubectl cp LOCAL_FILE_LOCATION POD_NAME:POD_FILE_LOCATION
kubectl cp POD_NAME:POD_FILE_LOCATION LOCAL_FILE_LOCATION

دسترسی به محیط شل برای اجرای دستورات در پاد

از این دستور می‌توان برای خطایابی یا انجام کارهای موردی مانند بررسی درستی سرویس‌های دیگر یا تغییر فایل‌های تنظیمات استفاده کرد.

kubectl exec -it  POD_NAME -- bash
kubectl exec -it POD_NAME -- ash

دیدن لیست svcها

از این دستور برای دیدن نحوه‌ی mapping پورت‌ها و آدرس دسترسی خارجی (external-ip) استفاده می‌شود.

kubectl get svc

در صورت نیاز به توضیحات بیشتر هر دستور از گزینه‌ی help استفاده کنید:

kubectl port-forward --help
kubectl logs --help