Разработка платформ искусственного интеллекта с использованием GKE и Gemini CLI

1. Введение

В этой лабораторной работе представлено техническое введение в использование Gemini CLI и сервера протокола контекста модели (MCP) GKE для управления инфраструктурой. В традиционном управлении GKE операторы вручную преобразуют требования к инфраструктуре в команды gcloud , а определения приложений — в написанные манифесты YAML. В этой лабораторной работе демонстрируется другой подход: использование интерактивного интерфейса, который связывает намерения на естественном языке с техническим выполнением на Google Kubernetes Engine (GKE) . Этот сдвиг является частью более широкой тенденции в разработке платформ, где акцент смещается от создания жестких сценариев автоматизации к управлению интеллектуальными агентами, способными обрабатывать тонкие детали операций с инфраструктурой.

Основные концепции

  • Разработка платформы : это практика создания и поддержки внутренних инструментов и рабочих процессов, позволяющих разработчикам программного обеспечения управлять собственной инфраструктурой, не будучи экспертами во всех базовых облачных сервисах. Цель — уменьшить технические сложности, сохраняя при этом согласованность и безопасность. Создавая стандартизированный «золотой путь», команды платформы гарантируют, что разработчики приложений смогут безопасно и быстро развертывать приложения, сохраняя при этом контроль над управлением и затратами.
  • Gemini CLI : Это интерфейс командной строки, позволяющий взаимодействовать с моделями Gemini непосредственно из терминала. В отличие от стандартного веб-чат-бота, CLI разработан для работы в среде разработки, что упрощает интеграцию ИИ в существующие рабочие процессы на основе командной оболочки. Он позволяет передавать вывод других команд непосредственно в модель и выполнять инструкции, не покидая терминал.
  • Протокол контекста модели (MCP) : MCP — это открытый стандарт, позволяющий модели ИИ взаимодействовать с конкретными инструментами или источниками данных. Без MCP модель ИИ знает только то, на чём она обучалась, и не может видеть ваши конкретные ресурсы. С помощью сервера GKE MCP , Gemini CLI может активно запрашивать API вашего проекта Google Cloud, проверять состояние ваших кластеров и выполнять команды от вашего имени. Он выступает в качестве моста между механизмом рассуждений модели и фактическим API GKE.

Цели лабораторной работы

По завершении этого занятия вы сможете:

  1. Настройка среды: получите доступ к Cloud Shell и выполните аутентификацию расширения GKE MCP, чтобы разрешить Gemini CLI взаимодействовать с вашими ресурсами Google Cloud.
  2. Проектирование инфраструктуры: Используйте интерактивные подсказки для определения оптимальных конфигураций кластера на основе стоимости, затрат на управление и требований к рабочей нагрузке.
  3. Управление ресурсами: генерация, аудит и развертывание манифестов Kubernetes ( развертываний , сервисов и т. д.) с использованием естественного языка.
  4. Операционный анализ: Используйте возможности ИИ по агрегированию журналов и событий для выявления первопричин сбоев развертывания и предложения конкретных технических решений.

2. Настройка проекта

Для взаимодействия Gemini CLI с вашими ресурсами необходима правильно настроенная среда Google Cloud. Эта настройка гарантирует, что ваш проект имеет необходимые права доступа и что все необходимые серверные службы готовы принимать запросы от вашего ИИ-агента.

Открытая облачная оболочка

Для этой лабораторной работы мы будем использовать Cloud Shell — браузерную терминальную среду, предоставляемую Google Cloud. Мы используем Cloud Shell, потому что она поставляется с предварительно настроенными всеми необходимыми инструментами, включая Google Cloud CLI ( gcloud ) , kubectl и Gemini CLI, что сэкономит вам время на их установке на локальном компьютере.

  1. Перейдите в консоль Google Cloud .
  2. Посмотрите в верхний правый угол консоли и нажмите кнопку «Активировать Cloud Shell» (она выглядит как приглашение терминала >_ ).
  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: API Google Kubernetes Engine. Он необходим для любых операций на уровне кластера, включая создание, обновление и удаление кластеров.
  • generativelanguage.googleapis.com: API, позволяющий Gemini CLI взаимодействовать с большими языковыми моделями Gemini для генерации текста и логических рассуждений.
  • cloudresourcemanager.googleapis.com: Необходим для того, чтобы агент мог проверять метаданные на уровне проекта, подтверждать идентификаторы проектов и управлять разрешениями IAM.
  • logging.googleapis.com: Незаменим для устранения неполадок, поскольку позволяет серверу MCP получать и анализировать журналы из ваших контейнеров, когда что-то идет не так.

3. Настройка Gemini CLI

Cloud Shell по умолчанию включает Gemini CLI, что делает его идеальной средой для этого рабочего процесса. Первым шагом является его настройка в качестве «агента», обладающего как полномочиями, так и необходимыми инструментами для управления вашей средой GKE. Этот этап настройки имеет решающее значение, поскольку он устанавливает безопасное соединение между логикой ИИ и вашей фактической облачной инфраструктурой.

Запуск Gemini CLI

В терминале 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 2.5 Flash, открыв Gemini с помощью

gemini -m gemini-2.5-flash

или используя

/model

команда в интерфейсе.

Подключите расширение GKE MCP.

По умолчанию Gemini CLI — это инструмент общего назначения, не обладающий специальными знаниями о том, как взаимодействовать с вашими кластерами. Вам необходимо установить расширение GKE MCP . Это расширение действует как плагин, определяющий определенный набор инструментов и функций — таких как «список кластеров» или «получить логи подов» — которые модель может вызывать при необходимости выполнения задачи.

👉💻 Выполните следующие команды, чтобы установить расширение GKE и снова открыть Gemini CLI:

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

Вы можете убедиться в корректности включения, повторно войдя в Gemini CLI и набрав:

/extensions

4. Инфраструктура предоставления ресурсов

Традиционное развертывание инфраструктуры часто включает в себя работу со сложной документацией или написание сотен строк конфигурационного кода. Используя агента, вы можете сосредоточиться на описании своих требований, а ИИ займется техническим преобразованием в правильные вызовы API. В этом разделе показано, как использовать агента как на этапе планирования, так и на этапе фактического создания вашей среды GKE.

Техническое планирование и сравнение

Перед созданием кластера необходимо выбрать архитектуру, соответствующую вашим потребностям. GKE предлагает два основных режима: Standard , в котором вы полностью контролируете базовые узлы, и Autopilot , в котором Google управляет узлами, а вы платите в зависимости от ресурсов, запрашиваемых вашими подами. Давайте попробуем выполнить простой запрос, чтобы понять различия между ними и подумать, какой из них лучше использовать в конкретном случае.

  • 👉💬 Задание: 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 включает в себя настройку плоскости управления, виртуальных частных сетей и начальную конфигурацию узлов, что обычно занимает 8–10 минут. Не закрывайте сессию Gemini CLI.

Вы можете запросить информацию о состоянии кластера, для чего снова будет использоваться сервер GKE MCP, который предоставит актуальные данные.

  • 👉💬 Вопрос: Is the new GKE cluster created and ready to use, yet?

5. Развертывание и проверка

Одним из главных преимуществ использования ИИ-агента для проектирования платформы является его способность выполнять предварительные проверки и аудит конфигураций. Вместо развертывания манифеста и ожидания сбоя, вы можете использовать агент для проверки технической корректности вашего YAML-файла и его соответствия политикам безопасности вашей организации еще до того, как он попадет в кластер.

Создать манифесты

Попросите агента создать манифест развертывания. Поскольку агент понимает версионирование и схему API Kubernetes, он сгенерирует 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 применить конфигурацию к вашему новому кластеру. Агент использует свои инструменты для связи с сервером API Kubernetes и создания запрошенных ресурсов.

  • 👉💬 Подсказка: 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?

6. Техническое обслуживание и устранение неполадок

Одним из наиболее ценных аспектов платформы на основе ИИ является ее способность к работе «на втором этапе». Когда система выходит из строя, задача часто заключается в поиске единственной важной ошибки среди тысяч строк логов. Используя Gemini CLI с MCP, вы можете позволить агенту агрегировать журналы, события и сообщения о состоянии, чтобы предоставить вам высокоуровневую диагностику и конкретный путь к решению проблемы.

Ручное внедрение ошибки

Чтобы проверить диагностические возможности агента, мы намеренно создадим состояние сбоя. В отдельной вкладке терминала выполните эту команду, чтобы обновить развертывание с помощью образа контейнера, которого не существует. Это имитирует распространенную человеческую ошибку: опечатку в теге контейнера.

👉💻 Выполните следующую команду вне интерфейса командной строки Gemini:

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

Примечание: Название вашей развернутой системы может отличаться от "nginx". Вы можете проверить это, выполнив команду...

kubectl get deployments

Kubernetes попытается загрузить этот образ, но потерпит неудачу, поскольку не сможет найти тег, и поды перейдут в состояние 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 CLI обнаружит, что развертывание неисправно. Затем он использует доступные инструменты для проверки неисправных модулей. Агент выявит ошибку загрузки, объяснит, что тег недействителен, и предложит вернуться к заведомо исправному образу.

Техническое обслуживание и оценка рисков

Обслуживание платформы включает в себя своевременное обновление и устранение устаревших функций. Вы можете поручить агенту выполнять функции 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.

Это может привести к тому, что Gemini будет обращаться к инструментам сервера GKE MCP, таким как инструменты для проверки состояния кластера и предоставления рекомендаций.

7. Заключение

В этой лабораторной работе был продемонстрирован новый способ взаимодействия с облачной инфраструктурой. Интеграция агента ИИ непосредственно в рабочий процесс терминала через Gemini CLI и MCP позволяет перейти от ручного написания команд к управлению намерениями. Такой подход позволяет командам разработчиков платформы масштабировать свои знания, предоставляя интеллектуальный интерфейс, который обрабатывает повторяющиеся и подверженные ошибкам детали управления Kubernetes, в то время как инженер-человек сосредотачивается на высокоуровневой архитектуре и решении проблем.

Краткое описание лабораторной работы

  • Подключение: Вы успешно подключили Gemini CLI к API GKE, используя протокол контекста модели, что обеспечило модели ИИ прямой доступ к состоянию вашего проекта.
  • Инфраструктура: Вы использовали естественный язык для проектирования и развертывания кластера GKE, избежав необходимости запоминать сложные флаги командной строки.
  • Разработка: Вы создавали, проверяли на безопасность и развертывали ресурсы Kubernetes без ручного редактирования YAML-файлов, обеспечивая соблюдение передовых методов с самого начала.
  • Операционная задача: Вы использовали ИИ для проведения анализа первопричин сбоя в развертывании, что значительно сократило среднее время восстановления благодаря возможности ИИ обобщать журналы и события.

Уборка

Чтобы предотвратить дальнейшее списание средств с Google Cloud за ресурсы, созданные в этой лабораторной работе, вы можете дать указание агенту удалить кластер.

Примечание: Пропустите этот шаг, если вы планируете повторно использовать кластер GKE для другой лабораторной работы.

  • 👉💬 Подсказка: Delete the 'gke-lab' cluster and any associated resources.

Следующие шаги

Рекомендации для дальнейшего чтения: