-
Kong Ingress Controller
Configure Kong Gateway using Kubernetes CRDs with Kong Ingress Controller
-
Kong Ingress Controller Support Policy
The Kong Ingress Controller version support policy outlines the Kong Ingress Controller versioning scheme and version lifecycle, from release to sunset support.
-
Version compatibility
Learn about the versions of Kong Ingress Controller compatible with specific versions of Kong Gateway, Kubernetes, Gateway API and Istio.
All KIC Documentation
Overview
Get Started
-
Install Kong Ingress Controller
Run Kong Ingress Controller with Konnect or on-prem using Helm
-
Services and Routes
Use the an HTTPRoute or Ingress to configure a Service and a Route.
-
Rate Limiting
Add rate limiting to an HTTPRoute or Ingress using the KongPlugin resource
-
Proxy Caching
Cache all GET and HEAD responses across all Services using Proxy Cache and the KongClusterPlugin resource
-
Key Authentication
Add key authentication to a Kubernetes Service using the KongPlugin resource
Production Deployments
-
Install Kong Ingress Controller
Run Kong Ingress Controller with Konnect or on-prem using Helm
-
Apply an Enterprise license with Kong Ingress Controller
Learn how to apply a Kong Gateway enterprise license using the `KongLicense` CRD or Kubernetes secrets
-
KIC high availability
How to run multiple Kong Ingress Controller instances with leader election
-
Configure Service health checks
How to enable passive and active health checks for upstream services
-
Last Known Good Config
Prevent Kong Ingress Controller lockups by falling back to the last known good configuration when invalid configuration is applied
-
Fallback configuration
Prevent Kong Ingress Controller lock-ups when bad configuration is accidentally introduced to your k8s cluster
-
Customize Images
Customize the image name used for Kong Ingress Controller and Kong Gateway
Routing
-
Proxy HTTP Traffic
Route HTTP requests to services in your cluster using HTTPRoute or Ingress
-
Proxy HTTPS Traffic with TLS Termination
Route HTTPS requests to services in your cluster using HTTPRoute or Ingress
-
Proxy GRPC Traffic over TLS
Use GRPCRoute to route traffic to a service secured with TLS
-
Proxy GRPC Traffic over HTTP
Use GRPCRoute to route traffic to a plain text GRPC listener
-
Proxy TCP traffic by port
Route TCP requests to services in your cluster based on the incoming port using TCPRoute or TCPIngress
-
Proxy TCP traffic over TLS by SNI
Use TLSRoute to route TCP traffic secured by TLS
-
Proxy UDP traffic by port
Route UDP requests to services in your cluster using UDPRoute or UDPIngress
-
Configure an ExternalService
Expose a service located outside the Kubernetes cluster
-
Redirect HTTP to HTTPS
Redirect incoming HTTP requests to use HTTPS
-
Rewriting paths
Dynamically rewrite paths using regular expressions before sending requests upstream
-
Weight traffic to specific backends
Distribute traffic across multiple Kubernetes Services in a single HTTPRoute
-
Configure Gateway API resources across namespaces
Route traffic to a Service in a different namespace using ReferenceGrant
How KIC Works
-
Architecture
How does Kong Ingress Controller work? Which Kubernetes resources does it interact with?
-
Gateway API
Learn about support for Gateway API resources such as Gateway and GatewayClass in Kong Ingress Controller
-
Ingress
Understand how Ingress and IngressClass work with Kong Gateway.
-
Custom Resources
Which custom resources does Kong Ingress Controller provide? How are they used to configure Kong Gateway?
-
IngressClass / GatewayClass
Which resources require an IngressClass / GatewayClass to be reconciled by Kong Ingress Controller?
-
Annotation reference
Learn about the annotations Kong Ingress Controller uses and the Kubernetes resources you can annotate.
-
Admission Webhook
What is the Kong Ingress Controller admission webhook? How do I enable it? What does it validate?
Deployment Topologies
-
Gateway Discovery
Use one Kong Ingress Controller instance to configure multiple Kong Gateway instances. Gateway Discovery is Kong's recommended deployment topology for the Kong Ingress Controller.
-
Database backed
Use Kong Ingress Controller to configure a Kong Gateway Control Plane that is attached to a PostgreSQL database.
-
Sidecar (Traditional)
Deploy Kong Ingress Controller and Kong Gateway as containers in the same Pod. This topology is deprecated.
Advanced Usage
-
Load Balancing
Change the load balancing algorithm to consistent-hashing based on an incoming header
-
Using Custom Classes to split internal and external traffic
Split traffic across multiple Kong Gateway instances in a single Kubernetes cluster
-
Using Workspaces
Learn how to use KIC to sync resources to a specific Kong Gateway Workspace. Deploy multiple namespaces and use the --watch-namespace flag with a Workspace.
-
Preserve client IP
Learn how to pass the client IP through Gateway to the upstream service
-
Verify Upstream TLS
Learn how to configure Kong Gateway to verify TLS certificates when connecting to upstream services.
Observability
-
Prometheus metrics reference
Understand which metrics Kong Ingress Controller exposes in Prometheus format
-
Monitor metrics with Prometheus and Grafana
Monitor Kong Gateway Prometheus metrics using Kong Ingress Controller and Grafana
-
Kubernetes Events
Kong Ingress Controller emits Kubernetes events to help you observe what's happening in your cluster.
Troubleshooting
-
Failure modes
Learn about the different ways Kong Ingress Controller can fail.
-
Kong Gateway configuration
Learn how to debug a broken Kong Gateway configuration generated by Kong Ingress Controller.
-
KIC in Konnect
Gain insights into the KIC in Konnect synchronization process using traces.
-
Debug logs, traces & profiles
How do I enable debug logs and capture network traffic to debug?
-
Kubernetes API Server
Learn how to customize Kong Ingress Controller's connection to the Kubernetes API Server.
-
Backfill broken objects with fallback configuration
Use the last known good configuration automatically for any subset of configuration that is invalid in your k8s cluster
-
Exclude broken objects with fallback configuration
Remove broken configuration from your Kong Gateway configuration automatically
How To
-
Deploy custom plugins
Install custom plugins in Kong Gateway without using a custom image
-
Support multiple authentication methods
Enable multiple authentication methods on a single Service
-
ACL
Apply the ACL plugin to provide access control for specific routes
-
Rate limiting
Configure Rate Limiting using a `local` or `redis` policy
-
mTLS
Configure the Kong Ingress Controller to verify client certificates using CA certificates and mtls-auth plugin for HTTPS requests.
-
OIDC
Authenticate requests using the OpenID Connect protocol and Kong Gateway
-
Degraphql
Configure the DeGraphQL plugin for Kong Ingress Controller using KongCustomEntity.
Reference
-
Custom Resource (CRD) API Reference
See the generated CRD structure containing all possible resource fields and descriptions for each property.
-
Annotation reference
Learn about the annotations Kong Ingress Controller uses and the Kubernetes resources you can annotate.
-
Feature gates
Learn how to customize Kong Ingress Controller's behavior using feature flags
-
Configuration options
Learn about the various settings and configurations of the controller can be tweaked using CLI flags.
-
Permissions required to install Kong Ingress Controller
Learn about the permissions required to install and run Kong Ingress Controller.
-
Rewriting hosts
Customize the Host header that is sent to your upstream service.
-
Rewriting paths
Rewrite the request path before sending it to your upstream service.
-
Using Kubernetes Secrets in plugins
Populate your KongPlugin configuration using Kubernetes Secrets
Migration
-
Migrating from Ingress to Gateway
How to migrate from Ingress API to Gateway API
-
Migrating from KongIngress to KongUpstreamPolicy
Learn how to remove the deprecated KongIngress resource from your deployment.
-
Add credential type labels
Add the konghq.com/credential label to your Secrets to improve performance and security.
FAQs
-
Use a custom nginx.conf file
How do I use a custom nginx.conf file with ConfigMap or Secret?
-
Combining Services from different HTTPRoutes
Reduce the number of Gateway Services generated by Kong Ingress Controller when using HTTPRoutes
-
Migrating from Ingress to Gateway API
Which custom Ingress annotations are replaced with Gateway API features?
-
Upgrading Kong Gateway using Helm
What do I need to know when upgrading Kong Gateway on Kubernetes? DB-backed mode vs DB-less
-
Upgrading Kong Ingress Controller using Helm
Upgrade Kong Ingress Controller safely, taking in to account Gateway API version changes
-
Configuring Custom Entities
How do I configure Custom Entities such as degraphql_routes using KIC?