kubernetes-ingress VS apisix

Compare kubernetes-ingress vs apisix and see what are their differences.

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
kubernetes-ingress apisix
28 63
4,532 13,652
1.0% 1.6%
9.8 9.6
5 days ago 4 days ago
Go Lua
Apache License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

kubernetes-ingress

Posts with mentions or reviews of kubernetes-ingress. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-16.
  • ☸️ Kubernetes NGINX Ingress Controller: 10+ Complementary Configurations for Web Applications
    4 projects | dev.to | 16 Oct 2023
    Everything in the YAML snippets below — except for ingress configuration — relates to configuring the NGINX ingress controller. This includes customizing the default configuration.
  • Breaking Terraform files into composable layers
    2 projects | dev.to | 14 Sep 2023
    In these examples, I assume that users have deployed an nginx-ingress-controller to their cluster through the eks layer. This controller is responsible for creating an nlb and exposing Elasticsearch and Kibana to the internet through their ingresses.
  • Implementing TLS in Kubernetes
    13 projects | dev.to | 1 Aug 2023
    Now, you need to install the Nginx Ingress Controller so that it can redirect incoming requests to your payment app to use HTTPS. Since you've exposed the app using nodePort, you need to install the Ingress using a custom value file that specifies the service type to NodePort.
  • Kubernetes cannot upload files larger than 1MB
    1 project | /r/codehunter | 2 Jul 2023
    Kubernetes We have a kubernetes cluster which has a dropwizard based web application running as a service. This application has a rest uri to upload files. It cannot upload files larger than 1MB. I get the following error: ERROR [2017-07-27 13:32:47,629] io.dropwizard.jersey.errors.LoggingExceptionMapper: Error handling a request: ea812501b414f0d9! com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<' (code 60)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')! at [Source: ! 413 Request Entity Too Large! ! 413 Request Entity Too Large! nginx/1.11.3! ! Hide resultsI have tried the suggestions given in https://github.com/nginxinc/kubernetes-ingress/issues/21. I have edited the Ingress to set the proxy-body-size annotation. Also, I have tried using the configMap without any success. we are using kubernetes version 1.5. Please let me know if you need additional information. Answer link : https://codehunter.cc/a/kubernetes/kubernetes-cannot-upload-files-larger-than-1mb
  • A Comprehensive Guide to API Gateways, Kubernetes Gateways, and Service Meshes
    9 projects | dev.to | 8 Jun 2023
    The example below shows how to configure a canary deployment using Nginx Ingress. The custom annotations used here are specific to Nginx:
  • Ingress controller for vanilla k8s
    3 projects | /r/kubernetes | 4 May 2023
    This: https://kubernetes.github.io/ingress-nginx/ Not this: https://docs.nginx.com/nginx-ingress-controller/
  • Assign an External IP to a Node
    1 project | /r/codehunter | 15 Mar 2023
    So far, i've been following the example here to set up an nginx Ingress Controller and some test services behind it. However, I am unable to follow Step 6 which displays the external IP for the node that the load balancer is running on as my node does not have an ExternalIP in the addresses section, only a LegacyHostIP and InternalIP.
  • List of template objects &amp; properties to use with templates?
    1 project | /r/nginx | 2 Mar 2023
  • How to use ACM public certificate for Nginx ingress controller?
    3 projects | /r/kubernetes | 26 Jan 2023
    Also, of personal note, I highly recommend you use the "ingress-nginx" controller which has a huge community and is of much higher quality and flexibility than the "nginx-ingress controller by nginx inc". I've had a lot of success with dozens of clients with this controller. It rocks!
  • Questions about Blue/Green &amp; Canary Deployments (Vanilla K8)
    1 project | /r/kubernetes | 16 Jan 2023
    For example, the ingress project from NGINX has its own CRDs that give better control over service versions and blue/green and canary cutovers https://github.com/nginxinc/kubernetes-ingress/tree/v3.0.0/examples/custom-resources/traffic-splitting

apisix

Posts with mentions or reviews of apisix. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-14.
  • Multi-layer Caching in API Gateway Tackles High Traffic Challenges
    1 project | dev.to | 26 Jan 2024
    Through this intelligent caching mechanism, APISIX efficiently utilizes system resources when handling a large volume of requests, thereby improving overall system performance and stability. APISIX, with its advanced LRU cache, provides developers with a reliable and efficient API gateway solution, facilitating smooth communication with external services.
  • Apache APISIX plugin priority, a leaky abstraction?
    2 projects | dev.to | 14 Dec 2023
    The main issue is that priority is documented in the config-default.yaml file, while the phase is buried in the code. Worse, some plugins run across different phases. For example, let's check the proxy proxy-rewrite plugin and, more precisely, the functions defined there:
  • A "Tiny" APISIX Plugin
    4 projects | dev.to | 27 Nov 2023
    // references: // https://github.com/tetratelabs/proxy-wasm-go-sdk/tree/main/examples // https://github.com/apache/apisix/blob/master/t/wasm/ package main import ( "github.com/tetratelabs/proxy-wasm-go-sdk/proxywasm" "github.com/tetratelabs/proxy-wasm-go-sdk/proxywasm/types" "github.com/valyala/fastjson" ) func main() { proxywasm.SetVMContext(&vmContext{}) } // each plugin has its own VMContext. // it is responsible for creating multiple PluginContexts for each route. type vmContext struct { types.DefaultVMContext } // each route has its own PluginContext. // it corresponds to one instance of the plugin. func (*vmContext) NewPluginContext(contextID uint32) types.PluginContext { return &pluginContext{} } type header struct { Name string Value string } type pluginContext struct { types.DefaultPluginContext Headers []header } func (ctx *pluginContext) OnPluginStart(pluginConfigurationSize int) types.OnPluginStartStatus { data, err := proxywasm.GetPluginConfiguration() if err != nil { proxywasm.LogErrorf("error reading plugin configuration: %v", err) return types.OnPluginStartStatusFailed } var p fastjson.Parser v, err := p.ParseBytes(data) if err != nil { proxywasm.LogErrorf("error decoding plugin configuration: %v", err) return types.OnPluginStartStatusFailed } headers := v.GetArray("headers") ctx.Headers = make([]header, len(headers)) for i, hdr := range headers { ctx.Headers[i] = header{ Name: string(hdr.GetStringBytes("name")), Value: string(hdr.GetStringBytes("value")), } } return types.OnPluginStartStatusOK } // each HTTP request to a route has its own HTTPContext func (ctx *pluginContext) NewHttpContext(contextID uint32) types.HttpContext { return &httpContext{parent: ctx} } type httpContext struct { types.DefaultHttpContext parent *pluginContext } func (ctx *httpContext) OnHttpResponseHeaders(numHeaders int, endOfStream bool) types.Action { plugin := ctx.parent for _, hdr := range plugin.Headers { proxywasm.ReplaceHttpResponseHeader(hdr.Name, hdr.Value) } return types.ActionContinue }
  • 10 Reasons for Choosing API7
    4 projects | dev.to | 20 Nov 2023
    API7 takes Apache APISIX as its robust foundation, which is open-source and has an active community with over 600 contributors all over the world. The nature of open source allows users to examine the source code, which promotes transparency. This transparency helps users understand how APISIX works, verify its security, and identify and fix any potential vulnerabilities or bugs.
  • How is Apache APISIX Fast?
    6 projects | dev.to | 13 Sep 2023
    But the best part is that the libraries mentioned here and Apache APISIX are entirely open source, meaning you can look under the hood and modify things yourself.
  • Ops friendly Apache APISIX
    1 project | dev.to | 17 Aug 2023
    Default configuration
  • Custom Plugin Development For APISIX With Lua And ChatGPT
    5 projects | dev.to | 14 Jun 2023
    4. Plugin definition: It is a really important part of plugin implementation that we define as a table with properties for the version, priority, name, and schema. The name and schema are the plugin's name and schema defined earlier. The version and priority are used by APISIX to manage the plugin. The version typically refers to the version that is currently in use like API versioning. If you publish and update your plugin logic, it is going to be 1.1 (You can set any version you wish). But you need to be very careful in choosing priority. The priority field defines in which order and phase your plugin should be executed. For example, the 'ip-restriction' plugin, with a priority of 3000, will be executed before the 'example-plugin', which has a priority of 0. This is due to the higher priority value of the 'ip-restriction' plugin. If you're developing your own plugin, make sure that you followed the order of plugins not to mess up the order of existing plugins. You can check the order of existing plugins in the config-default.yaml file and open the Apache APISIX Plugin Development Guide to determine.
  • Your opinion on Kong
    4 projects | /r/devops | 22 Mar 2023
    Their use of etcd was a hard pass for me; I don't need more etcd in my life
  • The Ultimate Beginner’s Guide to Open Source Contribution
    12 projects | dev.to | 6 Dec 2022
    Apache APISIX Apache APISIX is an open source, dynamic, real-time, high-performance cloud native API gateway. APISIX provides rich traffic management features such as load balancing, dynamic upstream, canary release, circuit breaking, authentication, observability, and more. Official website https://apisix.apache.org/ GitHub projects APISIX (the core): https://github.com/apache/apisix GitHub - apache/apisix: The Cloud-Native API Gateway GitHub - apache/apisix-dashboard: Dashboard for Apache APISIX GitHub - apache/apisix-website: Apache APISIX Website GitHub - apache/apisix-docker: the docker for Apache APISIX GitHub - apache/apisix-go-plugin-runner: Go Plugin Runner for APISIX GitHub - apache/apisix-java-plugin-runner: APISIX Plugin Runner in Java GitHub - apache/apisix-python-plugin-runner: Apache APISIX Python plugin runner GitHub - apache/apisix-helm-chart: Apache APISIX Helm Chart GitHub - apache/apisix-ingress-controller: ingress controller for K8s
  • A poor man's API
    9 projects | dev.to | 23 Nov 2022
    Grafana configuration. Most of it comes from the configuration provided by APISIX.

What are some alternatives?

When comparing kubernetes-ingress and apisix you can also consider the following projects:

ingress-nginx - Ingress-NGINX Controller for Kubernetes

Kong - 🦍 The Cloud-Native API Gateway and AI Gateway.

amicontained - Container introspection tool. Find out what container runtime is being used as well as features available.

haproxy-lua-http - Simple Lua HTTP helper && client for use with HAProxy.

docker-swarm-ingress - Nginx swarm ingress controller, a minimalistic approach to allow routing into a Docker Swarm based on the public hostnames.

emissary - open source Kubernetes-native API gateway for microservices built on the Envoy Proxy

application-gateway-kubernetes-ingress - This is an ingress controller that can be run on Azure Kubernetes Service (AKS) to allow an Azure Application Gateway to act as the ingress for an AKS cluster.

envoy - Cloud-native high-performance edge/middle/service proxy

ingress - Ingress-NGINX Controller for Kubernetes [Moved to: https://github.com/kubernetes/ingress-nginx]

lua-resty-auto-ssl - On the fly (and free) SSL registration and renewal inside OpenResty/nginx with Let's Encrypt.

traefik - The Cloud Native Application Proxy [Moved to: https://github.com/traefik/traefik]

tyk-operator - Tyk Operator for Kubernetes