برنامه نویسی

DevOps End-to-end: اجرای یک برنامه .NET در Kubernetes با Docker ، ACR و AKS

ما با استفاده از هسته dotnet با هر IDE یک برنامه وب نمونه در حال ساخت خواهیم بود اما در مورد من ، من از VS Code استفاده خواهم کرد. این برنامه قبل از استقرار این کار در سرویس Azure Kubernetes (AKS) در یک خوشه محلی Kubernetes آزمایش می شود. شما همچنین می توانید از هر زبان مورد نظر خود استفاده کنید تا زمانی که بتوانید آن را در یک تصویر کانتینر بپیچید. ما برای این پروژه از C# استفاده خواهیم کرد.

  • در مقابل کد
  • اسکله
  • لاجورد کلی
  • حساب لاجورد
  • .NET SDK
  • کلون نمونه ای از این مخزن برای این پروژه با اجرای دستور:

git clone https://github.com/hpranav/kodekloud.git

  • تغییر به فهرست مخزن

cd kodekloud/AKS/KodeKloudApp

شرح تصویر

قبل از تست برنامه خود ، اطمینان حاصل کنید که .NET SDK با بررسی ابتدا با استفاده از دستور نصب شده است

dotnet --list-sdks

شرح تصویر
اگر قبلاً نصب نشده است ، با کلیک روی برگه View به Command Pallete بروید و Command Pallete را انتخاب کنید. از طرف دیگر ، می توانید دکمه های Command+P را با هم فشار دهید.
شرح تصویر
نصب New .net SDK را جستجو یا انتخاب کنید
شرح تصویر
برای تکمیل و بررسی با اجرا صبر کنید تا نصب شود

dotnet --version

شرح تصویر

  • اکنون که دات نت SDK را نصب کرده اید ، با اجرای برنامه خود را بسازید

    dotnet build

شرح تصویر
من پیام هشدار دهنده را دریافت می کنم زیرا نسخه dotnet من نسخه 8 است در حالی که نسخه مورد استفاده در مخزن 7.0 است. برای اصلاح این موضوع ، من نسخه را در چارچوب هدف خود از 7.0 به 8.0 تغییر می دهم
شرح تصویر

  • دویدن

    dotnet run

    دستور اجرای برنامه
    شرح تصویر

  • آدرس IP LocalHost (http: // localhost: 5142) را کپی کرده و آن را در یک مرورگر جدید چسبانده اید تا برنامه را تأیید کنید.
    شرح تصویر
  • در حین اجرای برنامه ، می توانید مقدار پیام را در پرونده AppSettings.json تغییر دهید. مرورگر را تازه کنید و خواهید دید که پیام تغییر کرده است
    شرح تصویر
  • با فشار دادن Ctrl+C می توانید برنامه را متوقف کنید
  • اطمینان حاصل کنید که داکر در حال اجرا است.
  • با اجرای دستور ، تصویر Docker را بسازید

    docker build -t mywebapp:v1 .

شرح تصویر
توجه:اگر این خطا را بدست آورید ، این بدان معنی است که نسخه dotnet در dockerfile شما با نسخه نصب شده در دستگاه محلی شما متفاوت است. نسخه را در dockerfile خود ویرایش کنید
شرح تصویر

  • تصویر Docker را با اجرا لیست کنید

    docker images

شرح تصویر

  • ما از این دستور استفاده خواهیم کرد:

    docker run -d -p 8080:80 [name of your image]

این دستور تصویر را به عنوان یک Daemon با استفاده از سوئیچ -d اجرا می کند و آن را در پورت 8080 قرار می دهد و آن را مطابق با پورت 80 با استفاده از سوئیچ -p
شرح تصویر

  • با اجرا وضعیت ظرف را بررسی کنید

    docker container ls

شرح تصویر

  • به مرورگر خود بروید و LocalHost را مرور کنید: 8080
    شرح تصویر

ما از ابزار Kubectl برای استقرار برنامه خود در Kubernetes محلی استفاده خواهیم کرد. ساده ترین راه برای پیکربندی یک خوشه گره Kubernetes از Docker.

  • دسک تاپ Docker خود را باز کنید
  • علامت تنظیمات را انتخاب کنید
  • برگه Kubernetes را انتخاب کنید
  • برای فعال کردن Kubernetes روی ضامن کلیک کنید
  • روی اعمال و راه اندازی مجدد کلیک کنید
    شرح تصویر
  • روی نصب کلیک کنید.
    شرح تصویر
    شرح تصویر
  • پس از اتمام نصب ، با اجرای دستور ، زمینه فعلی را بررسی کنید

    kubectl config current-context

شرح تصویر

  • اگر زمینه فعلی روی Docker-Desktop تنظیم نشده است ، با اجرای دستور آن را تغییر دهید:

    kubectl config use-context docker-desktop

شرح تصویر

  • نسخه Kubectl را با اجرا تأیید کنید

    kubectl --version

شرح تصویر

  • با اجرای این دستور ضروری ، یک استقرار جدید ایجاد کنید:

    kubectl create deployment [deployment-name] --image:[your-image-name] --replicas=[number-of-replicas]

شرح تصویر

  • بیایید تأیید کنیم که استقرار با استفاده از آن ایجاد شده است

    kubectl get deployment

شرح تصویر
می بینید که ماکت های 2/2 در حال اجرا هستند.

  • برای اتصال به استقرار خود ، باید با استفاده از دستور آن را در یک سرویس افشا کنید:

    kubectl expose deployment [deployment-name] --type:LoadBalancer --port=8080 --target-port=80

شرح تصویر

  • خدمات را با اجرا تأیید کنید

    kubectl get svc

شرح تصویر

  • اگر به LocalHost: 8080 بروید ، خواهید دید که برنامه شما در حال اجرا است.
    شرح تصویر
  • به یاد داشته باشید که دو غلاف در خوشه خود در حال اجرا هستید تا تأیید کنید. کدام یک از آنها به شما خدمت می کند ، ویندوزهای جدید دیگری را در حالت ناشناس باز کنید و از LocalHost: 8080 بازدید کنید و نام سیستم را مقایسه کنید. دو غلاف با دویدن مشاهده می شوند

    kubectl get pod

شرح تصویر

  • اگر نام POD و نام سیستم را مقایسه کنید ، صفحه اول توسط غلاف دوم سرو می شود.
  • صفحه دوم (باز شده در حالت ناشناس) توسط اولین غلاف ارائه می شود.
    شرح تصویر
    شرح تصویر
  • برای نصب در CLI از AZ-CLI دیدن کنید
  • دویدن

    az --version

    برای بررسی نسخه
    شرح تصویر

  • دویدن

    az login

    اگر این کار را نکرده اید ، CLI خود را به پورتال لاجورد خود وصل کنید.

  • شما همچنین می توانید اجرا کنید

    az account show

    برای مشاهده حسابی که به آن وصل شده اید

  • پس از ورود به حساب خود ، با اجرای برنامه پیش فرض را برای گروه منابع AKS خود تنظیم کنید

    az configure --defaults group=[resource-group-name]

شرح تصویر

  • دویدن

    az aks get-Credentials --name [AKS name]

    برای بارگیری اعتبار و ادغام آن در زمینه کاربر فعلی خود.
    شرح تصویر

  • تأیید کنید اگر Kubectl می تواند با اجرا به خوشه دسترسی پیدا کند

    kubectl config current-context

شرح تصویر

  • دویدن

    kubectl get node

    برای مشاهده گره (AgentPool) که هنگام ایجاد خوشه AKS انتخاب کردید.
    شرح تصویر

  • همچنین می توانید این موضوع را با پیمایش به پورتال لاجورد خود تأیید کنید ، خوشه ایجاد شده را باز کنید ، استخر گره را در زیر تنظیمات انتخاب کرده و برگه گره ها را انتخاب کنید.
    شرح تصویر

اگر هم اکنون استقرار ایجاد کنید ، وضعیت غلاف شما errimagepull خواهد بود زیرا تصویر روی داک محلی شما است و به AK ها دسترسی پیدا نمی کنید. فشار دادن آن به Docker Hub باعث می شود تا ایجاد استقرار در دسترس باشد. برای فشار آوردن به تصویر خود ، این مراحل را دنبال کنید:

شرح تصویر

  • تصویر را با اجرا برچسب بزنید

    docker build -t /: .

شرح تصویر

  • با دویدن تصویر را به Docker Hub فشار دهید

    docker push /:

شرح تصویر
می توانید با ورود به Docker خود از طریق مرورگر ، تصویر را در مرکز Docker خود تأیید کنید و مخازن را انتخاب کنید
شرح تصویر

  • اکنون که تصویر خود را در مرکز Docker خود قرار داده اید ، می توانید از آن برای ایجاد استقرار استفاده کنید.
    شرح تصویر
  • می توانید از غلاف نیز استفاده کنید

    kubectl get po

شرح تصویر
همچنین می توانید استقرار و غلاف را در پورتال لاجورد خود بررسی کنید
شرح تصویر

  • برای دسترسی به استقرار خود از خارج ، با ایجاد سرویس با استفاده از دستور ، آن را در معرض دید خود قرار دهید:

    kubectl expose deployment [deployment-name] --type:LoadBalancer --port=80 --target-port=80

شرح تصویر

  • دویدن

    kubectl get svc

    برای دستیابی به آدرس IP خارجی برای دسترسی به استقرار خود
    شرح تصویر

  • IP خارجی را به یک مرورگر جدید بچسبانید تا بررسی شود.
    شرح تصویر
  • برای مقیاس استقرار خود ، اجرا کنید

    kubectl scale deployment [deployment-name] --replicas=5

شرح تصویر

  • تعداد غلافها را بررسی کنید
    شرح تصویر
    می بینید که با توجه به تعداد مقیاس ، 5 غلاف در خوشه وجود دارد

شما هنگام ایجاد AK یک ACR ایجاد کرده اید و می خواهید تصویر Docker خود را به آن فشار دهید.

  • به پورتال لاجورد بروید و ثبت و انتخاب کانتینر را انتخاب کنید
    شرح تصویر
  • رجیستری کانتینر خود را انتخاب کنید.
    شرح تصویر
    دو چیز وجود دارد که برای گره AKS شما لازم است تا تصویری را از ACR بکشید:
  • اتصال شبکه – از آنجا که SKU انتخاب شده در هنگام ایجاد ACR شما اصول اولیه بود ، دسترسی پیش فرض شبکه عمومی است و قابل تغییر نیست.
    شرح تصویر
  • خط مشی IAM – مجوز Acrpull به طور پیش فرض اختصاص داده شده است زیرا شما ACR خود را به همراه AKS ایجاد کرده اید
    شرح تصویر
  • برای فشار آوردن تصویر محلی خود به ACR ، تصویر را با اجرای دستور برچسب بزنید

    docker tag local-image-name:tag ACR-login-server/image-name:tag

توجه: شما می توانید Acr-Login-Server خود را از صفحه نمای کلی ACR دریافت کنید
شرح تصویر
شرح تصویر

  • برای ورود به ACR از کد VS من ، دستور را اجرا کنید:

    az acr login --name ACR-login-server

شرح تصویر

  • پس از موفقیت ورود به سیستم ، اجرا کنید

    docker push ACR-login-server/image-name:tag

شرح تصویر
با انتخاب مخازن در داخل ACR شما تأیید کنید
شرح تصویر

  • نکته بعدی استفاده از این تصویر برای ایجاد استقرار است.
    شرح تصویر
  • استقرار را در معرض دید قرار داده و IP خارجی را دریافت کنید
    شرح تصویر
  • IP خارجی را در یک مرورگر جدید بچسبانید تا بررسی کنید
    شرح تصویر
    شما با موفقیت تصویر خود را به ACR هل داده اید و آزمایش کرده اید که در حال کار است.

با تشکر از شما برای ماندن تا پایان

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا