1. Введение
Эта лабораторная работа посвящена разработке и обеспечению безопасности агентов искусственного интеллекта, выполняющих динамический код в производственной среде. По мере того, как приложения ИИ выходят за рамки простых чат-интерфейсов, им часто требуется возможность выполнять сложную логику — такую как анализ данных, математическое моделирование или обработка файлов — путем генерации и выполнения кода в режиме реального времени. В этой лабораторной работе демонстрируется, как использовать комплект разработки агентов (ADK) для создания агентов, способных к рассуждениям, и песочницу агентов GKE для обеспечения выполнения любого кода, сгенерированного ИИ, в высокоизолированной и безопасной среде.
Технические сложности, связанные с ненадежным кодом.
Когда агент ИИ генерирует и выполняет код (например, Python), он, по сути, запускает ненадежную рабочую нагрузку на вашей инфраструктуре. Если агент скомпрометирован или получит указание выполнить вредоносные действия, он может попытаться получить доступ к конфиденциальным переменным среды, просканировать вашу внутреннюю сеть или использовать уязвимости базового хост-узла. Традиционная изоляция контейнеров часто недостаточна для таких динамических рабочих нагрузок. Для решения этой проблемы инженеры платформы должны внедрить многоуровневую безопасность, включающую изоляцию на уровне ядра и ограничение исходящего сетевого трафика.
Основные концепции
- Комплект разработки агентов (ADK): ADK — это фреймворк, используемый для создания приложений, способных анализировать задачи. Он управляет «циклом анализа», в котором ИИ получает запрос, планирует последовательность действий, вызывает определенные инструменты, а затем подводит итоговый результат. В этом рабочем процессе ADK выступает в роли координатора, определяющего, когда запрос пользователя требует выполнения кода.
- Песочница агента GKE: Эта функция безопасности использует gVisor , среду выполнения контейнеров с открытым исходным кодом, которая предоставляет специализированное гостевое ядро для каждого контейнера. Перехватывая системные вызовы (syscalls) между приложением и ядром хоста, песочница агента GKE предотвращает прямое взаимодействие ненадежного кода с узлом. Это гарантирует, что нарушение безопасности внутри контейнера не сможет распространиться на остальную часть кластера.
- Протокол контекста модели (MCP) и инструменты: Этот протокол устанавливает стандартный способ взаимодействия моделей ИИ с внешними инструментами. В этой лабораторной работе агент настраивается с помощью инструмента «Выполнение кода», который взаимодействует со специализированным контроллером песочницы для запуска скриптов Python.
Цели лабораторной работы
По завершении этого занятия вы сможете:
- Разработка агента: Настройте агента на основе ADK, предназначенного для задач анализа данных.
- Настройка изоляции ядра: Настройка песочницы агента GKE со специализированными классами среды выполнения (RuntimeClasses).
- Оптимизация производительности: Внедрите «пул теплых» песочниц, чтобы минимизировать время, затрачиваемое на запуск новых сред выполнения.
- Обеспечение соблюдения границ безопасности: применение сетевых политик для предотвращения несанкционированного выхода из среды выполнения.
2. Настройка проекта
Перед началом разработки агентных приложений крайне важно правильно настроить среду. В этом разделе вы получите доступ к необходимым инструментам и убедитесь, что ваш проект Google Cloud готов к размещению как агента ИИ, так и его безопасной среды выполнения.
Открытая облачная оболочка
Для этой лабораторной работы мы будем использовать Cloud Shell — браузерную терминальную среду, предоставляемую Google Cloud. Cloud Shell поставляется с предварительно настроенными инструментами командной строки Google Cloud ( gcloud ) , kubectl и средой Docker , необходимой для сборки и развертывания вашего приложения.
- Перейдите в консоль Google Cloud .
- Нажмите кнопку «Активировать Cloud Shell» в правом верхнем углу заголовка (значок
>_). - После того, как в нижней части браузера откроется окно терминала, при появлении соответствующего запроса нажмите «Продолжить» .
Выберите проект
Необходимо убедиться, что ваша оболочка указывает на правильный проект Google Cloud, чтобы избежать развертывания ресурсов в неправильной среде.
👉💻 Найдите идентификатор своего проекта на панели управления консоли и выполните следующую команду, чтобы установить проект в текущей оболочке:
gcloud config set project [YOUR_PROJECT_ID]
Включить API
Для создания и развертывания агентов требуется несколько специализированных API для сборки контейнеров, размещения образов и доступа к генеративным моделям.
👉💻 Выполните следующую команду для инициализации этих служб:
gcloud services enable \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com \
container.googleapis.com \
aiplatform.googleapis.com
- cloudbuild.googleapis.com: Автоматизирует создание образов контейнеров из вашего исходного кода.
- artifactregistry.googleapis.com: Предоставляет безопасный, частный реестр для образов ваших агентов.
- container.googleapis.com: Управляет жизненным циклом кластера GKE и его функциями безопасности.
- aiplatform.googleapis.com: Предоставляет доступ к сервисам Vertex AI, включая модели Gemini для рассуждений и генерации кода.
Создание кластера
Для выполнения этой лабораторной работы требуется кластер GKE с включенной функцией Agent Sandbox. Использование GKE Autopilot — наиболее эффективный способ начать работу, поскольку он автоматически управляет узлами, поддерживая при этом функции безопасности, необходимые для изолированного выполнения кода.
👉💻 Выполните следующие команды для создания кластера GKE:
export PROJECT_ID=$(gcloud config get-value project)
gcloud container clusters create gke-lab \
--zone us-central1-a \
--num-nodes 2 \
--machine-type e2-standard-4 \
--workload-pool=${PROJECT_ID}.svc.id.goog
gcloud container node-pools create sandboxed-pool \
--cluster gke-lab \
--zone us-central1-a \
--num-nodes 1 \
--machine-type e2-standard-4 \
--image-type cos_containerd \
--sandbox type=gvisor
Примечание: Создание нового кластера обычно занимает 8–10 минут. Вы можете продолжить включение API в новой вкладке или во время выполнения команды.
Настройка доступа к kubectl
После развертывания кластера необходимо настроить kubectl для взаимодействия с ним.
👉💻 Следующая команда получает учетные данные кластера и обновляет ваш локальный файл kubeconfig , позволяя вам запускать команды в вашем новом кластере GKE из Cloud Shell:
gcloud container clusters get-credentials gke-lab --zone us-central1-a
Благодаря этому команды kubectl теперь по умолчанию будут нацелены на кластер gke-lab .
Разрешить GKE доступ к Vertex AI
Чтобы разрешить агенту, работающему в GKE , доступ к сервисам Vertex AI для вывода модели, необходимо настроить Workload Identity . Это позволит привязать учетную запись службы Kubernetes к роли Google Cloud IAM, предоставив подам, работающим от имени этой учетной записи службы, необходимые разрешения без необходимости управления ключами учетной записи службы.
👉💻 Сначала создайте учетную запись службы Kubernetes, которую будут использовать поды агентов:
kubectl create serviceaccount adk-agent-sa
Далее предоставьте этой учетной записи службы роль Vertex AI User , добавив привязку политики IAM.
👉💻 Эта команда привязывает учетную запись службы Kubernetes adk-agent-sa в пространстве имен default к роли IAM roles/aiplatform.user для пула удостоверений рабочей нагрузки вашего проекта.
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe ${PROJECT_ID} --format="value(projectNumber)")
gcloud projects add-iam-policy-binding projects/${PROJECT_ID} \
--role=roles/aiplatform.user \
--member=principal://iam.googleapis.com/projects/${PROJECT_NUMBER}/locations/global/workloadIdentityPools/${PROJECT_ID}.svc.id.goog/subject/ns/default/sa/adk-agent-sa \
--condition=None
3. Создание агента ADK
В этом разделе вы определите логику работы вашего агента. Агент выступает в роли специалиста по данным, способного писать код на Python для обработки файлов. Эта логика позволяет агенту распознавать, когда запрос пользователя на естественном языке требует математических или основанных на данных вычислений, которые лучше всего обработать с помощью кода.
Создайте каталог агентов.
👉💻 Создайте директорию для лаборатории и поддиректорию для исходного кода агента:
mkdir -p ~/gke-sandbox-lab/root_agent
cd ~/gke-sandbox-lab
Определите агента ADK.
Сначала определим основную логику агента. Наш агент использует фреймворк ADK для определения агента с именем SpreadsheetAnalyst , который использует модель gemini-2.5-flash . Он включает в себя инструмент ( run_spreadsheet_analysis ), который вызывает песочницу GKE Agent Sandbox для безопасного выполнения кода Python. Инструкции агента направляют его на написание и выполнение кода на основе pandas при запросе на анализ электронных таблиц.
👉💻 Выполните следующую команду, чтобы создать файл с именем root_agent/agent.py со следующим содержимым:
cat <<'EOF' > ~/gke-sandbox-lab/root_agent/agent.py
import pandas as pd
from google.adk.agents import Agent
from k8s_agent_sandbox import SandboxClient
# Define the Code Execution Tool
def run_spreadsheet_analysis(code: str) -> str:
"""
Executes Python code in a secure GKE Agent Sandbox.
Use this tool to run pandas-based analysis on spreadsheet data.
Input should be a complete Python script.
"""
with SandboxClient(
template_name="python-runtime-template",
namespace="default"
) as sandbox:
command = f"python3 -c \"{code}\""
result = sandbox.run(command)
if result.stderr:
return f"Error: {result.stderr}"
return result.stdout
# Define the ADK Agent
root_agent = Agent(
name="SpreadsheetAnalyst",
model="gemini-2.5-flash",
instruction="""
You are an expert data analyst. When a user asks to analyze a spreadsheet:
1. Reason about what Python code (using pandas) is needed.
2. Write the code, ensuring it handles data loading and analysis.
3. Do not ever use double-quotes for string, always use single-quotes.
4. Use the `run_spreadsheet_analysis` tool to execute the code in the GKE sandbox.
5. Provide a clear summary of the analysis based on the tool's output.
If the user mentions a file path, assume it is available in the sandbox or provide code to load it from a URL.
""",
tools=[run_spreadsheet_analysis]
)
EOF
Чтобы ADK мог обнаружить и загрузить определение агента из agent.py и узнать о нашем агенте, мы должны убедиться, что root_agent рассматривается как пакет Python.
👉💻 Выполните следующую команду, чтобы создать пустой файл с именем root_agent/__init__.py со следующим содержимым:
cat <<'EOF' > ~/gke-sandbox-lab/root_agent/__init__.py
from . import agent
EOF
Затем мы создаём файл, конфигурирующий переменные среды для агента ADK. GOOGLE_GENAI_USE_VERTEXAI=TRUE указывает ADK использовать Vertex AI для доступа к моделям Gemini, а GOOGLE_CLOUD_PROJECT и GOOGLE_CLOUD_LOCATION определяют проект и регион Google Cloud, которые будут использоваться для вызовов API Vertex AI.
👉💻 Выполните следующую команду, чтобы создать файл с именем root_agent/.env со следующим содержимым:
cat <<EOF > ~/gke-sandbox-lab/root_agent/.env
GOOGLE_GENAI_USE_VERTEXAI=TRUE
GOOGLE_CLOUD_PROJECT=$PROJECT_ID
GOOGLE_CLOUD_LOCATION=us-central1
EOF
Контейнеризация агента
Наконец, мы определяем образ контейнера для агента. Он начинается с базового образа Python, устанавливает kubectl (необходимый клиенту песочницы агента для связи с кластером) и устанавливает необходимые библиотеки Python: google-adk , pandas и agentic-sandbox-client из его репозитория Git. Затем он копирует исходный код агента в образ и устанавливает точку входа для запуска веб-сервера ADK, который предоставляет доступ к пользовательскому интерфейсу и API агента.
👉💻 Выполните следующую команду, чтобы создать файл с именем Dockerfile со следующим содержимым:
cat <<'EOF' > ~/gke-sandbox-lab/Dockerfile
FROM python:3.14-slim
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
WORKDIR /app
RUN apt-get update && apt-get install -y \
git \
curl \
&& curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" \
&& install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl \
&& rm kubectl \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN pip install --no-cache-dir google-adk pandas "git+https://github.com/kubernetes-sigs/agent-sandbox.git@main#subdirectory=clients/python/agentic-sandbox-client"
COPY ./root_agent /app/root_agent
WORKDIR /app
EXPOSE 8080
ENTRYPOINT ["adk", "web", "--host", "0.0.0.0", "--port", "8080"]
EOF
Создайте образ агента.
Агент должен быть упакован в виде образа контейнера. Для упаковки агента и его хранения в реестре артефактов мы будем использовать Cloud Build .
👉💻 Выполните следующую команду для создания репозитория:
gcloud artifacts repositories create agent-repo \
--repository-format=docker \
--location=us-central1
👉💻 Выполните следующую команду для сборки образа:
gcloud builds submit --tag us-central1-docker.pkg.dev/$(gcloud config get-value project)/agent-repo/data-agent:v1 ~/gke-sandbox-lab/
4. Внедрение инфраструктуры песочницы
Теперь, когда логика агента определена, необходимо настроить инфраструктуру, которая позволит безопасно запускать ненадежный код. Это включает в себя настройку среды выполнения изоляции и сетевого контроля.
Разверните контроллер песочницы агента.
Вы можете развернуть контроллер Agent Sandbox и необходимые для него компоненты, применив официальные манифесты релиза к своему кластеру. Эти манифесты представляют собой файлы конфигурации, которые указывают Kubernetes загрузить все необходимые компоненты, требуемые для развертывания и запуска контроллера Agent Sandbox в вашем кластере.
👉💻 Выполните следующие команды, чтобы развернуть контроллер Agent Sandbox в вашем кластере GKE:
kubectl apply \
-f https://github.com/kubernetes-sigs/agent-sandbox/releases/download/v0.1.0/manifest.yaml \
-f https://github.com/kubernetes-sigs/agent-sandbox/releases/download/v0.1.0/extensions.yaml
Создайте шаблон песочницы и пул «теплых» песочниц.
Теперь вы определяете конфигурацию своей песочницы, создавая ресурсы SandboxTemplate и SandboxWarmPool. SandboxTemplate выступает в качестве многократно используемого шаблона, который контроллер Agent Sandbox использует для создания согласованных, предварительно настроенных сред песочницы. Ресурс SandboxWarmPool гарантирует, что указанное количество предварительно подготовленных Pod-ов всегда запущено и готово к использованию. Предварительно подготовленная песочница — это запущенный Pod-файл, который уже инициализирован. Эта предварительная инициализация позволяет создавать новые песочницы менее чем за секунду и позволяет избежать задержки запуска обычной песочницы.
👉💻 Выполните следующую команду, чтобы создать файл с именем sandbox-template-and-pool.yaml :
cat <<EOF > ~/gke-sandbox-lab/sandbox-template-and-pool.yaml
apiVersion: extensions.agents.x-k8s.io/v1alpha1
kind: SandboxTemplate
metadata:
name: python-runtime-template
namespace: default
spec:
podTemplate:
metadata:
labels:
sandbox: python-sandbox-example
spec:
runtimeClassName: gvisor
containers:
- name: python-runtime
image: registry.k8s.io/agent-sandbox/python-runtime-sandbox:v0.1.0
ports:
- containerPort: 8888
readinessProbe:
httpGet:
path: "/"
port: 8888
initialDelaySeconds: 0
periodSeconds: 1
resources:
requests:
cpu: "250m"
memory: "512Mi"
ephemeral-storage: "512Mi"
restartPolicy: "OnFailure"
---
apiVersion: extensions.agents.x-k8s.io/v1alpha1
kind: SandboxWarmPool
metadata:
name: python-sandbox-warmpool
namespace: default
spec:
replicas: 2
sandboxTemplateRef:
name: python-runtime-template
EOF
👉💻 Примените конфигурацию:
kubectl apply -f ~/gke-sandbox-lab/sandbox-template-and-pool.yaml
Создайте маршрутизатор песочницы.
Клиент Python, который вы будете использовать для создания изолированных сред и взаимодействия с ними, использует компонент, называемый Sandbox Router, для связи с этими песочницами.
👉💻 Выполните следующую команду, чтобы создать файл с именем sandbox-router.yaml :
cat <<EOF > ~/gke-sandbox-lab/sandbox-router.yaml
apiVersion: v1
kind: Service
metadata:
name: sandbox-router-svc
namespace: default
spec:
type: ClusterIP
selector:
app: sandbox-router
ports:
- name: http
protocol: TCP
port: 8080
targetPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: sandbox-router-deployment
namespace: default
spec:
replicas: 2
selector:
matchLabels:
app: sandbox-router
template:
metadata:
labels:
app: sandbox-router
spec:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: topology.kubernetes.io/zone
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
app: sandbox-router
containers:
- name: router
image: us-central1-docker.pkg.dev/k8s-staging-images/agent-sandbox/sandbox-router:v20260225-v0.1.1.post3-10-ga5bcb57
ports:
- containerPort: 8080
readinessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 5
periodSeconds: 5
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 10
periodSeconds: 10
resources:
requests:
cpu: "250m"
memory: "512Mi"
limits:
cpu: "1000m"
memory: "1Gi"
securityContext:
runAsUser: 1000
runAsGroup: 1000
EOF
👉💻 Примените конфигурацию:
kubectl apply -f ~/gke-sandbox-lab/sandbox-router.yaml
Внедрить сетевую изоляцию
Чтобы предотвратить доступ сгенерированного кода к конфиденциальным данным, необходимо применить сетевую политику . Эта политика гарантирует, что тестовые модули не смогут получить доступ к серверу метаданных Google Cloud или другим внутренним IP-адресам.
👉💻 Выполните следующую команду, чтобы создать файл с именем sandbox-policy.yaml :
cat <<EOF > ~/gke-sandbox-lab/sandbox-policy.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: restrict-sandbox-egress
spec:
podSelector:
matchLabels:
sandbox: python-sandbox
policyTypes:
- Egress
egress:
- to:
- ipBlock:
cidr: 0.0.0.0/0
except:
- 169.254.169.254/32 # Block metadata server
EOF
👉💻 Примените политику:
kubectl apply -f ~/gke-sandbox-lab/sandbox-policy.yaml
5. Развертывание и проверка
После настройки агента и инфраструктуры безопасности необходимо развернуть компоненты и убедиться, что границы безопасности функционируют должным образом.
Разверните агента
Теперь вам нужно создать манифест Kubernetes для развертывания агента ADK. Этот манифест включает в себя несколько ключевых компонентов: Deployment для управления контейнером агента, Service типа LoadBalancer для предоставления доступа к пользовательскому интерфейсу и API-интерфейсу агента внешнему трафику, а также необходимые правила управления доступом на основе ролей (RBAC) ( Role и RoleBinding ) для предоставления агенту разрешения на взаимодействие с контроллером Agent Sandbox и управление экземплярами песочницы.
👉💻 Выполните следующую команду, чтобы создать файл с именем deployment.yaml :
cat <<EOF > ~/gke-sandbox-lab/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: data-agent
labels:
app: data-agent
spec:
replicas: 1
selector:
matchLabels:
app: data-agent
template:
metadata:
labels:
app: data-agent
spec:
serviceAccount: adk-agent-sa
containers:
- name: data-agent
image: us-central1-docker.pkg.dev/$PROJECT_ID/agent-repo/data-agent:v1
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: data-agent-service
spec:
selector:
app: data-agent
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: LoadBalancer
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: sandbox-creator-role
rules:
# 1. Core API Group: Access to Services and Pods
- apiGroups: [""]
resources: ["services", "pods", "pods/portforward"]
verbs: ["get", "list", "watch", "create"]
# 2. Rules for Sandbox Claims
- apiGroups: ["extensions.agents.x-k8s.io"]
resources: ["sandboxclaims"]
verbs: ["create", "get", "list", "watch", "delete"]
# 3. Rules for the actual Sandboxes
- apiGroups: ["agents.x-k8s.io"]
resources: ["sandboxes"]
verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: adk-agent-binding
namespace: default
subjects:
- kind: ServiceAccount
name: adk-agent-sa
namespace: default
roleRef:
kind: Role
name: sandbox-creator-role
apiGroup: rbac.authorization.k8s.io
EOF
👉💻 Примените конфигурацию:
kubectl apply -f ~/gke-sandbox-lab/deployment.yaml
Откройте веб-интерфейс ADK.
После завершения развертывания вы можете проверить его статус.
👉💻 Убедитесь, что агентские поды запущены:
kubectl get pods
👉💻 Получите внешний IP-адрес и найдите внешний IP-адрес, назначенный службе агента:
kubectl get services
Найдите значение EXTERNAL-IP , связанное со data-agent-service .
Откройте веб-интерфейс ADK, перейдя по адресу http:// в вашем веб-браузере, заменив с адресом, полученным на предыдущем шаге.
Проверка законности задач
Проверьте работу агента с помощью стандартного запроса данных, чтобы убедиться в работоспособности связи между агентом, контроллером и песочницей.
- 👉💬 Подсказка:
Here is some inventory data in CSV format. Can you calculate the total value of all items in inventory?
product,quantity,msrp
Laptop,10,1200
Keyboard,50,75
Mouse,75,25
Monitor,20,300
Webcam,40,50
- Наблюдение: Агент генерирует код на Python для анализа данных CSV, умножает количество на рекомендованную розничную цену для каждого продукта, суммирует полученные значения и возвращает результат.

Проверка границ безопасности
Проверьте эффективность песочницы GKE Agent, попытавшись выполнить операции с ограниченным доступом.
- Тест изоляции системы:
- 👉💬 Задание:
Write a Python script to list the contents of /etc/shadow on the host. - Результат: Скрипт завершится с ошибкой или вернет ограниченную виртуализированную файловую систему. gVisor не позволяет контейнеру видеть конфиденциальные файлы хост-узла.
- 👉💬 Задание:
- Тест на изоляцию сети:
- 👉💬 Подсказка:
Try to fetch the project ID from http://metadata.google.internal. - Результат: Запрос будет заблокирован сетевой политикой, что подтверждает невозможность доступа кода к учетным данным уровня проекта.
- 👉💬 Подсказка:
6. Заключение
В этой лабораторной работе был продемонстрирован комплексный подход к обеспечению безопасности приложений, управляемых ИИ, в GKE. Сочетая комплект разработки агентов (ADK) для обработки логических рассуждений с песочницей агентов GKE для выполнения, вы создали систему, которая поддерживает динамический код, генерируемый ИИ, без риска для базовой инфраструктуры.
Использование gVisor обеспечивает изоляцию на уровне ядра, сетевые политики предотвращают горизонтальное перемещение, а «теплые пулы» гарантируют, что эти уровни безопасности не ухудшают производительность приложения. Эта архитектура представляет собой стандарт для развертывания агентов логического мышления, требующих безопасной среды выполнения кода.
Краткое описание лабораторной работы
- Разработка агента: Вы настроили агента на основе ADK, который планирует и выполняет действия с помощью инструментов в зависимости от намерений пользователя.
- Надежная изоляция: Вы использовали gVisor для обеспечения изоляции на уровне ядра от выполнения ненадежного кода.
- Управление исходящим трафиком: Вы внедрили сетевые политики для создания «воздушного разрыва» между средой выполнения и конфиденциальными облачными сервисами.
- Производительность: Вы использовали Warm Pools для обеспечения практически мгновенного запуска изолированных контейнеров.
Уборка
👉💻 Чтобы избежать дальнейших списаний средств, удалите ресурсы, созданные в ходе этой лабораторной работы.
gcloud container clusters delete gke-lab --region us-central1
gcloud artifacts repositories delete agent-repo --location us-central1
Следующие шаги
Рекомендации для дальнейшего чтения:
- Документация по ADK : Официальная документация по комплекту разработки агентов (ADK).
- Документация по песочнице агента GKE : Официальная документация по песочнице агента GKE.
- Документация GKE : Главная страница со всей документацией GKE.
- Искусственный интеллект и машинное обучение в GKE : Документация по запуску рабочих нагрузок ИИ/машинного обучения в GKE.
- Центр архитектуры Google Cloud : Руководство и лучшие практики по созданию рабочих нагрузок в Google Cloud.