Развертывание защищенных агентов ИИ на GKE

1. Введение

Эта лабораторная работа посвящена разработке и обеспечению безопасности агентов искусственного интеллекта, выполняющих динамический код в производственной среде. По мере того, как приложения ИИ выходят за рамки простых чат-интерфейсов, им часто требуется возможность выполнять сложную логику — такую ​​как анализ данных, математическое моделирование или обработка файлов — путем генерации и выполнения кода в режиме реального времени. В этой лабораторной работе демонстрируется, как использовать комплект разработки агентов (ADK) для создания агентов, способных к рассуждениям, и песочницу агентов GKE для обеспечения выполнения любого кода, сгенерированного ИИ, в высокоизолированной и безопасной среде.

Технические сложности, связанные с ненадежным кодом.

Когда агент ИИ генерирует и выполняет код (например, Python), он, по сути, запускает ненадежную рабочую нагрузку на вашей инфраструктуре. Если агент скомпрометирован или получит указание выполнить вредоносные действия, он может попытаться получить доступ к конфиденциальным переменным среды, просканировать вашу внутреннюю сеть или использовать уязвимости базового хост-узла. Традиционная изоляция контейнеров часто недостаточна для таких динамических рабочих нагрузок. Для решения этой проблемы инженеры платформы должны внедрить многоуровневую безопасность, включающую изоляцию на уровне ядра и ограничение исходящего сетевого трафика.

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

  • Комплект разработки агентов (ADK): ADK — это фреймворк, используемый для создания приложений, способных анализировать задачи. Он управляет «циклом анализа», в котором ИИ получает запрос, планирует последовательность действий, вызывает определенные инструменты, а затем подводит итоговый результат. В этом рабочем процессе ADK выступает в роли координатора, определяющего, когда запрос пользователя требует выполнения кода.
  • Песочница агента GKE: Эта функция безопасности использует gVisor , среду выполнения контейнеров с открытым исходным кодом, которая предоставляет специализированное гостевое ядро ​​для каждого контейнера. Перехватывая системные вызовы (syscalls) между приложением и ядром хоста, песочница агента GKE предотвращает прямое взаимодействие ненадежного кода с узлом. Это гарантирует, что нарушение безопасности внутри контейнера не сможет распространиться на остальную часть кластера.
  • Протокол контекста модели (MCP) и инструменты: Этот протокол устанавливает стандартный способ взаимодействия моделей ИИ с внешними инструментами. В этой лабораторной работе агент настраивается с помощью инструмента «Выполнение кода», который взаимодействует со специализированным контроллером песочницы для запуска скриптов Python.

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

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

  1. Разработка агента: Настройте агента на основе ADK, предназначенного для задач анализа данных.
  2. Настройка изоляции ядра: Настройка песочницы агента GKE со специализированными классами среды выполнения (RuntimeClasses).
  3. Оптимизация производительности: Внедрите «пул теплых» песочниц, чтобы минимизировать время, затрачиваемое на запуск новых сред выполнения.
  4. Обеспечение соблюдения границ безопасности: применение сетевых политик для предотвращения несанкционированного выхода из среды выполнения.

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

Перед началом разработки агентных приложений крайне важно правильно настроить среду. В этом разделе вы получите доступ к необходимым инструментам и убедитесь, что ваш проект Google Cloud готов к размещению как агента ИИ, так и его безопасной среды выполнения.

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

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

  1. Перейдите в консоль Google Cloud .
  2. Нажмите кнопку «Активировать Cloud Shell» в правом верхнем углу заголовка (значок >_ ).
  3. После того, как в нижней части браузера откроется окно терминала, при появлении соответствующего запроса нажмите «Продолжить» .

Выберите проект

Необходимо убедиться, что ваша оболочка указывает на правильный проект 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, попытавшись выполнить операции с ограниченным доступом.

  1. Тест изоляции системы:
    • 👉💬 Задание: Write a Python script to list the contents of /etc/shadow on the host.
    • Результат: Скрипт завершится с ошибкой или вернет ограниченную виртуализированную файловую систему. gVisor не позволяет контейнеру видеть конфиденциальные файлы хост-узла.
  2. Тест на изоляцию сети:
    • 👉💬 Подсказка: 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

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

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