مهندسی پلتفرم هوش مصنوعی با GKE و Gemini CLI

۱. مقدمه

این آزمایشگاه مقدمه‌ای فنی بر استفاده از Gemini CLI و سرور GKE Model Context Protocol (MCP) برای مدیریت زیرساخت ارائه می‌دهد. در مدیریت سنتی GKE، اپراتورها به صورت دستی الزامات زیرساخت را به دستورات gcloud و تعاریف برنامه را به مانیفست‌های YAML مکتوب تبدیل می‌کنند. این آزمایشگاه رویکرد متفاوتی را نشان می‌دهد: استفاده از یک رابط تعاملی که قصد زبان طبیعی را با اجرای فنی در Google Kubernetes Engine (GKE) پیوند می‌دهد. این تغییر بخشی از یک روند گسترده‌تر در مهندسی پلتفرم است که در آن تمرکز از ساخت اسکریپت‌های اتوماسیون سفت و سخت به مدیریت عوامل هوشمندی که می‌توانند جزئیات ظریف عملیات زیرساخت را مدیریت کنند، تغییر می‌کند.

مفاهیم اصلی

  • مهندسی پلتفرم : این روش، ساخت و نگهداری ابزارها و گردش‌های کاری داخلی است که توسعه‌دهندگان نرم‌افزار را قادر می‌سازد تا زیرساخت خود را بدون نیاز به تخصص در هر سرویس ابری زیربنایی، مدیریت کنند. هدف، کاهش اصطکاک فنی در عین حفظ ثبات و امنیت است. با ایجاد یک مسیر طلایی استاندارد، تیم‌های پلتفرم اطمینان حاصل می‌کنند که توسعه‌دهندگان برنامه‌های کاربردی می‌توانند با خیال راحت و به سرعت مستقر شوند، در حالی که تیم پلتفرم کنترل بر مدیریت و هزینه را حفظ می‌کند.
  • رابط خط فرمان Gemini : این یک رابط خط فرمان است که به شما امکان می‌دهد مستقیماً از طریق ترمینال خود با مدل‌های Gemini تعامل داشته باشید. برخلاف یک چت‌بات استاندارد مبتنی بر وب، رابط خط فرمان به گونه‌ای طراحی شده است که در محیط توسعه شما وجود داشته باشد و ادغام هوش مصنوعی را در گردش‌های کاری مبتنی بر پوسته موجود آسان‌تر می‌کند. این رابط به شما امکان می‌دهد خروجی سایر دستورات را مستقیماً به مدل منتقل کنید و دستورالعمل‌ها را بدون ترک محیط ترمینال خود اجرا کنید.
  • پروتکل زمینه مدل (MCP) : MCP یک استاندارد باز است که به یک مدل هوش مصنوعی امکان اتصال به ابزارها یا منابع داده خاص را می‌دهد. بدون MCP، یک مدل هوش مصنوعی فقط می‌داند که بر اساس چه چیزی آموزش دیده است و نمی‌تواند منابع خاص شما را ببیند. با سرور GKE MCP ، رابط خط فرمان Gemini می‌تواند به طور فعال از API پروژه Google Cloud شما پرس و جو کند، وضعیت خوشه‌های شما را بررسی کند و دستورات را از طرف شما اجرا کند. این رابط به عنوان پلی بین موتور استدلال مدل و API واقعی GKE عمل می‌کند.

اهداف آزمایشگاه

در پایان این جلسه، شما قادر خواهید بود:

  1. پیکربندی محیط: به Cloud Shell دسترسی پیدا کنید و افزونه GKE MCP را تأیید کنید تا Gemini CLI بتواند با منابع Google Cloud شما تعامل داشته باشد.
  2. طراحی زیرساخت: از دستورالعمل‌های تعاملی برای تعیین پیکربندی‌های بهینه کلاستر بر اساس هزینه، سربار مدیریتی و الزامات حجم کار استفاده کنید.
  3. مدیریت منابع: تولید، ممیزی و استقرار مانیفست‌های Kubernetes ( استقرارها ، سرویس‌ها و غیره) با استفاده از زبان طبیعی.
  4. تحلیل عملیاتی: از توانایی هوش مصنوعی در جمع‌آوری لاگ‌ها و رویدادها برای شناسایی علت اصلی شکست‌های استقرار و پیشنهاد اصلاحات فنی خاص استفاده کنید.

۲. راه‌اندازی پروژه

قبل از اینکه Gemini CLI بتواند با منابع شما تعامل داشته باشد، به یک محیط Google Cloud به درستی پیکربندی شده نیاز است. این تنظیمات تضمین می‌کند که پروژه شما مجوزهای صحیح را دارد و تمام سرویس‌های backend لازم آماده دریافت درخواست‌ها از عامل هوش مصنوعی شما هستند.

پوسته ابری را باز کنید

برای این آزمایش، ما از Cloud Shell ، یک محیط ترمینال مبتنی بر مرورگر که توسط Google Cloud ارائه شده است، استفاده خواهیم کرد. ما از Cloud Shell استفاده می‌کنیم زیرا با تمام ابزارهای مورد نیاز ما - از جمله Google Cloud CLI ( gcloud ) ، kubectl و Gemini CLI - از پیش پیکربندی شده است و در زمان نصب این ابزارها روی دستگاه محلی شما صرفه‌جویی می‌کند.

  1. به کنسول ابری گوگل بروید.
  2. به بالای سمت راست کنسول نگاه کنید و روی دکمه‌ی «فعال کردن پوسته‌ی ابری» کلیک کنید (شبیه به یک اعلان ترمینال >_ ).
  3. یک بخش ترمینال در پایین پنجره مرورگر شما باز می‌شود. در صورت درخواست، روی ادامه کلیک کنید.

انتخاب پروژه

در ترمینال Cloud Shell، مطمئن شوید که در پروژه صحیح کار می‌کنید.

  1. یک پروژه موجود را انتخاب کنید یا یک پروژه جدید مخصوص این آزمایشگاه در کنسول ایجاد کنید.
  2. شناسه پروژه خود را یادداشت کنید. می‌توانید با اجرای دستور زیر، پروژه را در پوسته فعلی خود تنظیم کنید: gcloud config set project [YOUR_PROJECT_ID]

فعال کردن APIها

ویژگی‌های Kubernetes و هوش مصنوعی به طور پیش‌فرض برای پروژه‌های جدید فعال نیستند. فعال کردن این APIها، سرویس‌های اصلی Google Cloud را که مدیریت کانتینر، مدل‌های مولد و ثبت وقایع متمرکز را مدیریت می‌کنند، راه‌اندازی اولیه می‌کند.

👉💻 دستور زیر را در Cloud Shell اجرا کنید تا آنها را فعال کنید. این فرآیند ممکن است یک دقیقه طول بکشد.

gcloud services enable \
    container.googleapis.com \
    generativelanguage.googleapis.com \
    cloudresourcemanager.googleapis.com \
    logging.googleapis.com
  • container.googleapis.com: رابط برنامه‌نویسی کاربردی موتور کوبرنتیز گوگل. این رابط برای هرگونه عملیات در سطح خوشه، از جمله ایجاد، به‌روزرسانی و حذف خوشه‌ها، مورد نیاز است.
  • generativelanguage.googleapis.com: رابط برنامه‌نویسی کاربردی (API) که به رابط خط فرمان Gemini اجازه می‌دهد تا با مدل‌های زبان بزرگ Gemini برای تولید متن و استدلال ارتباط برقرار کند.
  • cloudresourcemanager.googleapis.com: برای بررسی فراداده‌های سطح پروژه، تأیید شناسه‌های پروژه و مدیریت مجوزهای IAM توسط نماینده لازم است.
  • logging.googleapis.com: برای عیب‌یابی ضروری است، زیرا به سرور MCP اجازه می‌دهد تا در صورت بروز مشکل، گزارش‌ها را از کانتینرهای شما دریافت و تجزیه و تحلیل کند.

۳. پیکربندی رابط خط فرمان Gemini

Cloud Shell به طور پیش‌فرض شامل Gemini CLI است که آن را به محیطی ایده‌آل برای این گردش کار تبدیل می‌کند. اولین قدم شما پیکربندی آن است تا به عنوان یک "عامل" عمل کند که هم اختیار و هم ابزارهای خاص مورد نیاز برای مدیریت محیط GKE شما را داشته باشد. این مرحله پیکربندی بسیار مهم است زیرا ارتباط امن بین منطق هوش مصنوعی و زیرساخت ابری واقعی شما را برقرار می‌کند.

