Kubernetes در ویندوز: راهنمای اجرای Kubernetes با استفاده از Minikube و kubectl

Summarize this content to 400 words in Persian Lang
یک مخزن GitHub وجود دارد که در آن یادداشت های دقیقی در مورد چیستی Kubernetes به همراه یادداشت هایی در مورد اجزا و معماری آن اضافه کرده ام. شما می توانید آن را در اینجا بررسی کنید:
این مخزن حاوی یادداشت های اساسی در مورد kubernetes مانند معماری، اجزا و نحوه استفاده از kubernetes با استفاده از kubectl است.
Kubernetes چیست؟
Kubernetes یک ابزار کانتینر ارکستراسیون منبع باز است.
ارکستراسیون کانتینری چیست؟؟
ارکستراسیون کانتینر فرآیندی است برای مدیریت و هماهنگی خودکار تعداد زیادی کانتینر. این کار را مانند مدیریت می کند
راه اندازی و توقف ظروف
قرار دادن ظروف روی دستگاه سمت راست
بالا و پایین کردن ظروف بر اساس استفاده
کانتینرها را در صورت خرابی راه اندازی مجدد کنید
Kubernetes به شما کمک میکند تا برنامههای کانتینری را در محیطهای مختلفی مانند on-permise، Cloud، Hybrid مدیریت کنید. این تضمین می کند که برنامه به طور موثر اجرا می شود، مقیاس پذیر باقی می ماند و در برابر خرابی ها مقاوم است، بدون اینکه نیازی به مدیریت کانتینرها به صورت دستی داشته باشید.
چرا Kubernetes توسعه یافت؟
Kubernetes توسط Google توسعه داده شد و بعداً منبع باز شد تا به مدیریت چالش های پیچیده استقرار و اجرای برنامه های کاربردی کانتینری در مقیاس بزرگ کمک کند. قبل از Kubernetes، گوگل از سیستم داخلی خود به نام Borg استفاده می کرد که الهام بخش Kubernetes بود.
نیاز به ابزار Container Orchestration:
با افزایش پذیرش کانتینر، پیچیدگی مدیریت آن کانتینرها نیز افزایش یافت. در اینجا چند دلیل برای تبدیل شدن Kubernetes به…
نصب Minikube
برای شروع، ابتدا باید Minikube را نصب کنید. از سایت رسمی Minikube دیدن کنید: Minikube Start Documentation. سیستم عامل خود را انتخاب کنید و مراحل ارائه شده را برای نصب Minikube دنبال کنید.
برای کاربران ویندوز، میتوانید از PowerShell برای نصب Minikube با اجرای دستورات زیر استفاده کنید:
New-Item -Path ‘c:\’ -Name ‘minikube’ -ItemType Directory -Force
Invoke-WebRequest -OutFile ‘c:\minikube\minikube.exe’ -Uri ‘https://github.com/kubernetes/minikube/releases/latest/download/minikube-windows-amd64.exe’ -UseBasicParsing
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
با این کار Minikube در سیستم شما دانلود و نصب می شود. سپس، Minikube را با اجرای دستور زیر به متغیر محیطی PATH سیستم خود اضافه کنید:
$oldPath = [Environment]::GetEnvironmentVariable(‘Path’, [EnvironmentVariableTarget]::Machine)
if ($oldPath.Split(‘;’) -notcontains ‘C:\minikube’) {
[Environment]::SetEnvironmentVariable(‘Path’, $(‘{0};C:\minikube’ -f $oldPath), [EnvironmentVariableTarget]::Machine)
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این تضمین می کند که می توانید دستورات Minikube را از هر جلسه ترمینال اجرا کنید.
راه اندازی هایپروایزر
Minikube برای اجرا به Hypervisor نیاز دارد. بسته به سیستم عامل خود، می توانید از بین چندین گزینه انتخاب کنید. برای فهرست دقیق درایورهای پشتیبانی شده، به مستندات درایورهای Minikube مراجعه کنید.
اگر قبلاً Docker Desktop را روی سیستم ویندوز خود نصب کرده اید، می توانید از Docker به عنوان درایور Minikube استفاده کنید. برای راه اندازی یک خوشه Kubernetes با استفاده از درایور Docker، دستور زیر را اجرا کنید:
minikube start –driver=docker
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این دستور نیز نصب خواهد شد kubectl به عنوان یک وابستگی اکنون می توانید استفاده کنید kubectl برای تعامل با خوشه Kubernetes، به ویژه سرور API.
اکنون که minikube در حال اجرا است، بیایید بررسی کنیم که آیا واقعاً در حال اجرا است یا خیر. برای به دست آوردن تمام گره ها در خوشه می توانید cun |
kubectl get nodes
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
عملیات پایه با kubectl
اکنون، همانطور که kubectl نصب و پیکربندی شده است، اکنون می توانیم از آن برای تعامل با خوشه Kubernetes استفاده کنیم.
1. وضعیت گره ها را بررسی کنید
فرمان: kubectl get nodes
چه کاری انجام می دهد: تمام گره های خوشه را با وضعیتشان فهرست می کند (به عنوان مثال، Ready، NotReady).
خروجی نمونه:
NAME STATUS ROLES AGE VERSION
minikube Ready master 5m v1.23.0
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
جزئیات: اطلاعاتی مانند نام گره، نقش ها و نسخه Kubernetes را نشان می دهد. برای Minikube، معمولاً یک گره اصلی وجود دارد.
2. لیست غلاف ها
فرمان: kubectl get pods
چه کاری انجام می دهد: تمام پادهای در حال اجرا را در فضای نام پیش فرض نمایش می دهد.
3. لیست خدمات
فرمان: kubectl get services
چه کاری انجام می دهد: تمام سرویس های Kubernetes را در فضای نام پیش فرض فهرست می کند.
خروجی نمونه:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 443/TCP 5m
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
جزئیات: خدمات شبکه بین پادها را فراهم می کند. سرویس پیش فرض سرویس DNS داخلی Kubernetes است.
4. یک Deployment ایجاد کنید
فرمان: kubectl create deployment –image=
چه کاری انجام می دهد: یک استقرار ایجاد می کند که پادها و ReplicaSets را مدیریت می کند. در Kubernetes ما نمیتوانیم مستقیماً با پادها تعامل داشته باشیم، در عوض میتوانیم از Deployment و Deployment Act بهعنوان لایه انتزاعی روی پادها استفاده کنیم.
مثال:
kubectl create deployment nginx-deployment –image=nginx
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
جزئیات:
یک استقرار به نام ایجاد می کند nginx-deployment.
دانلود می کند nginx تصویر از Docker Hub و با استفاده از آن یک pod ایجاد می کند.
تأیید: دویدن kubectl get deployments برای تایید استقرار
5. مشاهده استقرار
فرمان: kubectl get deployments
چه کاری انجام می دهد: همه استقرارها را در فضای نام فعلی فهرست می کند.
خروجی نمونه:
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-deployment 1/1 1 1 5m
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
جزئیات: وضعیت آمادگی و در دسترس بودن استقرار را نشان می دهد.
6. ReplicaSets را مشاهده کنید
فرمان: kubectl get replicasets
چه کاری انجام می دهد: تمام ReplicaSets مرتبط با استقرارها را فهرست می کند.
خروجی نمونه:
NAME DESIRED CURRENT READY AGE
nginx-deployment-6fd8c8 1 1 1 5m
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
جزئیات: تعداد مورد نظر و واقعی پادها را برای هر ReplicaSet نشان می دهد.
7. یک استقرار را ویرایش کنید
فرمان: kubectl edit deployment
چه کاری انجام می دهد: فایل پیکربندی استقرار را در ویرایشگر متن پیش فرض شما باز می کند.
مثال:
kubectl edit deployment nginx-deployment
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
ویرایشگر را ذخیره کرده و ببندید.
Kubernetes به طور خودکار پادهای قدیمی را خاتمه می دهد و موارد جدید را با پیکربندی به روز می سازد.
تأیید: دویدن kubectl get pods برای دیدن پایانه های قدیمی و شروع غلاف های جدید.
8. سیاهههای مربوط را بررسی کنید
فرمان: kubectl logs
چه کاری انجام می دهد: سیاهههای مربوط را از یک غلاف خاص واکشی می کند.
مثال:
kubectl logs nginx-deployment-6fd8c8
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
جزئیات:
لاگ ها خروجی تولید شده توسط برنامه کانتینر داخل غلاف را ارائه می دهند.
اگر هیچ گزارشی در دسترس نباشد، به این معنی است که برنامه هنوز چیزی را ثبت نکرده است.
9. یک Pod را توصیف کنید
فرمان: kubectl describe pod
چه کاری انجام می دهد: اطلاعات دقیقی در مورد یک غلاف ارائه می دهد.
مثال:
kubectl describe pod nginx-deployment-6fd8c8
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
جزئیات:
رویدادهای دقیق مانند کشیدن تصویر، ایجاد کانتینر و مشکلات (در صورت وجود) را نشان می دهد.
برای رفع اشکال مشکلات راه اندازی غلاف مفید است.
10. Access Pod Shell
فرمان: kubectl exec -it —
چه کاری انجام می دهد: یک جلسه ترمینال تعاملی را در ظرفی در داخل غلاف باز می کند.
مثال:
kubectl exec -it nginx-deployment-6fd8c8 — /bin/bash
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
جزئیات:
اکنون داخل ظرف غلاف هستید.
از این برای اشکال زدایی یا آزمایش محیط کانتینر استفاده کنید.
با تایپ کردن از جلسه خارج شوید exit.
11. یک Deployment را حذف کنید
فرمان: kubectl delete deployment
چه کاری انجام می دهد: استقرار را به همراه پادها و ReplicaSets مرتبط با آن حذف می کند.
مثال:
kubectl delete deployment nginx-deployment
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
جزئیات:
به طور خودکار تمام پادها و ReplicaSets تحت استقرار را حذف می کند.
تأیید: دویدن kubectl get pods و kubectl get replicasets برای تایید حذف
12. Apply Configuration File
فرمان: kubectl apply -f
چه کاری انجام می دهد: منابع تعریف شده در یک فایل پیکربندی را ایجاد یا به روز می کند.
مثال:
kubectl apply -f nginx-deployment.yaml
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
جزئیات:
این فایل می تواند چندین منبع مانند استقرار، خدمات و غیره را تعریف کند.
پیکربندی نمونه:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
– name: nginx
image: nginx
ports:
– containerPort: 80
برای به روز رسانی استقرار، فایل را تغییر دهید (به عنوان مثال، Replicas را به 3) و دوباره آن را اعمال کنید:
kubectl apply -f nginx-deployment.yaml
یک مخزن GitHub وجود دارد که در آن یادداشت های دقیقی در مورد چیستی Kubernetes به همراه یادداشت هایی در مورد اجزا و معماری آن اضافه کرده ام. شما می توانید آن را در اینجا بررسی کنید:
این مخزن حاوی یادداشت های اساسی در مورد kubernetes مانند معماری، اجزا و نحوه استفاده از kubernetes با استفاده از kubectl است.
Kubernetes چیست؟
- Kubernetes یک ابزار کانتینر ارکستراسیون منبع باز است.
ارکستراسیون کانتینری چیست؟؟
ارکستراسیون کانتینر فرآیندی است برای مدیریت و هماهنگی خودکار تعداد زیادی کانتینر. این کار را مانند مدیریت می کند
- راه اندازی و توقف ظروف
- قرار دادن ظروف روی دستگاه سمت راست
- بالا و پایین کردن ظروف بر اساس استفاده
- کانتینرها را در صورت خرابی راه اندازی مجدد کنید
Kubernetes به شما کمک میکند تا برنامههای کانتینری را در محیطهای مختلفی مانند on-permise، Cloud، Hybrid مدیریت کنید. این تضمین می کند که برنامه به طور موثر اجرا می شود، مقیاس پذیر باقی می ماند و در برابر خرابی ها مقاوم است، بدون اینکه نیازی به مدیریت کانتینرها به صورت دستی داشته باشید.
چرا Kubernetes توسعه یافت؟
Kubernetes توسط Google توسعه داده شد و بعداً منبع باز شد تا به مدیریت چالش های پیچیده استقرار و اجرای برنامه های کاربردی کانتینری در مقیاس بزرگ کمک کند. قبل از Kubernetes، گوگل از سیستم داخلی خود به نام Borg استفاده می کرد که الهام بخش Kubernetes بود.
نیاز به ابزار Container Orchestration:
با افزایش پذیرش کانتینر، پیچیدگی مدیریت آن کانتینرها نیز افزایش یافت. در اینجا چند دلیل برای تبدیل شدن Kubernetes به…
نصب Minikube
برای شروع، ابتدا باید Minikube را نصب کنید. از سایت رسمی Minikube دیدن کنید: Minikube Start Documentation. سیستم عامل خود را انتخاب کنید و مراحل ارائه شده را برای نصب Minikube دنبال کنید.
برای کاربران ویندوز، میتوانید از PowerShell برای نصب Minikube با اجرای دستورات زیر استفاده کنید:
New-Item -Path 'c:\' -Name 'minikube' -ItemType Directory -Force
Invoke-WebRequest -OutFile 'c:\minikube\minikube.exe' -Uri 'https://github.com/kubernetes/minikube/releases/latest/download/minikube-windows-amd64.exe' -UseBasicParsing
با این کار Minikube در سیستم شما دانلود و نصب می شود. سپس، Minikube را با اجرای دستور زیر به متغیر محیطی PATH سیستم خود اضافه کنید:
$oldPath = [Environment]::GetEnvironmentVariable('Path', [EnvironmentVariableTarget]::Machine)
if ($oldPath.Split(';') -notcontains 'C:\minikube') {
[Environment]::SetEnvironmentVariable('Path', $('{0};C:\minikube' -f $oldPath), [EnvironmentVariableTarget]::Machine)
}
این تضمین می کند که می توانید دستورات Minikube را از هر جلسه ترمینال اجرا کنید.
راه اندازی هایپروایزر
Minikube برای اجرا به Hypervisor نیاز دارد. بسته به سیستم عامل خود، می توانید از بین چندین گزینه انتخاب کنید. برای فهرست دقیق درایورهای پشتیبانی شده، به مستندات درایورهای Minikube مراجعه کنید.
اگر قبلاً Docker Desktop را روی سیستم ویندوز خود نصب کرده اید، می توانید از Docker به عنوان درایور Minikube استفاده کنید. برای راه اندازی یک خوشه Kubernetes با استفاده از درایور Docker، دستور زیر را اجرا کنید:
minikube start --driver=docker
این دستور نیز نصب خواهد شد kubectl
به عنوان یک وابستگی اکنون می توانید استفاده کنید kubectl
برای تعامل با خوشه Kubernetes، به ویژه سرور API.
اکنون که minikube در حال اجرا است، بیایید بررسی کنیم که آیا واقعاً در حال اجرا است یا خیر. برای به دست آوردن تمام گره ها در خوشه می توانید cun |
kubectl get nodes
عملیات پایه با kubectl
اکنون، همانطور که kubectl نصب و پیکربندی شده است، اکنون می توانیم از آن برای تعامل با خوشه Kubernetes استفاده کنیم.
1. وضعیت گره ها را بررسی کنید
-
فرمان:
kubectl get nodes
- چه کاری انجام می دهد: تمام گره های خوشه را با وضعیتشان فهرست می کند (به عنوان مثال، Ready، NotReady).
- خروجی نمونه:
NAME STATUS ROLES AGE VERSION
minikube Ready master 5m v1.23.0
- جزئیات: اطلاعاتی مانند نام گره، نقش ها و نسخه Kubernetes را نشان می دهد. برای Minikube، معمولاً یک گره اصلی وجود دارد.
2. لیست غلاف ها
-
فرمان:
kubectl get pods
- چه کاری انجام می دهد: تمام پادهای در حال اجرا را در فضای نام پیش فرض نمایش می دهد.
3. لیست خدمات
-
فرمان:
kubectl get services
- چه کاری انجام می دهد: تمام سرویس های Kubernetes را در فضای نام پیش فرض فهرست می کند.
- خروجی نمونه:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 443/TCP 5m
- جزئیات: خدمات شبکه بین پادها را فراهم می کند. سرویس پیش فرض سرویس DNS داخلی Kubernetes است.
4. یک Deployment ایجاد کنید
-
فرمان:
kubectl create deployment
--image= - چه کاری انجام می دهد: یک استقرار ایجاد می کند که پادها و ReplicaSets را مدیریت می کند. در Kubernetes ما نمیتوانیم مستقیماً با پادها تعامل داشته باشیم، در عوض میتوانیم از Deployment و Deployment Act بهعنوان لایه انتزاعی روی پادها استفاده کنیم.
- مثال:
kubectl create deployment nginx-deployment --image=nginx
-
جزئیات:
- یک استقرار به نام ایجاد می کند
nginx-deployment
. - دانلود می کند
nginx
تصویر از Docker Hub و با استفاده از آن یک pod ایجاد می کند. -
تأیید: دویدن
kubectl get deployments
برای تایید استقرار
- یک استقرار به نام ایجاد می کند
5. مشاهده استقرار
-
فرمان:
kubectl get deployments
- چه کاری انجام می دهد: همه استقرارها را در فضای نام فعلی فهرست می کند.
- خروجی نمونه:
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-deployment 1/1 1 1 5m
- جزئیات: وضعیت آمادگی و در دسترس بودن استقرار را نشان می دهد.
6. ReplicaSets را مشاهده کنید
-
فرمان:
kubectl get replicasets
- چه کاری انجام می دهد: تمام ReplicaSets مرتبط با استقرارها را فهرست می کند.
- خروجی نمونه:
NAME DESIRED CURRENT READY AGE
nginx-deployment-6fd8c8 1 1 1 5m
- جزئیات: تعداد مورد نظر و واقعی پادها را برای هر ReplicaSet نشان می دهد.
7. یک استقرار را ویرایش کنید
-
فرمان:
kubectl edit deployment
- چه کاری انجام می دهد: فایل پیکربندی استقرار را در ویرایشگر متن پیش فرض شما باز می کند.
- مثال:
kubectl edit deployment nginx-deployment
- ویرایشگر را ذخیره کرده و ببندید.
- Kubernetes به طور خودکار پادهای قدیمی را خاتمه می دهد و موارد جدید را با پیکربندی به روز می سازد.
-
تأیید: دویدن
kubectl get pods
برای دیدن پایانه های قدیمی و شروع غلاف های جدید.
8. سیاهههای مربوط را بررسی کنید
-
فرمان:
kubectl logs
- چه کاری انجام می دهد: سیاهههای مربوط را از یک غلاف خاص واکشی می کند.
- مثال:
kubectl logs nginx-deployment-6fd8c8
-
جزئیات:
- لاگ ها خروجی تولید شده توسط برنامه کانتینر داخل غلاف را ارائه می دهند.
- اگر هیچ گزارشی در دسترس نباشد، به این معنی است که برنامه هنوز چیزی را ثبت نکرده است.
9. یک Pod را توصیف کنید
-
فرمان:
kubectl describe pod
- چه کاری انجام می دهد: اطلاعات دقیقی در مورد یک غلاف ارائه می دهد.
- مثال:
kubectl describe pod nginx-deployment-6fd8c8
-
جزئیات:
- رویدادهای دقیق مانند کشیدن تصویر، ایجاد کانتینر و مشکلات (در صورت وجود) را نشان می دهد.
- برای رفع اشکال مشکلات راه اندازی غلاف مفید است.
10. Access Pod Shell
-
فرمان:
kubectl exec -it
-- - چه کاری انجام می دهد: یک جلسه ترمینال تعاملی را در ظرفی در داخل غلاف باز می کند.
- مثال:
kubectl exec -it nginx-deployment-6fd8c8 -- /bin/bash
-
جزئیات:
- اکنون داخل ظرف غلاف هستید.
- از این برای اشکال زدایی یا آزمایش محیط کانتینر استفاده کنید.
- با تایپ کردن از جلسه خارج شوید
exit
.
11. یک Deployment را حذف کنید
-
فرمان:
kubectl delete deployment
- چه کاری انجام می دهد: استقرار را به همراه پادها و ReplicaSets مرتبط با آن حذف می کند.
- مثال:
kubectl delete deployment nginx-deployment
-
جزئیات:
- به طور خودکار تمام پادها و ReplicaSets تحت استقرار را حذف می کند.
-
تأیید: دویدن
kubectl get pods
وkubectl get replicasets
برای تایید حذف
12. Apply Configuration File
-
فرمان:
kubectl apply -f
- چه کاری انجام می دهد: منابع تعریف شده در یک فایل پیکربندی را ایجاد یا به روز می کند.
- مثال:
kubectl apply -f nginx-deployment.yaml
-
جزئیات:
- این فایل می تواند چندین منبع مانند استقرار، خدمات و غیره را تعریف کند.
- پیکربندی نمونه:
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx ports: - containerPort: 80
- برای به روز رسانی استقرار، فایل را تغییر دهید (به عنوان مثال، Replicas را به
3
) و دوباره آن را اعمال کنید:
kubectl apply -f nginx-deployment.yaml