NEW: UNIFY AI AGENT SPEND, SECURITY & GOVERNANCE IN ONE PLACE KONG JOINS SERVICENOW CONTROL TOWER ALLIANCE GET THE API + AI SUMMIT 2026 RECAP GARTNER® NAMES KONG A LEADER FOR 7TH YEAR KONG NAMED A LEADER IN FORRESTER WAVE: API MANAGEMENT SOFTWARE
  • [Why Kong ](/company/why-kong)Why Kong
  • _API & AI CONNECTIVITY TECHNOLOGIES_
    The AI Connectivity Platform
    []
    API ManagementAI ManagementEvent ManagementMonetization
    Migration Services
    API Advisory Services + Forward Deployed EngineersNEW
    • RUNTIMES
    • [API Gateway ](/products/kong-gateway)API Gateway
    • [AI Gateway HOT](/products/kong-ai-gateway)AI Gateway HOT
    • [Event Gateway ](/products/event-gateway)Event Gateway
    • [Service Mesh ](/products/kong-mesh)Service Mesh
    • [Context Mesh ](/products/kong-konnect/features/context-mesh)Context Mesh
    • [Kong Operator ](/products/kong-operator)Kong Operator
    • [Webhook Engine ](/products/kong-webhook-engine)Webhook Engine
    • CORE SERVICES
    • [AI Registry NEW](/products/mcp-registry)AI Registry NEW
    • [Catalog ](/products/kong-konnect/features/api-service-catalog)Catalog
    • [APIOps & Automation ](/products/apiops-automation)APIOps & Automation
    • APPS & AI AGENTS
    • [Developer Portal ](/products/kong-konnect/features/developer-portal)Developer Portal
    • [Usage Billing & Metering ](/products/kong-konnect/features/usage-based-metering-and-billing)Usage Billing & Metering
    • [Observability ](/products/kong-konnect/features/api-observability)Observability
    • [KAi Agent ](/products/kong-konnect/features/kai-ai-agent)KAi Agent
    • [Identity & Access ](/products/governance-and-identity)Identity & Access
    • [AI Cost Management ](/products/ai-cost-management)AI Cost Management
    DEVELOPER TOOLS
    [Insomnia ](https://insomnia.rest/)Insomnia [Plugins ](https://developer.konghq.com/plugins/)Plugins [Volcano ](https://volcano.dev/)Volcano [Kong MCP ](https://developer.konghq.com/konnect-platform/konnect-mcp/)Kong MCP [Documentation ](https://docs.konghq.com/)Documentation [Open Source ](/community)Open Source
      • FOR PLATFORM TEAMS
      • [Developer Platform ](/solutions/building-developer-platform)Developer Platform
      • [Kubernetes and Microservices ](/solutions/build-on-kubernetes)Kubernetes and Microservices
      • [Observability ](/solutions/observability)Observability
      • [Service Mesh Connectivity ](/solutions/service-mesh-connectivity)Service Mesh Connectivity
      • [Kafka Event Streaming ](/solutions/kafka-stream-api-management)Kafka Event Streaming
      • FOR EXECUTIVES
      • [Open Banking ](/solutions/open-banking)Open Banking
      • [Legacy Migration ](/solutions/legacy-api-management-migration)Legacy Migration
      • [Platform Cost Reduction ](/solutions/api-platform-consolidation)Platform Cost Reduction
      • [Kafka Cost Optimization ](/solutions/reduce-kafka-cost)Kafka Cost Optimization
      • [API Monetization ](/solutions/api-monetization)API Monetization
      • [AI Monetization ](/solutions/ai-monetization)AI Monetization
      • FOR AI TEAMS
      • [AI-Native API Management ](/solutions/ai-native)AI-Native API Management
      • [Agent Gateway ](/agent-gateway)Agent Gateway
      • [Trigger Agents from Events ](/solutions/event-driven-ai-agents)Trigger Agents from Events
      • [AI Governance ](/solutions/ai-governance)AI Governance
      • [AI Security ](/solutions/ai-security)AI Security
      • [Token Cost Management ](/solutions/ai-cost-optimization-management)Token Cost Management
      • [Agentic Infrastructure ](/solutions/agentic-ai-workflows)Agentic Infrastructure
      • [MCP Production ](/solutions/mcp-production-and-consumption)MCP Production
      • [MCP Traffic Gateway ](/solutions/mcp-governance)MCP Traffic Gateway
      • FOR DEVELOPERS
      • [Mobile App API Development ](/solutions/mobile-application-api-development)Mobile App API Development
      • [GenAI App Development ](/solutions/power-openai-applications)GenAI App Development
      • [API Gateway for Istio ](/solutions/istio-gateway)API Gateway for Istio
      • [Decentralized Load Balancing ](/solutions/decentralized-load-balancing)Decentralized Load Balancing
      • BY INDUSTRY
      • [Financial Services ](/solutions/financial-services-industry)Financial Services
      • [Healthcare ](/solutions/healthcare)Healthcare
      • [Higher Education ](/solutions/api-platform-for-education-services)Higher Education
      • [Insurance ](/solutions/insurance)Insurance
      • [Manufacturing ](/solutions/manufacturing)Manufacturing
      • [Retail ](/solutions/retail)Retail
      • [Software & Technology ](/solutions/software-and-technology)Software & Technology
      • [Transportation ](/solutions/transportation-and-logistics)Transportation
    NEW
    Kong for Startups
    Apply for $100k credits & 50% off AI Gateway
  • [Pricing ](/pricing)Pricing
      • DOCUMENTATION
      • [Kong Konnect ](https://developer.konghq.com/konnect/)Kong Konnect
      • [Kong Gateway ](https://developer.konghq.com/gateway/)Kong Gateway
      • [Kong Mesh ](https://developer.konghq.com/mesh/)Kong Mesh
      • [Kong AI Gateway ](https://developer.konghq.com/ai-gateway/)Kong AI Gateway
      • [Kong Event Gateway ](https://developer.konghq.com/event-gateway/)Kong Event Gateway
      • [Kong Insomnia ](https://developer.konghq.com/insomnia/)Kong Insomnia
      • [Plugin Hub ](https://developer.konghq.com/plugins/)Plugin Hub
      • EXPLORE
      • [Blog ](/blog)Blog
      • [Customer Stories ](/customer-stories)Customer Stories
      • [Learning Center ](/blog/learning-center)Learning Center
      • [eBooks ](/resources/e-book)eBooks
      • [Reports ](/resources/reports)Reports
      • [Demos ](/resources/demos)Demos
      • [Videos ](/resources/videos)Videos
      • EVENTS
      • [API + AI Summit ](/events/conferences/api-ai-summit)API + AI Summit
      • [Webinars ](/events/webinars)Webinars
      • [User Calls ](/events/user-calls)User Calls
      • [Workshops ](/events/workshops)Workshops
      • [Meetups ](/events/meetups)Meetups
      • [See All Events ](/events)See All Events
      • FOR DEVELOPERS
      • [Engineering Blog ](/blog/engineering )Engineering Blog
      • [Get Started ](https://developer.konghq.com/)Get Started
      • [Community ](/community)Community
      • [Certification ](/academy/certification)Certification
      • [Training ](https://education.konghq.com)Training
      • COMPANY
      • [About Us ](/company)About Us
      • [We're Hiring! ](/company/careers)We're Hiring!
      • [Press Room ](/company/press-room)Press Room
      • [Contact Us ](/company/contact-us)Contact Us
      • [Kong Partner Program ](/partners)Kong Partner Program
      • [Enterprise Support Portal ](https://support.konghq.com/s/)Enterprise Support Portal
      • [Documentation ](https://developer.konghq.com)Documentation
  • [](/search)
  • [Login](https://cloud.konghq.com/login)Login
  • [Book Demo](/contact-sales)Book Demo
  • [Get Started](/products/kong-konnect/register)Get Started
[Blog](/blog)Blog
  • [AI Gateway ](/blog/tag/ai-gateway)AI Gateway
  • [AI Security ](/blog/tag/ai-security)AI Security
  • [AIOps ](/blog/tag/aiops)AIOps
  • [API Security ](/blog/tag/api-security)API Security
  • [API Gateway ](/blog/tag/api-gateway)API Gateway
|
    • [API Management ](/blog/tag/api-management)API Management
    • [API Development ](/blog/tag/api-development)API Development
    • [API Design ](/blog/tag/api-design)API Design
    • [Automation ](/blog/tag/automation)Automation
    • [Service Mesh ](/blog/tag/service-mesh)Service Mesh
    • [Insomnia ](/blog/tag/insomnia)Insomnia
    • [Event Gateway ](/blog/tag/event-gateway)Event Gateway
    • [View All Blogs ](/blog/page/1)View All Blogs
We're Entering the Age of AI Connectivity [Read more](/blog/news/the-age-of-ai-connectivity)Read moreProducts & Agents:
    • [Kong AI Gateway](/products/kong-ai-gateway)Kong AI Gateway
    • [Kong API Gateway](/products/kong-gateway)Kong API Gateway
    • [Kong Event Gateway](/products/event-gateway)Kong Event Gateway
    • [Kong Metering & Billing](/products/kong-konnect/features/usage-based-metering-and-billing)Kong Metering & Billing
    • [Kong Insomnia](/products/kong-insomnia)Kong Insomnia
    • [Kong Konnect](/products/kong-konnect)Kong Konnect
  • [Documentation](https://developer.konghq.com)Documentation
  • [Book Demo](/contact-sales)Book Demo
  1. Home
  2. Blog
  3. Educational
  4. Self-Hosting LLMs on Kubernetes: Securing llm-d and vLLM with Kong AI Gateway (Part 1)
[Kong Gateway](/blog/tag/kong-gateway)Kong Gateway
November 5, 2026
15 min read

# Self-Hosting LLMs on Kubernetes: Securing llm-d and vLLM with Kong AI Gateway (Part 1)

Claudio Acquaviva
Principal Architect, Kong
Wanny Morellato
VP, Security, Kong

[llm-d](https://llm-d.ai)llm-d is an open-source, Kubernetes-native framework for serving large language models at scale. It doesn't run models itself. It sits in front of inference engines such as [vLLM](https://vllm.ai/)vLLM, another open-source, high-throughput serving engine, and decides how requests are spread across them.

Teams taking a self-hosted LLM to production usually start with a managed model API. They call a hosted model from OpenAI, Anthropic or a cloud provider over HTTP and pay per token. When evaluating self-hosted LLM vs managed OpenAI cost trade-offs, the managed route means there are no GPUs to provision and no servers to run. With low or unpredictable traffic, it is usually the cheaper option, because you never pay for idle hardware.

The alternative is to self-host an open-weight model on your own GPUs, in your data center or your cloud account. Open-weight models are now a real option for production work: Z.ai's GLM, Moonshot AI's Kimi and NVIDIA's Nemotron families publish their weights and are built for coding, reasoning and agentic tasks. Compared with a managed API, this is the trade:

  • What you gain: control over the whole stack. Prompts and data stay in your environment, there are no provider rate limits, and you decide how inference runs. You can route requests to the GPU that already holds their cache, split prefill and decode into separate pools, or serve many fine-tuned LoRA adapters on one base model. Furthermore, when comparing vLLM vs OpenAI API latency, self-hosting eliminates unpredictable network hops and provider-side queueing, offering consistent performance dictated entirely by your own hardware's KV-cache reuse.
  • What you give up: simplicity, and the protections a provider gives you. You operate the GPUs, the serving engine and the scheduling. The GPUs cost the same whether traffic arrives or not, so how busy you keep them decides your cost per token. And the endpoint comes with no API keys, rate limits or usage reporting.

llm-d and Kong AI Gateway each address one part of what you give up. When the GPUs are yours, every request that lands on the wrong one wastes money. llm-d makes self-hosted inference efficient by routing each request based on what every vLLM instance is doing. Kong AI Gateway adds back the API keys, rate limits and usage reporting a managed API would have provided.

llm-d's main use cases are about getting the most out of those GPUs:

  • Prefix-cache-aware routing: each vLLM replica keeps a KV cache, the keys and values it computed for the prompts it has seen, and reuses it when a new request starts with the same text. A plain Kubernetes Service sends requests to any replica, so a repeated system prompt or conversation history is computed again on each one. llm-d's router estimates which replica already holds a request's prefix and sends it there, falling back to the least loaded replica when that one is busy. Part 2 runs this as llm-d's optimized baseline.
  • Prefill/decode disaggregation: reading the prompt (prefill) is limited by compute, while generating tokens one at a time (decode) is limited by memory bandwidth. llm-d can run the two phases in separate pods and move the KV cache from one to the other, so each pool is sized for its own work and long prompts don't stall token generation. Part 2 runs it on the four GPUs of one node.
  • LoRA adapters: a LoRA adapter is a small set of extra weights that specializes a base model for one task. vLLM serves adapters on top of a single copy of the base model, and llm-d's router prefers the replicas where the requested adapter is already loaded. Part 2 serves one adapter, exposed through Kong as its own model alias.

llm-d covers more than this series does. For example, wide expert parallelism spreads a large Mixture-of-Experts model, too big for one server, across the GPUs of several nodes.

This blog post is the first of a two-part series:

  • Part 1 (this post) describes how llm-d, vLLM and Kong AI Gateway work together. It covers the llm-d architecture and the role each layer plays, then builds the stack on Amazon EKS: vLLM serving Llama 3.2 3B, an llm-d router in front of it, and Kong AI Gateway 2.3 exposing the model with per-application API keys and a per-consumer token rate limit.
  • Part 2 uses the same deployment to run three llm-d use cases: the optimized baseline, compared with a plain Kubernetes Service; P/D disaggregation, which splits prefill and decode across separate GPUs; and LoRA adapters, served next to the base model behind their own Kong model alias.

llm-d Architecture

The [llm-d documentation portal](https://llm-d.ai/docs/architecture)llm-d documentation portal has an architecture diagram of the project:

llm-d architecture. Source: [_llm-d documentation_](https://llm-d.ai/docs/architecture)_llm-d documentation_.

Its Architecture landing page defines the main components:

  • llm-d Router: the intelligent entry point for inference requests. It provides LLM-aware load balancing, request queuing, and policy enforcement. It is composed of two functional parts:
  • Proxy: a high-performance L7 proxy conformant with the Gateway API Inference Extension (GAIE) that accepts user requests and consults the EPP via the ext-proc protocol to determine the optimal destination.
  • Endpoint Picker (EPP): the routing engine that scores and selects model server pods based on real-time metrics, KV-cache affinity, and configured policies.
  • InferencePool: the API that groups Model Server pods serving the same base model via a label selector. Conceptualized as an "LLM-optimized Service", it serves as the discovery target for the Router.
  • Model Server: the inference engine (such as vLLM or SGLang) that executes the model on hardware accelerators (GPUs, TPUs, HPUs).

llm-d, vLLM and Kong AI Gateway

Each layer has one job:

  • vLLM serves Llama 3.2 3B, one GPU per pod.
  • llm-d runs a router in standalone mode, reachable only inside the cluster. For every request it picks the vLLM replica that serves it. Part 2 changes how it picks.
  • Kong AI Gateway is the only public entry point. It authenticates callers, maps a model alias to an llm-d router, limits and records token usage.

| A note on "replica". In this post, a replica always means one pod of the vllm-server Deployment: one vLLM process serving its own copy of Llama 3.2 3B on one GPU, with its own KV cache. Kubernetes creates the replicas, through the Deployment's replicas field. llm-d doesn't create or own any; its router only chooses which replica serves each request. The pods in the P/D steps are called prefill and decode pods, not replicas. |

1. The client sends a request with its API key and model alias. 2. Kong authenticates it, rewrites the alias and forwards it to the llm-d router. 3–4. Envoy asks the Endpoint Picker, in the same pod, which vLLM replica should serve it. 5. Envoy forwards the request to that replica. 6. The response streams back. Kong Konnect and the InferencePool sit outside the request path. Part 2 tunes the Endpoint Picker and adds a second router for P/D disaggregation.

The cluster uses two node groups: a small CPU node for the gateways and controllers, and one g6.12xlarge with four NVIDIA L4 GPUs for the models. The lab serves Llama 3.2 3B because it fits on one L4; larger models such as GLM, Kimi or Nemotron run on the same stack with bigger GPUs. Part 1 uses one GPU; Part 2 takes turns on all four.

Prerequisites: aws, eksctl, kubectl, helm, jq, [kongctl](https://developer.konghq.com/kongctl/)kongctl, a Konnect personal access token exported as PAT, a Hugging Face token exported as HF_TOKEN whose account has accepted the Llama 3.2 license, and the AWSLoadBalancerControllerIAMPolicy IAM policy in your AWS account. If the policy doesn't exist yet, create it from the policy JSON in the AWS Load Balancer Controller's install docs.

Create the EKS cluster with a single node

Start with one CPU node. It will run Kong and the llm-d routers, none of which need a GPU.

## powershell
1eksctl create cluster --name kong-llmd-vllm --version 1.36 --region us-east-2 \
2  --nodegroup-name kong-llmd --node-type m6i.xlarge --nodes 1 \
3  --node-labels workload=kong-llmd

Add the GPU node group

Node groups are added to the running cluster with eksctl create nodegroup. This one holds the models. Its minimum size is zero, so it can be parked when idle.

## powershell
1eksctl create nodegroup --cluster kong-llmd-vllm --region us-east-2 \   --name vllm --node-type g6.12xlarge \   --nodes 1 --nodes-min 0 --nodes-max 2 \   --node-labels workload=vllm,nvidia.com/gpu.present=true \   --install-nvidia-plugin=false   eksctl get nodegroup --cluster kong-llmd-vllm --region us-east-2 kubectl get nodes -L workload

For GPU instance types, eksctl picks the EKS-optimized NVIDIA AMI. By default it also installs the NVIDIA device plugin as a DaemonSet that targets every node in the cluster, including the CPU node. --install-nvidia-plugin=false turns that off. Install the plugin with Helm instead. Its chart only schedules on nodes labeled nvidia.com/gpu.present=true, which is the second label on this node group, so it runs on the g6.12xlarge only:

## powershell
1helm repo add nvdp https://nvidia.github.io/k8s-device-plugin helm repo update   helm upgrade -i nvdp nvdp/nvidia-device-plugin \   --namespace nvidia-device-plugin \   --create-namespace

Check the plugin:

## powershell
1kubectl get daemonset -n nvidia-device-plugin kubectl get pods -n nvidia-device-plugin -o wide kubectl get nodes -l workload=vllm -o jsonpath='{.items[0].status.allocatable.nvidia\.com/gpu}'

The DaemonSet should show 1 desired and 1 ready, its pod should be on the GPU node, and the last command should print 4, the number of GPUs the node offers. Any later node group is added the same way, with a different --name, --node-type and label. When you are done for the day, park the GPUs:

## powershell
1eksctl scale nodegroup --cluster kong-llmd-vllm --region us-east-2 --name vllm --nodes 0

Install the cluster add-ons

Three add-ons are needed. EKS Pod Identity gives pods IAM roles. The AWS Load Balancer Controller creates the NLB in front of Kong. The EBS CSI driver backs the volume that caches model weights.

## Pod Identity + Load Balancer Controller
1eksctl create addon --cluster kong-llmd-vllm --region us-east-2 \
2  --name eks-pod-identity-agent
3 
4export ACCOUNT_ID="$(aws sts get-caller-identity --query Account --output text)"
5 
6eksctl create podidentityassociation \
7  --cluster kong-llmd-vllm \
8  --region us-east-2 \
9  --namespace kube-system \
10  --service-account-name aws-load-balancer-controller \
11  --role-name AWSLoadBalancerControllerIAMRole-kong-llmd-vllm \
12  --permission-policy-arns arn:aws:iam::$ACCOUNT_ID:policy/AWSLoadBalancerControllerIAMPolicy
13 
14helm repo add eks https://aws.github.io/eks-charts
15helm install aws-load-balancer-controller eks/aws-load-balancer-controller -n kube-system \
16  --set clusterName=kong-llmd-vllm \
17  --set region=us-east-2 \
18  --set serviceAccount.create=true \
19  --set serviceAccount.name=aws-load-balancer-controller
20
## EBS CSI driver
1eksctl create podidentityassociation \
2  --cluster kong-llmd-vllm \
3  --region us-east-2 \
4  --namespace kube-system \
5  --service-account-name ebs-csi-controller-sa \
6  --role-name AWSEBSCSIRole-kong-llmd-vllm \
7  --permission-policy-arns arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy
8 
9eksctl create addon --cluster kong-llmd-vllm --region us-east-2 \
10  --name aws-ebs-csi-driver

Deploy vLLM and send a prompt

Everything model-related lives in the llm-d namespace. Create a gp3 storage class, the volume for the Hugging Face cache, and the token secret:

## shellSession
1kubectl create namespace llm-d
2 
3cat <<EOF | kubectl apply -f -
4apiVersion: storage.k8s.io/v1
5kind: StorageClass
6metadata:
7  name: gp3
8provisioner: ebs.csi.aws.com
9parameters:
10  type: gp3
11volumeBindingMode: WaitForFirstConsumer
12---
13apiVersion: v1
14kind: PersistentVolumeClaim
15metadata:
16  name: vllm
17  namespace: llm-d
18spec:
19  accessModes:
20    - ReadWriteOnce
21  storageClassName: gp3
22  resources:
23    requests:
24      storage: 200Gi
25---
26apiVersion: v1
27kind: Secret
28metadata:
29  name: hf-token-secret
30  namespace: llm-d
31type: Opaque
32stringData:
33  token: "$HF_TOKEN"
34EOF

Then deploy vLLM with Llama 3.2 3B on one GPU:

## shellSession
1cat <<EOF | kubectl apply -f -
2apiVersion: apps/v1
3kind: Deployment
4metadata:
5  name: vllm-server
6  namespace: llm-d
7spec:
8  replicas: 1
9  selector:
10    matchLabels:
11      app.kubernetes.io/name: vllm
12  template:
13    metadata:
14      labels:
15        app.kubernetes.io/name: vllm
16        llm-d.ai/guide: optimized-baseline
17    spec:
18      nodeSelector:
19        workload: vllm
20      containers:
21      - name: vllm
22        image: vllm/vllm-openai:v0.30.0
23        args: ["--model", "meta-llama/Llama-3.2-3B-Instruct", "--max-model-len", "16384", "--gpu-memory-utilization", "0.7"]
24        env:
25        - name: HF_TOKEN
26          valueFrom:
27            secretKeyRef:
28              name: hf-token-secret
29              key: token
30        ports:
31          - containerPort: 8000
32        resources:
33          limits:
34            nvidia.com/gpu: 1
35        volumeMounts:
36          - name: llama-storage
37            mountPath: /root/.cache/huggingface
38          - name: dshm
39            mountPath: /dev/shm
40      volumes:
41      - name: llama-storage
42        persistentVolumeClaim:
43          claimName: vllm
44      - name: dshm
45        emptyDir:
46          medium: Memory
47          sizeLimit: 1Gi
48---
49apiVersion: v1
50kind: Service
51metadata:
52  name: vllm-server
53  namespace: llm-d
54spec:
55  selector:
56    app.kubernetes.io/name: vllm
57  ports:
58  - protocol: TCP
59    port: 8000
60    targetPort: 8000
61  type: ClusterIP
62EOF

The first start downloads the weights. Follow the logs until vLLM reports it is listening on port 8000:

## shellSession
1kubectl logs -f deploy/vllm-server -n llm-d

Now test it with a simple prompt, straight to the pod's Service:

## powershell
1kubectl port-forward service/vllm-server -n llm-d 8000
2 
3curl -s http://localhost:8000/v1/completions \
4  -H 'Content-Type: application/json' \
5  -d '{
6        "model": "meta-llama/Llama-3.2-3B-Instruct",
7        "prompt": "Hello",
8        "max_tokens": 20,
9        "temperature": 0
10      }' | jq

The model answers, but with no authentication, no usage tracking, and one replica.

Deploy a basic llm-d router

Start with llm-d in front of the single vLLM replica from the previous section. The router is installed in standalone mode: the router pod carries its own Envoy proxy next to the endpoint picker, so no Kubernetes Gateway is needed. Kong will be the gateway.

Three pieces work together inside the router:

  • Envoy proxy is the data path. It receives each request, asks the endpoint picker which pod should serve it, and forwards the request there. It makes no routing decisions itself.
  • Endpoint picker (EPP) is the scheduler. Envoy calls it for every request through its external processing hook, and the EPP scores the candidate pods with a set of plugins and returns the chosen one. Which plugins run is set by its configuration: here the chart's default, replaced with llm-d's optimized baseline in Part 2.
  • InferencePool is the EPP's list of candidates. It holds the label selector and port of the vLLM pods, so the EPP picks up new vLLM replicas as soon as they match.

Before llm-d, requests reach vLLM through a plain Kubernetes Service, which spreads connections across pods without looking at the request. The EPP is what adds request-aware scheduling.

The chart includes an InferencePool resource, and Kubernetes doesn’t know that kind without the CRDs. When Helm builds the release, it checks every resource kind against the cluster’s API, so the install stops with an error.

Install the InferencePool CRDs the router uses:

## powershell
1kubectl apply -f https://github.com/kubernetes-sigs/gateway-api-inference-extension/releases/download/v1.6.1/v1-manifests.yaml

Install the router from llm-d's chart. A basic install needs a single value: the label that selects the vLLM pods deployed above. Everything else comes from the chart's defaults, so the endpoint picker runs the llm-d Helm chart's default scheduling configuration.

## powershell
1helm install llm-d \
2  oci://ghcr.io/llm-d/charts/llm-d-router-standalone \
3  --version v0.11.0 \
4  -n llm-d \
5  --set 'router.modelServers.matchLabels.app\.kubernetes\.io/name=vllm'
6 
7kubectl get pods,svc,inferencepool -n llm-d
8

The router is reachable through a Service named after the Helm release, llm-d-epp. Its Envoy proxy listens on port 8081. Send the same simple prompt as before, this time through llm-d:

## powershell
1kubectl port-forward service/llm-d-epp -n llm-d 8081:8081
2 
3curl -s http://localhost:8081/v1/completions \
4  -H 'Content-Type: application/json' \
5  -d '{
6        "model": "meta-llama/Llama-3.2-3B-Instruct",
7        "prompt": "Hello",
8        "max_tokens": 20,
9        "temperature": 0
10      }' | jq
11

The answer is the same as before. The difference is the path: the router's Envoy proxy received the request, asked the endpoint picker which vLLM replica should serve it, and forwarded it there. This router runs the chart's default scheduler. Next, Kong AI Gateway goes in front of it; Part 2 then switches the scheduler to llm-d's optimized baseline.

Install Kong AI Gateway 2.3

Kong AI Gateway 2.3 is managed from Konnect and deployed on Kubernetes through Kong Operator. Two environment flags turn on the controllers it needs.

## powershell
1helm repo add kong https://charts.konghq.com
2helm repo update
3 
4helm upgrade --install kong-operator kong/kong-operator \
5  -n kong-system \
6  --create-namespace \
7  --set image.tag=2.3.3 \
8  --set kubernetes-configuration-crds.enabled=true \
9  --set env.ENABLE_CONTROLLER_KONNECT=true \
10  --set env.ENABLE_CONTROLLER_AIGATEWAYDATAPLANE=true \
11  --set nodeSelector."eks\.amazonaws\.com/nodegroup"=kong-llmd
12 
13kubectl create namespace kong
14kubectl create sa kaigateway-podid-sa -n kong
15

The operator talks to Konnect with your personal access token, stored in a Secret:

## powershell
1cat <<EOF | kubectl apply -f -
2kind: Secret
3apiVersion: v1
4metadata:
5  name: konnect-api-auth-secret
6  namespace: kong
7  labels:
8    konghq.com/credential: konnect
9    konghq.com/secret: "true"
10stringData:
11  token: $PAT
12---
13kind: KonnectAPIAuthConfiguration
14apiVersion: konnect.konghq.com/v1alpha1
15metadata:
16  name: konnect-api-auth-conf-kong-llmd-vllm-aigw2
17  namespace: kong
18spec:
19  type: secretRef
20  secretRef:
21    name: konnect-api-auth-secret
22  serverURL: us.api.konghq.com
23EOF
24

KonnectAIGateway creates the AI Gateway control plane in Konnect:

## powershell
1cat <<EOF | kubectl apply -f -
2kind: KonnectAIGateway
3apiVersion: konnect.konghq.com/v1alpha1
4metadata:
5  name: kong-llmd-vllm
6  namespace: kong
7spec:
8  apiSpec:
9    name: kong-llmd-vllm
10    displayName: kong-llm-d-vllm
11    description: AI Gateway Control Plane
12  konnect:
13    authRef:
14      name: konnect-api-auth-conf-kong-llmd-vllm-aigw2
15EOF

AIGatewayDataPlane runs the AI Gateway 2.3 data plane on the CPU node and exposes it through an internet-facing NLB:

## powershell
1cat <<EOF | kubectl apply -f -
2apiVersion: aigateway.konghq.com/v1alpha1
3kind: AIGatewayDataPlane
4metadata:
5  name: kong-llmd-vllm-dp
6  namespace: kong
7spec:
8  controlPlaneRef:
9    type: konnectNamespacedRef
10    konnectNamespacedRef:
11      name: kong-llmd-vllm
12  deployment:
13    replicas: 1
14    podTemplateSpec:
15      spec:
16        serviceAccountName: kaigateway-podid-sa
17        nodeSelector:
18          workload: kong-llmd
19        containers:
20          - name: aigw
21            image: kong/kong-ai-gateway:2.3
22  network:
23    services:
24      ingress:
25        type: LoadBalancer
26        annotations:
27          "service.beta.kubernetes.io/aws-load-balancer-type": "nlb"
28          "service.beta.kubernetes.io/aws-load-balancer-scheme": "internet-facing"
29          "service.beta.kubernetes.io/aws-load-balancer-nlb-target-type": "ip"
30EOF

Once the NLB is provisioned, capture its address and port:

## powershell
1export DATA_PLANE_LB_AIGW2=$(kubectl get svc -n kong kong-llmd-vllm-dp-ingress --output=jsonpath='{.status.loadBalancer.ingress[].hostname}'):$(kubectl get svc -n kong kong-llmd-vllm-dp-ingress --output=jsonpath='{.spec.ports[?(@.name=="ingress")].port}')
2 
3echo $DATA_PLANE_LB_AIGW2

Configure the AI endpoint for your self-hosted LLM

kongctl or Kong Operator. The AI Gateway configuration can be managed with more than one mechanism: declaratively with kongctl, through Kong Operator CRDs, or with a mix of both. As an exercise, Part 1 configures the gateway with kongctl. Part 2 configures it with Kong Operator CRDs.
The gateway configuration is declared with kongctl. Five entities build the endpoint:

  • AI Model Provider of type vllm. llm-d speaks the same OpenAI-compatible API as vLLM, so the provider type is the same. The auth block follows Kong's vLLM provider example; llm-d itself needs no credentials, since only Kong can reach it inside the cluster.
  • AI Auth Strategy of type key-auth, reading the apikey header.
  • AI Consumer with its own key, one per application.
  • AI Model llama-3b on the path /llm-d, targeting the llm-d router Service.
  • AI Policy llama-3b-token-limit of type ai-rate-limiting-advanced, attached to the AI Model, capping the tokens each consumer can use per minute. It is covered after the first tests.

Export the values the file reads from the environment:

## powershell
1export AI_GATEWAY_ID=$(kubectl get konnectaigateway kong-llmd-vllm -n kong -o jsonpath='{.status.id}')
2export CONSUMER_API_KEY='consumer1-demo-key'
## kong-aigw2-llm-d.yaml
1_defaults:
2  kongctl:
3    namespace: kong-llmd-vllm
4 
5ai_gateway_model_providers:
6- ref: llmd-provider
7  ai_gateway: !lookup {id: !env 'AI_GATEWAY_ID'}
8  name: llmd-provider
9  display_name: llm-d on EKS
10  type: vllm
11  config:
12    auth:
13      type: basic
14 
15ai_gateway_auth_strategies:
16- ref: llmd-key-auth
17  ai_gateway: !lookup {id: !env 'AI_GATEWAY_ID'}
18  name: llmd-key-auth
19  type: key-auth
20  config:
21    key_names: [apikey]
22    key_in_header: true
23    key_in_query: false
24    key_in_body: false
25    hide_credentials: true
26 
27ai_gateway_consumers:
28- ref: consumer1
29  ai_gateway: !lookup {id: !env 'AI_GATEWAY_ID'}
30  name: consumer1
31  type: api-key
32  credentials:
33  - ref: consumer1-key
34    name: consumer1-key
35    type: api-key
36    api_key: !secret {source: !env 'CONSUMER_API_KEY'}
37 
38ai_gateway_policies:
39- ref: llama-3b-token-limit
40  ai_gateway: !lookup {id: !env 'AI_GATEWAY_ID'}
41  name: llama-3b-token-limit
42  display_name: Token limit per consumer
43  type: ai-rate-limiting-advanced
44  config:
45    identifier: consumer
46    strategy: local
47    tokens_count_strategy: total_tokens
48    policies:
49    - window_type: sliding
50      limits:
51      - limit: 300
52        window_size: 60
53 
54ai_gateway_models:
55- ref: llama-3b
56  ai_gateway: !lookup {id: !env 'AI_GATEWAY_ID'}
57  name: llama-3b
58  display_name: Llama 3.2 3B (llm-d)
59  type: model
60  formats:
61  - type: openai
62  capabilities:
63  - generate
64  access:
65    auth_strategies:
66    - llmd-key-auth
67  policies:
68  - llama-3b-token-limit
69  config:
70    response_streaming: allow
71    route:
72      paths:
73      - /llm-d
74      protocols: [http, https]
75      methods: [POST, OPTIONS]
76      strip_path: true
77      model:
78        body_param: model
79        values: [llama-3b]
80  targets:
81  - name: meta-llama/Llama-3.2-3B-Instruct
82    provider: llmd-provider
83    config:
84      type: vllm
85      upstream_url: http://llm-d-epp.llm-d.svc.cluster.local:8081/v1/chat/completions
## powershell
1kongctl sync -f kong-aigw2-llm-d.yaml --pat $PAT --auto-approve

This is how one request is handled. Kong checks the API key, matches the llama-3b alias in the model field, rewrites it to the real model name, and forwards the request to the llm-d router. llm-d then picks the replica, for now the only one. The client never sees the upstream model name, the llm-d address, or which pod answered.

| Heads-up. The KonnectAIGateway was created by Kong Operator, not by kongctl. If kongctl sync refuses to attach entities to it, run kongctl adopt ai-gateway kong-llmd-vllm --namespace kong-llmd-vllm --pat $PAT first. |

Test the endpoint

Send a prompt through Kong with the application key. The X-Kong-LLM-Model response header shows the upstream model the alias resolved to. The AI Model targets llm-d's /v1/chat/completions endpoint, so requests through Kong use the chat format; the /v1/completions calls above only work against vLLM and llm-d directly. The data plane serves Kong's default self-signed certificate, so curl runs with -k; put a real certificate on it before production.

## powershell
1curl -skX POST "https://$DATA_PLANE_LB_AIGW2/llm-d/chat/completions" \
2  -H "Content-Type: application/json" \
3  -H "apikey: $CONSUMER_API_KEY" \
4  -d '{
5        "model": "llama-3b",
6        "messages": [{"role": "user", "content": "Hello"}],
7        "max_tokens": 20
8      }' | jq

Now try without a key:

## shellSession
1curl -sk -o /dev/null -w "%{http_code}\n" -X POST "https://$DATA_PLANE_LB_AIGW2/llm-d/chat/completions" \
2  -H "Content-Type: application/json" \
3  -d '{"model":"llama-3b","messages":[{"role":"user","content":"Hello"}]}'
4# 401

The request is rejected at the Kong data plane and never reaches llm-d or a GPU. In Konnect, open the kong-llmd-vllm AI Gateway to see requests, tokens and latency broken down by AI Model and AI Consumer.

Limit tokens per consumer

An API key decides who can call the model. It doesn't limit how much they use, and on self-hosted GPUs one busy application can take the capacity every other application depends on. Kong's [AI Rate Limiting Advanced](https://developer.konghq.com/ai-gateway/policies/ai-rate-limiting-advanced/)AI Rate Limiting Advanced policy caps the tokens each AI Consumer can spend in a time window.

That is the llama-3b-token-limit AI Policy declared in kong-aigw2-llm-d.yaml and listed under the llama-3b model's policies:

  • identifier: consumer keeps a separate counter for each AI Consumer, so consumer1 using up its budget doesn't affect any other application.
  • tokens_count_strategy: total_tokens counts prompt and completion tokens together.
  • The limit is 300 tokens per sliding 60-second window. It's set low so the test below hits it quickly; a real budget would be much higher.
  • strategy: local keeps the counters in the data plane's memory, which is enough for one data plane replica. With several replicas, use the redis strategy so they share one counter.

Send a few requests in a row with the same key, printing the status code and the rate-limit headers Kong adds:

## powershell
1for i in $(seq 1 8); do
2  curl -sk -o /dev/null -D - -X POST "https://$DATA_PLANE_LB_AIGW2/llm-d/chat/completions" \
3    -H "Content-Type: application/json" \
4    -H "apikey: $CONSUMER_API_KEY" \
5    -d '{"model":"llama-3b","messages":[{"role":"user","content":"Write a short poem about GPUs"}],"max_tokens":60}' \
6    | grep -i -E '^HTTP|x-ai-ratelimit'
7done

Each request uses around 100 tokens. The first few return 200 with the remaining budget going down, then Kong starts returning 429 with API rate limit exceeded. Kong counts tokens from the model's response, so the request that crosses the limit still succeeds, and the block applies from the next one. A 429 is returned by the data plane, so the blocked requests never reach llm-d or a GPU. After a minute, the window frees up and requests go through again.

In Konnect, the same AI Gateway view shows the token usage that counts against each consumer's limit.

Konnect Observability

The data plane reports every request it handles to Konnect, so the traffic from the tests above is already there. Under Observability, Konnect provides ready-made dashboards for AI Gateway traffic. They can be used as they are or edited tile by tile. This one covers 15 minutes of the lab:

Each group of tiles answers a different question:

  • Usage: GenAI model usage count and GenAI provider usage count show how many requests went to each AI Model and provider, and Total AI gateway requests gives the overall count. Here, 119 requests reached Llama 3.2 3B (llm-d) through the vLLM provider.
  • Tokens: Token usage by provider plots total tokens over time, and Consumer token usage breaks them down by AI Consumer, the same count the rate-limit policy enforces for consumer1.
  • Cost: Cost per consumer and Total cost turn token counts into spend, per application and overall.
  • Health: LLM latency (avg) tracks how long the model takes to answer, and AI status codes and Errors by model surface failing requests. Both of those were empty in this window.

The time range, filters and tiles can all be changed from the top of the dashboard, and Explorer, in the same menu, builds ad hoc queries over the same data. The lab didn't configure anything for this: it comes with the data plane's connection to Konnect.

Konnect Tokenomics

Konnect Tokenomics provides a structured, transparent way to control, monitor, and allocate AI spend across complex enterprise workflows. Because Kong operates directly in the execution path of AI traffic, Konnect meters token consumption and cost as requests are processed, consistently across every supported model provider. Organizations can attribute that spend to users, teams, projects, and agents, follow multi-agent sessions as a single unit of work, and establish daily, weekly, or monthly budgets that alert stakeholders before limits are reached. Combined with AI Gateway capabilities such as intelligent routing, semantic caching, and prompt compression, and with Kong Metering and Billing for chargeback, Konnect gives finance and platform teams a consistent, auditable view of AI expenditure across every team, department, and AI tool.

What's next

The stack works end to end: Kong authenticates every call, maps the llama-3b alias, caps and records token usage per consumer, and llm-d routes each request to the vLLM replica. The router, though, still runs the llm-d Helm chart's default scheduling configuration, and there is only one replica to choose from.
Part 2 keeps this cluster and evolves the deployment through three llm-d use cases:

  • Optimized baseline: four replicas, with the router sending each request to the replica that already holds its prompt prefix in cache.
  • P/D disaggregation: prefill and decode split across separate pods, with the KV cache moving between GPUs.
  • LoRA adapters: a fine-tuned adapter served next to the base model, exposed through Kong as its own model alias.

Cleanup

If you are continuing with Part 2, keep the cluster running. Otherwise, remove everything:

## shellSession
1kubectl delete aigatewaydataplane kong-llmd-vllm-dp -n kong
2kubectl delete konnectaigateway kong-llmd-vllm -n kong
3 
4kubectl delete namespace llm-d
5 
6eksctl delete cluster --name kong-llmd-vllm --region us-east-2

Delete the data plane before the control plane, so the operator can deregister the certificate cleanly.

References

  • [Kong AI Gateway with Kong Operator](https://developer.konghq.com/operator/konnect/ai-gateway/)Kong AI Gateway with Kong Operator
  • [vLLM provider for Kong AI Gateway](https://developer.konghq.com/ai-gateway/ai-providers/vllm/)vLLM provider for Kong AI Gateway
  • [Kong AI Gateway with llm-d](https://llm-d.ai/docs/operations/serve-external-apis/kong)Kong AI Gateway with llm-d
  • [llm-d optimized baseline](https://llm-d.ai/docs/well-lit-paths/foundations/optimized-baseline)llm-d optimized baseline
  • [llm-d P/D disaggregation guide](https://github.com/llm-d/llm-d/tree/main/guides/pd-disaggregation)llm-d P/D disaggregation guide
  • [llm-d router](https://github.com/llm-d/llm-d-router)llm-d router
  • [vLLM on Kubernetes](https://docs.vllm.ai/en/latest/deployment/k8s/)vLLM on Kubernetes

Frequently Asked Questions (FAQ)

  1. What is the difference between a standard API Gateway and an LLM API Gateway like Kong?
    A standard API Gateway routes HTTP traffic based on headers and paths but lacks awareness of the payload's context. An LLM API Gateway natively understands AI protocols (like the OpenAI API format), counts tokens in real-time, supports model aliasing, and enforces AI-specific rate limits. This allows you to cap usage by tokens rather than just HTTP requests.
  2. Why is my vLLM Kubernetes GPU utilization low, and how does llm-d fix it?
    Low GPU utilization in vLLM on Kubernetes often occurs because standard Kubernetes Services use round-robin load balancing. This means requests are sent to random pods, causing cache misses and redundant computations. The llm-d router fixes this by using prefix-cache-aware routing, sending requests to the specific vLLM replica that already holds the prompt's KV cache, significantly improving hardware utilization and throughput.
  3. How does self-hosted vLLM latency compare to OpenAI API latency?
    When comparing vLLM vs OpenAI API latency, self-hosting offers more predictable performance. While managed APIs are subject to internet routing, provider-side queueing, and multi-tenant throttling, a self-hosted vLLM deployment gives you exclusive access to your GPUs. With optimizations like llm-d's prefix caching, you can achieve consistently lower latency for your specific workloads.
  4. Why are repeated prompts recomputed across my vLLM replicas?
    If you are exposing vLLM directly via a standard Kubernetes Service, it distributes traffic evenly across all pods without inspecting the request. If Pod A processes a system prompt, and the next request with the same prompt goes to Pod B, Pod B must compute it from scratch. Using an intelligent router like llm-d ensures requests with matching prefixes are sent to the pod that already has them cached.
  5. How do I fix the "Helm install fails: unknown InferencePool kind" error?
    This error occurs when installing the llm-d Helm chart before applying the required Custom Resource Definitions (CRDs). To fix it, you must install the Gateway API Inference Extension (GAIE) CRDs by running: kubectl apply -f https://github.com/kubernetes-sigs/gateway-api-inference-extension/releases/download/v1.6.1/v1-manifests.yaml before running helm install.
  6. What does the "Exceeded token budget error x-ai-ratelimit-remaining: 0" mean?
    This error is returned by Kong AI Gateway when an AI Consumer has spent their allotted token limit within a specific time window (e.g., 300 tokens per minute). Because Kong counts tokens after the model responds, the request that crosses the threshold succeeds, but subsequent requests are blocked with an HTTP 429 status and the x-ai-ratelimit-remaining: 0 header until the sliding time window resets.
  7. How do I resolve AWS Load Balancer Controller not targeting GPU nodes?
    When mixing CPU and GPU node groups in EKS, the AWS Load Balancer Controller might target the wrong nodes if labels are not strictly applied. Ensure you use node selectors (e.g., workload=kong-llmd for your CPU nodes running Kong, and workload=vllm for your GPU nodes) and set the Kong Operator deployment to specifically target the CPU node group.
- [Kong Gateway](/blog/tag/kong-gateway)Kong Gateway- [AI Gateway](/blog/tag/ai-gateway)AI Gateway

## More on this topic

_Videos_

## How PolyAI Uses Kong Gateway to Power Developer-Friendly Conversational AI APIs

_Videos_

## Build an Agentic Enterprise with Kong AI Gateway

## See Kong in action

Accelerate deployments, reduce vulnerabilities, and gain real-time visibility. 

[Get a Demo](/contact-sales)Get a Demo
**Topics**
- [Kong Gateway](/blog/tag/kong-gateway)Kong Gateway- [AI Gateway](/blog/tag/ai-gateway)AI Gateway
Claudio Acquaviva
Principal Architect, Kong
Wanny Morellato
VP, Security, Kong

Recommended posts

# Event-Driven AI: Agents Shouldn’t Have to Keep Asking if Something Happened

[Product Releases](/blog/tag)Product ReleasesSeptember 30, 2026

Consider a bank using an AI agent to investigate potentially fraudulent transactions. A transaction is processed and the bank’s fraud detection system identifies suspicious activity. That event is published to Kafka: fraud.suspected The bank’s Fraud

Alex Drag

# Kong AI/MCP Gateway and Kong MCP Server Technical Breakdown

[Engineering](/blog/tag)EngineeringDecember 11, 2025

In the latest Kong Gateway 3.12 release , announced October 2025, specific MCP capabilities have been released: AI MCP Proxy plugin: it works as a protocol bridge, translating between MCP and HTTP so that MCP-compatible clients can either call exi

Jason Matis

# How to Build a Multi-LLM AI Agent with Kong AI Gateway and LangGraph

[Engineering](/blog/tag)EngineeringJuly 31, 2025

In the last two parts of this series, we discussed How to Strengthen a ReAct AI Agent with Kong AI Gateway and How to Build a Single-LLM AI Agent with Kong AI Gateway and LangGraph . In this third and final part, we're going to evolve the AI Agen

Claudio Acquaviva

# Kong Gateway 3.9: Extended AI Support and Enhanced Security

[Product Releases](/blog/tag)Product ReleasesDecember 20, 2024

Today we're excited to announce Kong Gateway 3.9!  Since unveiling Kong Gateway 3.8 at API Summit 2024 just a few months ago, we’ve been busy making important updates and improvements to Kong Gateway. This release introduces new functionality arou

Alex Drag

# RAG Application with Kong AI Gateway, AWS Bedrock, Redis and LangChain

[Engineering](/blog/tag)EngineeringOctober 17, 2024

For the last couple of years, Retrieval-Augmented Generation (RAG) architectures have become a rising trend for AI-based applications. Generally speaking, RAG offers a solution to some of the limitations in traditional generative AI models, such as

Claudio Acquaviva

# Kong AI Gateway Goes GA, New Enterprise Capabilities Added

[Product Releases](/blog/tag)Product ReleasesMay 29, 2024

More easily manage AI spend, build AI agents and chatbots, get real-time AI responses, and ensure content safety We're introducing several new Kong AI Gateway capabilities in Kong Gateway 3.7 and Kong Gateway Enterprise 3.7, including enterprise-o

Marco Palladino

# Integrating Kong AI Gateway with your FinOps platform

[Product Releases](/blog/tag)Product ReleasesNovember 5, 2026

Kong measures and controls AI spend while it happens, and your FinOps platform settles it against the invoices once the month closes. Between them you can answer the question finance and engineering both care about, which is what a business outcome

Lior Mechlovich

# Event-Driven AI: Agents Shouldn’t Have to Keep Asking if Something Happened

[Product Releases](/blog/tag)Product ReleasesSeptember 30, 2026

Consider a bank using an AI agent to investigate potentially fraudulent transactions. A transaction is processed and the bank’s fraud detection system identifies suspicious activity. That event is published to Kafka: fraud.suspected The bank’s Fraud

Alex Drag

# Kong AI/MCP Gateway and Kong MCP Server Technical Breakdown

[Engineering](/blog/tag)EngineeringDecember 11, 2025

In the latest Kong Gateway 3.12 release , announced October 2025, specific MCP capabilities have been released: AI MCP Proxy plugin: it works as a protocol bridge, translating between MCP and HTTP so that MCP-compatible clients can either call exi

Jason Matis

# How to Build a Multi-LLM AI Agent with Kong AI Gateway and LangGraph

[Engineering](/blog/tag)EngineeringJuly 31, 2025

In the last two parts of this series, we discussed How to Strengthen a ReAct AI Agent with Kong AI Gateway and How to Build a Single-LLM AI Agent with Kong AI Gateway and LangGraph . In this third and final part, we're going to evolve the AI Agen

Claudio Acquaviva

# Kong Gateway 3.9: Extended AI Support and Enhanced Security

[Product Releases](/blog/tag)Product ReleasesDecember 20, 2024

Today we're excited to announce Kong Gateway 3.9!  Since unveiling Kong Gateway 3.8 at API Summit 2024 just a few months ago, we’ve been busy making important updates and improvements to Kong Gateway. This release introduces new functionality arou

Alex Drag

# RAG Application with Kong AI Gateway, AWS Bedrock, Redis and LangChain

[Engineering](/blog/tag)EngineeringOctober 17, 2024

For the last couple of years, Retrieval-Augmented Generation (RAG) architectures have become a rising trend for AI-based applications. Generally speaking, RAG offers a solution to some of the limitations in traditional generative AI models, such as

Claudio Acquaviva

# Kong AI Gateway Goes GA, New Enterprise Capabilities Added

[Product Releases](/blog/tag)Product ReleasesMay 29, 2024

More easily manage AI spend, build AI agents and chatbots, get real-time AI responses, and ensure content safety We're introducing several new Kong AI Gateway capabilities in Kong Gateway 3.7 and Kong Gateway Enterprise 3.7, including enterprise-o

Marco Palladino

# Integrating Kong AI Gateway with your FinOps platform

[Product Releases](/blog/tag)Product ReleasesNovember 5, 2026

Kong measures and controls AI spend while it happens, and your FinOps platform settles it against the invoices once the month closes. Between them you can answer the question finance and engineering both care about, which is what a business outcome

Lior Mechlovich

# Event-Driven AI: Agents Shouldn’t Have to Keep Asking if Something Happened

[Product Releases](/blog/tag)Product ReleasesSeptember 30, 2026

Consider a bank using an AI agent to investigate potentially fraudulent transactions. A transaction is processed and the bank’s fraud detection system identifies suspicious activity. That event is published to Kafka: fraud.suspected The bank’s Fraud

Alex Drag

# Kong AI/MCP Gateway and Kong MCP Server Technical Breakdown

[Engineering](/blog/tag)EngineeringDecember 11, 2025

In the latest Kong Gateway 3.12 release , announced October 2025, specific MCP capabilities have been released: AI MCP Proxy plugin: it works as a protocol bridge, translating between MCP and HTTP so that MCP-compatible clients can either call exi

Jason Matis

# How to Build a Multi-LLM AI Agent with Kong AI Gateway and LangGraph

[Engineering](/blog/tag)EngineeringJuly 31, 2025

In the last two parts of this series, we discussed How to Strengthen a ReAct AI Agent with Kong AI Gateway and How to Build a Single-LLM AI Agent with Kong AI Gateway and LangGraph . In this third and final part, we're going to evolve the AI Agen

Claudio Acquaviva

# Kong Gateway 3.9: Extended AI Support and Enhanced Security

[Product Releases](/blog/tag)Product ReleasesDecember 20, 2024

Today we're excited to announce Kong Gateway 3.9!  Since unveiling Kong Gateway 3.8 at API Summit 2024 just a few months ago, we’ve been busy making important updates and improvements to Kong Gateway. This release introduces new functionality arou

Alex Drag

# RAG Application with Kong AI Gateway, AWS Bedrock, Redis and LangChain

[Engineering](/blog/tag)EngineeringOctober 17, 2024

For the last couple of years, Retrieval-Augmented Generation (RAG) architectures have become a rising trend for AI-based applications. Generally speaking, RAG offers a solution to some of the limitations in traditional generative AI models, such as

Claudio Acquaviva

# Kong AI Gateway Goes GA, New Enterprise Capabilities Added

[Product Releases](/blog/tag)Product ReleasesMay 29, 2024

More easily manage AI spend, build AI agents and chatbots, get real-time AI responses, and ensure content safety We're introducing several new Kong AI Gateway capabilities in Kong Gateway 3.7 and Kong Gateway Enterprise 3.7, including enterprise-o

Marco Palladino

# Integrating Kong AI Gateway with your FinOps platform

[Product Releases](/blog/tag)Product ReleasesNovember 5, 2026

Kong measures and controls AI spend while it happens, and your FinOps platform settles it against the invoices once the month closes. Between them you can answer the question finance and engineering both care about, which is what a business outcome

Lior Mechlovich

## Ready to see Kong in action?

Get a personalized walkthrough of Kong's platform tailored to your architecture, use cases, and scale requirements.

[Get a Demo](/contact-sales)Get a Demo
## step-0
    • Company
    • [About Kong ](/company)About Kong
    • [Customers ](/customer-stories)Customers
    • [Careers ](/company/careers)Careers
    • [Press ](/company/press-room)Press
    • [Events ](/events)Events
    • [Contact ](/company/contact-us)Contact
    • [Pricing ](/pricing)Pricing
      •    * [Terms](/legal/terms-of-use)
      •    * [Privacy](/legal/privacy-policy)
      •    * [Trust and Compliance](https://trust.konghq.com/)
    • Platform
    • [Kong AI Gateway ](/products/kong-ai-gateway)Kong AI Gateway
    • [Kong Konnect ](/products/kong-konnect)Kong Konnect
    • [Kong Gateway ](/products/kong-gateway)Kong Gateway
    • [Kong Event Gateway ](/products/event-gateway)Kong Event Gateway
    • [Kong Insomnia ](/products/kong-insomnia)Kong Insomnia
    • [Documentation ](https://developer.konghq.com)Documentation
    • [Book Demo ](/contact-sales)Book Demo
    • Compare
    • [AI Gateway Alternatives ](/performance-comparison/ai-gateway-alternatives)AI Gateway Alternatives
    • [Kong vs Apigee ](/performance-comparison/kong-vs-apigee)Kong vs Apigee
    • [Kong vs AWS ](/performance-comparison/kong-vsaws)Kong vs AWS
    • [Kong vs IBM ](/performance-comparison/ibm-api-connect-vs-kong)Kong vs IBM
    • [Kong vs Mulesoft ](/performance-comparison/kong-vs-mulesoft)Kong vs Mulesoft
    • [Kong vs Postman ](/performance-comparison/kong-vs-postman)Kong vs Postman
    • [Kong vs LiteLLM ](/performance-comparison/kong-vs-litellm)Kong vs LiteLLM
    • Explore More
    • [Kong for Startups ](/solutions/startup-program)Kong for Startups
    • [Open Banking API Solutions ](/solutions/open-banking)Open Banking API Solutions
    • [API Governance Solutions ](/solutions/api-governance)API Governance Solutions
    • [Istio API Gateway Integration ](/solutions/istio-gateway)Istio API Gateway Integration
    • [Kubernetes API Management ](/solutions/build-on-kubernetes)Kubernetes API Management
    • [API Gateway: Build vs Buy ](/campaign/secure-api-scalability)API Gateway: Build vs Buy
    • Open Source
    • [Kong Gateway ](https://developer.konghq.com/gateway/install/)Kong Gateway
    • [Kuma ](https://kuma.io/)Kuma
    • [Insomnia ](https://insomnia.rest/)Insomnia
    • [Kong Community ](/community)Kong Community

Kong enables the connectivity layer for the agentic era – securely connecting, governing, and monetizing APIs and AI tokens across any model or cloud.

  • English
  • Japanese
  • Frenchcoming soon
  • Spanishcoming soon
  • Germancoming soon
[Everything is 200 OK](https://status.konghq.com/)
© Kong Inc. 2026
Interaction mode