شروع رابط خط فرمان Gemini

در ترمینال Cloud Shell خود، یک دایرکتوری کاری جدید ایجاد کنید و Gemini CLI را اجرا کنید. این کار جلسه‌ای را آغاز می‌کند که در آن می‌توانید مکالمه مداومی با مدل داشته باشید. برخلاف دستورات یک‌باره، حالت تعاملی یک پنجره زمینه را حفظ می‌کند که دستورالعمل‌های قبلی شما و وضعیت پروژه شما را به خاطر می‌سپارد.

👉💻 دستورات زیر را اجرا کنید:

mkdir -p ~/gke-lab
cd ~/gke-lab
gemini

وقتی داخل شدید، سطح آگاهی اولیه ابزار را آزمایش کنید تا مطمئن شوید که می‌تواند محیط شما را ببیند:

  • 👉💬 سوال: Which Google Cloud project is currently active in this shell?

ممکن است از شما بخواهد که اجرای دستور gcloud را برای شما تأیید کند، که می‌توانید آن را بپذیرید.

شما می‌توانید در هر زمانی با تایپ کردن /quit ‎ از رابط کاربری خارج شوید.

توجه: اگر با Gemini 2.5 Pro با مشکل ظرفیت مواجه شدید، می‌توانید با باز کردن Gemini با ... به Gemini 2.5 Flash تغییر دهید.

gemini -m gemini-2.5-flash

یا با استفاده از

/model

دستور درون رابط.

افزونه GKE MCP را وصل کنید

به طور پیش‌فرض، Gemini CLI یک ابزار همه منظوره است و دانش خاصی در مورد نحوه تعامل با خوشه‌های شما ندارد. شما باید افزونه GKE MCP را نصب کنید. این افزونه به عنوان افزونه‌ای عمل می‌کند که مجموعه‌ای خاص از ابزارها و توابع - مانند "لیست خوشه‌ها" یا "دریافت گزارش‌های غلاف" - را تعریف می‌کند که مدل می‌تواند هنگام نیاز به انجام یک کار، آنها را فراخوانی کند.

👉💻 دستورات زیر را برای نصب افزونه GKE و باز کردن مجدد رابط خط فرمان Gemini اجرا کنید:

gemini extensions install https://github.com/GoogleCloudPlatform/gke-mcp.git
gemini

می‌توانید با ورود مجدد به Gemini CLI و تایپ دستور زیر، از فعال شدن صحیح آن اطمینان حاصل کنید:

/extensions

۴. تأمین زیرساخت

تأمین زیرساخت سنتی اغلب شامل پیمایش مستندات پیچیده یا نوشتن صدها خط کد پیکربندی است. با استفاده از یک عامل، می‌توانید بر توصیف نیازهای خود تمرکز کنید و به هوش مصنوعی اجازه دهید ترجمه فنی را به فراخوانی‌های صحیح API انجام دهد. این بخش نحوه استفاده از عامل را هم برای مرحله برنامه‌ریزی و هم برای ایجاد واقعی محیط GKE شما نشان می‌دهد.

برنامه‌ریزی فنی و مقایسه

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

  • 👉💬 سوال: I need to run a standard 3-tier web application. Compare GKE Standard and GKE Autopilot. Focus on the operational effort for a small team and the cost structure for small workloads.

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

اجرای ایجاد خوشه

پس از بررسی مقایسه و انتخاب، می‌توانید به عامل دستور دهید تا خوشه را بسازد. عامل درخواست شما را تجزیه و تحلیل کرده و ابزار create_cluster را از سرور GKE MCP فراخوانی می‌کند تا یک محیط آماده برای تولید را بر اساس آن الزامات مستقر کند.

  • 👉💬 سوال: Create a GKE Standard zonal cluster named 'gke-lab' in us-central1-a with 1 node with 4 CPUs. The cluster should have Workload Identity enabled.

توجه: آماده‌سازی کلاستر GKE شامل راه‌اندازی صفحه کنترل، شبکه‌های خصوصی مجازی و پیکربندی اولیه گره است که معمولاً ۸ تا ۱۰ دقیقه طول می‌کشد. جلسه Gemini CLI خود را نبندید.

می‌توانید در مورد وضعیت کلاستر سوال کنید، که این کار دوباره از سرور GKE MCP برای بازگرداندن اطلاعات به‌روز استفاده خواهد کرد.

  • 👉💬 سوال: Is the new GKE cluster created and ready to use, yet?

۵. استقرار و اعتبارسنجی

یکی از مزایای اصلی استفاده از یک عامل هوش مصنوعی برای مهندسی پلتفرم، توانایی آن در انجام بررسی‌ها و ممیزی‌های «پیش از اجرا» روی پیکربندی‌های شما است. به جای استقرار یک مانیفست و انتظار برای شکست آن، می‌توانید از این عامل برای تأیید صحت فنی و پایبندی YAML خود به سیاست‌های امنیتی سازمان، قبل از رسیدن به کلاستر، استفاده کنید.

تولید مانیفست

از عامل بخواهید که یک مانیفست استقرار ایجاد کند. از آنجا که عامل، نسخه‌بندی و طرحواره Kubernetes API را درک می‌کند، YAML را با فرمت صحیح و شامل تمام فیلدهای لازم برای استقرار موفقیت‌آمیز، تولید خواهد کرد.

  • 👉💬 درخواست: Generate a Kubernetes YAML manifest for an Nginx web server. I need 3 replicas. Set a memory limit of 256Mi and a CPU limit of 500m. Also, include a Service of type LoadBalancer to make it accessible via the internet. Save the manifest as web-server.yaml

اعتبارسنجی فنی و ممیزی امنیتی

ایجاد دستی YAML اغلب منجر به پیکربندی‌هایی می‌شود که با امتیازاتی بیش از حد لازم اجرا می‌شوند یا فاقد ویژگی‌های اولیه قابلیت اطمینان هستند. می‌توانید از عامل برای ممیزی مانیفستی که اخیراً ایجاد شده است استفاده کنید تا مطمئن شوید که با استانداردهای مدرن برای امنیت و انعطاف‌پذیری مطابقت دارد.

  • 👉💬 درخواست: Review the Nginx manifest you just created. Does it include resource requests (not just limits)? Does it specify a non-root user for the container? Add a Pod Disruption Budget to ensure high availability during cluster maintenance. Make any necessary modifications to the file, and tell me what changes were made.

اجرای استقرار

پس از تکمیل آماده‌سازی کلاستر از بخش قبل، به Gemini CLI بگویید که پیکربندی را روی کلاستر جدید شما اعمال کند. عامل از ابزارهای خود برای ارتباط با سرور Kubernetes API و ایجاد منابع درخواستی استفاده خواهد کرد.

  • 👉💬 درخواست: Deploy the audited Nginx manifest to the 'gke-lab' cluster. Use the kubectl command to do this.

بررسی وضعیت در لحظه

به جای اجرای چندین دستور kubectl get pods یا kubectl describe ، می‌توانید از عامل بخواهید خلاصه‌ای از پیشرفت استقرار را به زبان طبیعی ارائه دهد.

  • 👉💬 سوال: Are the Nginx pods running? Provide the external IP address assigned to the LoadBalancer once it is available.

گیر کرده؟

اگر به نظر نمی‌رسد سرویس‌های Nginx با موفقیت مستقر شوند، سعی کنید مشکل را با Gemini CLI عیب‌یابی کنید. این ابزار برای کمک به شما آماده است!

  • 👉💬 درخواست: The Nginx deployment doesn't start up as expected. Can you help troubleshoot?

۶. نگهداری و عیب‌یابی

یکی از ارزشمندترین جنبه‌های یک پلتفرم مبتنی بر هوش مصنوعی، قابلیت آن برای عملیات «روز دوم» است. وقتی سیستمی از کار می‌افتد، چالش اغلب جستجو در میان هزاران خط لاگ برای یافتن خطای مهم است. با استفاده از Gemini CLI به همراه MCP، می‌توانید به عامل اجازه دهید لاگ‌ها، رویدادها و پیام‌های وضعیت را جمع‌آوری کند تا یک تشخیص سطح بالا و یک مسیر مشخص برای حل مشکل در اختیار شما قرار دهد.

تزریق دستی خرابی

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

👉💻 دستور زیر را خارج از رابط خط فرمان Gemini اجرا کنید:

kubectl set image deployment/nginx nginx=nginx:invalid-version-xyz123

