Kong Gateway sits between API clients and application services, routing requests and applying policies such as authentication or traffic limits. It is useful when those controls should be shared at an API entry point rather than repeated in every backend. On Kubernetes, Kong Ingress Controller translates resource declarations into gateway configuration, while an Operator can also manage gateway deployments. Choosing who creates and operates the proxies is part of the installation decision.
Current guidance
Kong Gateway handles API traffic; Kong Ingress Controller (KIC) translates Kubernetes resources into its configuration. Kong Operator can additionally provision and manage gateway deployments. Choose this ownership model before selecting the chart: installing KIC alone does not make a Gateway resource create an independent proxy deployment.
Kong’s current KIC documentation recommends Gateway Discovery, which separates the controller from gateway Pods and lets them scale independently. The traditional sidecar topology is deprecated. Protect the Admin API connection; upstream has deprecated plain HTTP connections for Gateway Discovery.
For standalone KIC, install the required Gateway API CRDs before starting the controller and configure the proxy Service ports and Kong listeners to match the Gateway. In unmanaged mode, routes from the Gateways handled by one KIC are merged into the configuration sent to its managed Kong Gateway instances. Separate Gateway objects therefore do not establish separate proxy isolation. Use the Operator’s documented provisioning model when that lifecycle is required.
Pin compatible gateway, controller, chart and Gateway API releases. Check the selected edition’s plugins and authentication behavior, TLS termination, request rewriting and route status with representative requests before moving traffic. The recovered chart’s old prerequisites and database assumptions are historical; use the chosen topology’s current documentation. This review establishes deployment behavior, not a benchmark or complete certification of every extension.
Historical upstream link check · 2026-10-09
The recorded upstream address redirects to https://konghq.com/products/kong-gateway and returned HTTP 200 on 2026-10-09. Link availability does not certify the historical installation instructions or current security support.
Website availability is separate from project, chart and image support. Use the current guidance and primary sources on this page to assess the distribution.
Historical Kubedex content
Original publication: 2018-09-13T15:25:26+00:00. Preserved for context. Commands, versions, prices and results below reflect the original research.
Kong is an API gateway. That means it is a form of middleware between computing clients and your API-based applications. Kong easily and consistently extends the features of your APIs. Some of the popular features deployed through Kong include authentication, security, traffic control, serverless, analytics & monitoring, request/response transformations, and logging.
As of version 1.0 Kong is now also a service mesh. You may be interested in our service mesh comparison article.
What is Kong, technically?
You’ve probably heard that Kong is built on Nginx, leveraging its stability and efficiency. But how is this possible exactly?
To be more precise, Kong is a Lua application running in Nginx and made possible by the lua-nginx-module. Instead of compiling Nginx with this module, Kong is distributed along with OpenResty, which already includes lua-nginx-module. OpenResty is not a fork of Nginx, but a bundle of modules extending its capabilities.
This sets the foundations for a pluggable architecture, where Lua scripts (referred to as ”plugins”) can be enabled and executed at runtime. Because of this, we like to think of Kong as a paragon of microservice architecture: at its core, it implements database abstraction, routing and plugin management. Plugins can live in separate code bases and be injected anywhere into the request lifecycle, all in a few lines of code.
Prerequisites
- Kubernetes 1.8+ with Beta APIs enabled.
- PV provisioner support in the underlying infrastructure if persistence is needed for Kong datastore.
Features:
- Authentication: Protect your services with an authentication layer.
- Traffic Control: Manage, throttle, and restrict inbound and outbound API traffic.
- Analytics: Visualize, inspect, and monitor APIs and microservice traffic.
- Transformations: Transform requests and responses on the fly.
- Logging: Stream request and response data to logging solutions.
- Serverless: Invoke serverless functions via APIs.
- Add your API on Kong: After installing and starting Kong, use the Admin API on port 8001 to add a new API. Kong will route every incoming request with the specified public DNS to the associated target URL.
- Add Plugins on the API: Then add extra functionality by using Kong Plugins. You can also create your own plugins.
- Make a Request: …and then you can consume the API on port 8000 by requesting the public DNS specified. In production point the public DNS to Kong. It also supports URL path routing.
Why use Kong?
Compared to other API gateways, Kong has many important advantages that are not found in the market today. Choose Kong to ensure your API gateway platform is:
- Radically Extensible
- Blazingly Fast
- Open Source
- Platform Agnostic
- Cloud Native
- RESTful
These Kong advantages apply to both Kong Community Edition and Kong Enterprise Edition. The full set of Kong functionality is described in the publicly available documentation.
How does Kong work?
A typical Kong setup is made of two main components:
- Kong’s server, based on the widely adopted NGINX HTTP server, which is a reverse proxy processing your clients’ requests to your upstream services.
- Kong’s datastore, in which the configuration is stored to allow you to horizontally scale Kong nodes. Apache Cassandra and PostgreSQL can be used to fulfill this role.
- Kong needs to have both these components set up and operational.
Kong server
The Kong Server, built on top of NGINX, is the server that will actually process the API requests and execute the configured plugins to provide additional functionalities to the underlying APIs before proxying the request upstream.
Kong listens on several ports that must allow external traffic and are by default:
- 8000 for proxying. This is where Kong listens for HTTP traffic. See proxy_listen.
- 8443 for proxying HTTPS traffic. See proxy_listen_ssl.
- Additionally, those ports are used internally and should be firewalled in production usage:
- 8001 provides Kong’s Admin API that you can use to operate Kong. See admin_api_listen.
- 8444 provides Kong’s Admin API over HTTPS. See admin_api_ssl_listen.
You can use the Admin API to configure Kong, create new users, enable or disable plugins, and a handful of other operations. Since you will be using this RESTful API to operate Kong, it is also extremely easy to integrate Kong with existing systems.
Kong datastore
Kong uses an external data store to store its configuration such as registered APIs, Consumers, and Plugins. Plugins themselves can store every bit of information they need to be persisted, for example, rate-limiting data or Consumer credentials.
Kong maintains a cache of this data so that there is no need for a database roundtrip while proxying requests, which would critically impact performance. This cache is invalidated by the inter-node communication when calls to the Admin API are made. As such, it is discouraged to manipulate Kong’s datastore directly, since your nodes cache won’t be properly invalidated.
This architecture allows Kong to scale horizontally by simply adding new nodes that will connect to the same datastore and maintain their own cache.
The post Kong appeared first on kubedex.com.
Sources & further reading
Spotted something that needs another look?
Help improve this page →