2022-02-16 19:54:43 +00:00
---
layout: docs
page_title: Consul API Gateway Technical Specifications
description: >-
This topic describes technical specifications for Consul API Gateway.
---
2022-02-22 21:57:04 +00:00
# Technical Specifications
2022-02-23 00:44:30 +00:00
This topic describes the technical specifications associated with using Consul API Gateway.
## Requirements
Verify that your environment meets the following requirements prior to using Consul API Gateway.
### Datacenter Requirements
2022-02-22 21:57:04 +00:00
2022-02-22 22:43:46 +00:00
Your datacenter must meet the following requirements prior to configuring the Consul API Gateway:
- Kubernetes 1.21+
2022-06-21 00:00:11 +00:00
- Kubernetes 1.24 is not supported at this time.
2022-02-22 22:43:46 +00:00
- `kubectl` 1.21+
2022-06-21 00:00:11 +00:00
- Consul 1.11.2+
- HashiCorp Consul Helm chart 0.45.0+
2022-02-24 15:25:58 +00:00
- Consul Service Mesh must be deployed on the Kubernetes cluster that API Gateway is deployed on.
2022-04-27 18:44:39 +00:00
- Envoy: Envoy proxy support is determined by the Consul version deployed. Refer to [Envoy Integration](/docs/connect/proxies/envoy) for details.
2022-02-22 22:43:46 +00:00
2022-02-23 00:44:30 +00:00
### TCP Port Requirements
The following table describes the TCP port requirements for each component of the API Gateway.
| Port | Description | Component |
2022-04-26 03:59:18 +00:00
| ---- | ----------- | --------- |
2022-02-23 00:44:30 +00:00
| 9090 | Secret discovery service (SDS) | Gateway controller pod <br/> Gateway instance pod |
| 20000 | Kubernetes readiness probe | Gateway instance pod |
| Configurable | Port for scraping Prometheus metrics. Disabled by default. | Gateway controller pod |
2022-02-22 21:57:04 +00:00
## Consul Server Deployments
- Consul Editions supported: OSS and Enterprise
- Supported Consul Server deployment types:
2022-02-22 22:43:46 +00:00
- Self-Managed
2022-02-22 21:57:04 +00:00
- HCP Consul
2022-09-08 18:38:27 +00:00
### Limited Support of some Consul Features
2022-09-08 19:51:44 +00:00
The following table lists API Gateway limitations related to specific Consul features
2022-09-08 18:38:27 +00:00
| Consul Feature | Limitation |
| -------------- | ---------- |
| Admin Partitions | API Gateway can deployed only in the default Admin Partition. |
| Data Center Federation | When multiple Consul Data Centers are fererated together, API gateway can only be deployed in the Priary Data Center. |
| Routing between Data Centers | When multiple Consul Data Centers are fererated together, API gateway can route traffic only to Services in the local Data Center. Howeve, API Gateway can route to Services in othe Kubernetes clusters when they are in the same Consul Data Center. See [Single Consul Datacenter in Multiple Kubernetes Clusters](https://www.consul.io/docs/k8s/deployment-configurations/single-dc-multi-k8s) for more details. |
2022-02-22 21:57:04 +00:00
## Deployment Environments
Consul API Gateway can be deployed in the following Kubernetes-based environments:
- Generic Kubernetes
- AWS Elastic Kubernetes Service (EKS)
- Google Kubernetes Engine (GKE)
- Azure Kubernetes Service (AKS)
2022-04-26 03:59:18 +00:00
## Kubernetes Gateway API Specification - Supported Versions
2022-02-22 21:57:04 +00:00
2022-04-26 03:59:18 +00:00
See the Release Notes for the version of Consul API Gateway being used.
2022-02-22 21:57:04 +00:00
## Resource Allocations
2022-02-23 00:44:30 +00:00
The following resources are allocated for each component of the API Gateway.
2022-02-22 21:57:04 +00:00
### Gateway Controller Pod
2022-04-26 03:59:18 +00:00
- **CPU**: None. Either the namespace or cluster default is allocated, depending on the Kubernetes cluster configuration.
- **Memory**: None. Either the the namespace or cluster default is allocated, depending on the Kubernetes cluster configuration.
2022-02-22 21:57:04 +00:00
### Gateway Instance Pod
2022-04-26 03:59:18 +00:00
- **CPU**: None. Either the namespace or cluster default is allocated, depending on the Kubernetes cluster configuration.
- **Memory**: None. Either the namespace or cluster default is allocated, depending on the Kubernetes cluster configuration.