توجه: ممکن است نام استقرار شما دقیقاً "nginx" نباشد. می‌توانید با اجرای دستور زیر این موضوع را تأیید کنید.

kubectl get deployments

کوبرنتیز تلاش می‌کند این تصویر را دریافت کند، اما به دلیل عدم یافتن تگ، شکست می‌خورد و پادها وارد حالت ImagePullBackOff می‌شوند.

تحلیل با Gemini CLI

به جلسه Gemini CLI خود برگردید. به جای جستجو در کنسول Cloud Logging به صورت دستی، از اپراتور بخواهید خطا را پیدا کرده و توضیح دهد.

  • 👉💬 درخواست: The Nginx deployment on my 'gke-lab' cluster has stopped working. Use your tools to inspect the cluster state, check the recent events, and explain exactly why the pods are failing to start.

آنچه در اینجا اتفاق می‌افتد: رابط خط فرمان Gemini متوجه می‌شود که استقرار ناسالم است. سپس از ابزارهای موجود برای بررسی پادهای ناموفق استفاده می‌کند. عامل، خطای pull را شناسایی می‌کند، توضیح می‌دهد که تگ نامعتبر است و پیشنهاد می‌دهد که به یک ایمیج خوب شناخته شده برگردید.

تعمیر و نگهداری و ارزیابی ریسک

نگهداری پلتفرم شامل پیشی گرفتن از ارتقاها و منسوخ شدن‌ها می‌شود. می‌توانید از نماینده بخواهید که به عنوان یک SRE عمل کند و سلامت و طول عمر کلاستر شما را ارزیابی کند.

  • 👉💬 سوال: Is my cluster 'gke-lab' running the latest version of GKE? Check for available upgrades and let me know if any of my current resources use deprecated APIs that would break during an upgrade.

این ممکن است منجر به فراخوانی ابزارهای سرور GKE MCP مانند وضعیت خوشه و ابزارهای توصیه توسط Gemini شود.

۷. نتیجه‌گیری

این آزمایشگاه روش جدیدی برای تعامل با زیرساخت ابری ارائه داده است. با ادغام مستقیم یک عامل هوش مصنوعی در گردش کار ترمینال خود از طریق Gemini CLI و MCP، شما از یک نویسنده دستی دستورات به یک مدیر هدف تبدیل شده‌اید. این رویکرد به تیم‌های پلتفرم اجازه می‌دهد تا با ارائه یک رابط هوشمند که جزئیات تکراری و مستعد خطا در مدیریت Kubernetes را مدیریت می‌کند، تخصص خود را گسترش دهند، در حالی که مهندس انسانی بر معماری سطح بالا و حل مسئله تمرکز دارد.

خلاصه آزمایشگاه

  • اتصال: شما با موفقیت Gemini CLI را با استفاده از پروتکل Model Context به GKE API متصل کردید و به مدل هوش مصنوعی، دید مستقیمی از وضعیت پروژه خود دادید.
  • زیرساخت: شما از زبان طبیعی برای معماری و آماده‌سازی یک کلاستر GKE استفاده کردید و از نیاز به حفظ کردن پرچم‌های پیچیده CLI اجتناب کردید.
  • توسعه: شما منابع Kubernetes را بدون ویرایش دستی YAML ایجاد، ممیزی امنیتی و مستقر کردید و از رعایت بهترین شیوه‌ها از ابتدا اطمینان حاصل کردید.
  • عملیات: شما از هوش مصنوعی برای انجام تحلیل ریشه‌ای علت خرابی در یک استقرار خراب استفاده کردید و با اجازه دادن به هوش مصنوعی برای خلاصه کردن لاگ‌ها و رویدادها، میانگین زمان بازیابی را به میزان قابل توجهی کاهش دادید.

پاکسازی

برای جلوگیری از هزینه‌های مداوم Google Cloud برای منابع ایجاد شده در این آزمایشگاه، می‌توانید به عامل دستور دهید که خوشه را حذف کند.

توجه: اگر قصد دارید از کلاستر GKE برای آزمایشگاه دیگری استفاده مجدد کنید، از این مرحله صرف نظر کنید.

  • 👉💬 درخواست: Delete the 'gke-lab' cluster and any associated resources.

مراحل بعدی

توصیه‌هایی برای مطالعه بیشتر: