رفتن به محتوای اصلی

Pedram Sarani

یادداشت‌های SRE و DevOps

بازگشت به نکته‌های سریع

نکته‌های سریع

Istio 1.30 و agentgateway؛ Gateway برای ترافیک AI Agent

در Istio 1.30 قابلیت آزمایشی agentgateway اضافه شده است؛ یک data plane جدید برای Gateway API که مسیر ترافیک AI Agent، ارتباط با LLM، اتصال به MCP و ارتباط Agent-to-Agent را کنترل می‌کند.

#istio #gateway-api #agentgateway #ai-agent #service-mesh

در Istio 1.30 یک قابلیت مهم و البته جالب آزمایشی اضافه شده است: پشتیبانی از agentgateway به عنوان یک پیاده‌سازی جدید برای Gateway API.

ایده اصلی ساده است. تا امروز در Istio معمولاً Gateway را با Envoy می‌شناختیم؛ اما agentgateway قرار است یک data plane جدید برای نوع تازه‌ای از ترافیک باشد: ترافیک AI Agent، ارتباط با LLM، اتصال به MCP و حتی ارتباط Agent-to-Agent.

البته باید بین خود agentgateway و اتصال اولیه آن به Istio فرق گذاشت. خود agentgateway برای ترافیک LLM، ارتباط MCP و سناریوهای A2A طراحی شده، اما استفاده از آن داخل Istio 1.30 هنوز experimental است و طبیعی است که کامل و نهایی حساب نشود.

دلیل این دیتاپلین تازه فقط طولانی‌تر بودن بعضی ارتباط‌ها نیست؛ خود جنس ترافیک هم عوض شده است. در APIهای رایج، معمولاً یک درخواست می‌آید و یک پاسخ برمی‌گردد. اما در ارتباط‌هایی مثل MCP و A2A ماجرا می‌تواند فرق کند: session طولانی‌تر داریم، پیام‌ها می‌توانند بر پایه JSON-RPC باشند، و حتی خود server ممکن است پیام جدیدی را شروع کند؛ برای نمونه از مسیر SSE. از طرف دیگر، Envoy با چیزهایی مثل streaming غریبه نیست، اما برای فهم مستقیم مفاهیمی مثل درخواست اجرای tool، پیام‌های agent و مسیر‌دهی مخصوص مدل‌های LLM ساخته نشده است. اینجاست که agentgateway می‌خواهد نقش یک دیتاپلین آگاه‌تر به ترافیک هوش مصنوعی را بازی کند.

نکته مهم دیگه این است که agentgateway فعلاً جایگزین Envoy در کل mesh نیست. در Istio 1.30 این قابلیت فقط برای گیت‌وی ساخته‌شده با Gateway API پشتیبانی می‌شود، نه برای sidecar و نه برای waypoint. یعنی وقتی فعال شود، روی همان پاد Gateway جای Envoy را می‌گیرد؛ پاد گیت وی به‌جای Envoy حالا agentgateway را به عنوان data plane اجرا می‌کند و از یک GatewayClass جداگانه به نام istio-agentgateway استفاده می‌کند. این جایگزینی فقط روی پاد Gateway رخ می‌دهد، نه در کل mesh.

برای فعال‌کردن این قابلیت، باید PILOT_ENABLE_AGENTGATEWAY=true را در تنظیمات istiod فعال کنیم. یعنی باید هنگام نصب یا به‌روزرسانی Istio، از مسیر Helm یا istioctl روی تنظیمات خود Istio اعمال شود.(بسته به مدل نصب)

نمونه manifest در بخش «مثال» انتهای صفحه آمده است. در آن manifest، ترافیک مسیر /agents از یک Gateway عبور می‌کند؛ همان گیت‌وی با مقدار gatewayClassName: istio-agentgateway به agentgateway وصل شده است. بعد از آن، ترافیک به سرویس داخلی agent-api می‌رسد. خود manifest قرار نیست کل agentgateway را نصب کند؛ فقط نشان می‌دهد مسیر ترافیک از مسیر استاندارد Gateway API کنترل می‌شود.

Istio 1.30 agentgateway

خلاصه این تغییر: Istio گیت وی را فقط به عنوان ورودی سرویس‌های کلاسیک نمی‌بیند؛ بلکه آن را به نقطه کنترل ترافیک AI-native هم نزدیک می‌کند. البته چون این قابلیت در Istio 1.30 هنوز experimental است، بهتر است فعلاً آن را برای بررسی، تست و آماده‌سازی ذهنی ببینیم، نه برای تصمیم فوری در production.

مثال

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: ai-agent-gateway
  namespace: ai
spec:
  gatewayClassName: istio-agentgateway
  listeners:
    - name: http
      port: 80
      protocol: HTTP
      allowedRoutes:
        namespaces:
          from: Same
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: ai-agent-route
  namespace: ai
spec:
  parentRefs:
    - name: ai-agent-gateway
  rules:
    - matches:
        - path:
            type: PathPrefix
            value: /agents
      backendRefs:
        - name: agent-api
          port: 8080

محدودیت‌ها

  • این قابلیت در Istio 1.30 هنوز experimental است.
  • فعلاً جایگزین Envoy در کل mesh نیست.
  • فقط برای گیت‌وی ساخته‌شده با Gateway API مطرح است، نه sidecar و نه waypoint.
  • قبل از استفاده باید feature flag مربوط به agentgateway روی istiod فعال شود.

منابع و مطالعهٔ بیشتر

  1. Announcing Istio 1.30.0مستندات رسمی

    Istioistio.ioبازبینی: ۴ تیر ۱۴۰۵

    اعلام رسمی پشتیبانی experimental از agentgateway در Istio 1.30، فعال‌سازی با PILOT_ENABLE_AGENTGATEWAY، جایگزینی Envoy روی Gateway Pod، استفاده از GatewayClass با نام istio-agentgateway و محدود بودن آن به گیت‌وی ساخته‌شده با Gateway API.

  2. agentgateway Documentationمستندات رسمی

    agentgatewayagentgateway.devبازبینی: ۴ تیر ۱۴۰۵

    مستندات رسمی agentgateway برای gateway ترافیک service، LLM و MCP.