|
| 1 | +--- |
| 2 | +title: Migrate from NGINX Ingress Controller to NGINX Gateway Fabric |
| 3 | +weight: 800 |
| 4 | +toc: true |
| 5 | +nd-content-type: how-to |
| 6 | +nd-product: NGF |
| 7 | +nd-docs: |
| 8 | +--- |
| 9 | + |
| 10 | +# Migrate from NGINX Ingress Controller |
| 11 | + |
| 12 | +If you're already using NGINX Ingress Controller and want to migrate to NGINX Gateway Fabric, you can use the [ingress2gateway](https://github.com/kubernetes-sigs/ingress2gateway) tool to automatically convert your existing Ingress resources to Gateway API resources. |
| 13 | + |
| 14 | +## Why migrate? |
| 15 | + |
| 16 | +The [Gateway API](https://gateway-api.sigs.k8s.io/) is the next-generation Kubernetes networking API that builds on the limitations of Ingress. Compared to Ingress, Gateway API provides: |
| 17 | + |
| 18 | +- **Role-oriented resources**: Distinct resources for infrastructure providers, cluster operators, and application developers, enabling [separation of concerns](https://gateway-api.sigs.k8s.io/concepts/security-model/#role-oriented-resources). |
| 19 | +- **More expressive routing**: Support for [advanced traffic management](https://gateway-api.sigs.k8s.io/concepts/api-overview/#routes) such as path-based and header-based routing, traffic splitting, and TLS configuration. |
| 20 | +- **Standardization and portability**: A Kubernetes [community standard](https://gateway-api.sigs.k8s.io/) supported by multiple vendors, ensuring consistent behavior across implementations. |
| 21 | +- **Extensibility**: Built on Kubernetes [CRD extensibility](https://gateway-api.sigs.k8s.io/concepts/design-principles/#extensibility) to support new capabilities without breaking the core API. |
| 22 | + |
| 23 | +Migrating to Gateway API with NGINX Gateway Fabric helps future-proof your Kubernetes networking stack, provide a standardized API across implementations, and unlock advanced traffic management features. |
| 24 | + |
| 25 | +## About the ingress2gateway tool |
| 26 | + |
| 27 | +The ingress2gateway tool is a Kubernetes SIG project for converting Ingress resources to Gateway API resources. It supports multiple Ingress providers, including NGINX Ingress Controller. |
| 28 | + |
| 29 | +{{< call-out "important" >}} |
| 30 | +The ingress2gateway tool is a conversion utility that translates Ingress resources to Gateway API equivalents. It is not a complete end-to-end migration solution. You will need to manually review the converted resources, test functionality, and make additional configuration changes as needed for your specific environment. |
| 31 | +{{< /call-out >}} |
| 32 | + |
| 33 | +To convert your existing NGINX Ingress resources to Gateway API resources that work with NGINX Gateway Fabric: |
| 34 | + |
| 35 | +First, [install the ingress2gateway tool](https://github.com/kubernetes-sigs/ingress2gateway?tab=readme-ov-file#installation). |
| 36 | + |
| 37 | +Then run the conversion command for the NGINX provider: |
| 38 | + |
| 39 | +```shell |
| 40 | +ingress2gateway print --providers=nginx --input-file=<your-ingress-file> > gateway-api-resources.yaml |
| 41 | +``` |
| 42 | + |
| 43 | +This tool will analyze your Ingress resources from the input file and output the equivalent Gateway API resources to a file named `gateway-api-resources.yaml`. Finally, review the generated Gateway API resources in the output file and apply them to your cluster: |
| 44 | + |
| 45 | +```shell |
| 46 | +kubectl apply -f gateway-api-resources.yaml |
| 47 | +``` |
| 48 | + |
| 49 | +For detailed information about NGINX-specific features and conversion options, see the [NGINX provider documentation](https://github.com/kubernetes-sigs/ingress2gateway/blob/main/pkg/i2gw/providers/nginx/README.md). |
0 commit comments