6 ms·
Kong gateway reaches 1.0 GA, now supports service mesh
- aloisbarreras 8y agoGreat work guys! I see that "Kong’s core router can now route raw TCP traffic." Can you elaborate? What kinds of routing parameters and rules can Kong use to route raw TCP traffic?
- fosk 8y agoSince we now support Service Mesh, any TCP traffic is supported. The full documentation can be found at https://docs.konghq.com/ https://docs.konghq.com/
- hisham_hm 8y agoYou can define a route to be either L7 ("http", "https") or L4 ("tcp", "tls"). For L7 routes you can use the usual routing parameters that were already available in Kong, like routing by host, by paths (prefix or regex-based) and/or by method. For stream routing, you can route by IP source port, IP destination port and/or by SNI in the case of TLS connections.
- Supermighty 8y agoWhat would be the best way to deploy this with my application in Kubernetes?
- yolo42 8y agoThere are a few options to deploy Kong as your API Gateway: Kong can work as an Ingress Controller for your Kubernetes cluster and run plugins for your traffic at the Ingress layer. Refere to the repo for more details: https://github.com/kong/kubernetes-ingress-controller https://github.com/kong/kubernetes-ingress-controller You can simply deploy it as an application using the Helm chart: https://github.com/helm/charts/tree/master/stable/kong https://github.com/helm/charts/tree/master/stable/kong
- judithpatudith 8y agoThere's a helm chart for that :) https://github.com/helm/charts/tree/master/stable/kong https://github.com/helm/charts/tree/master/stable/kong
- rdli 8y agoIf you're using Kubernetes, you should check out Ambassador. Declarative syntax, no database (persists to etcd), very high performance, built on Envoy Proxy.
- hrrsppd 8y agoHow does 1.0 handle database migrations?
- mikejulietbravo 8y agoCheck out the Upgrade Path here: https://github.com/Kong/kong/blob/master/UPGRADE.md https://github.com/Kong/kong/blob/master/UPGRADE.md
- yolo42 8y agoKong runs at a critical point in any infrastructure. Having any sort of downtime is usually unacceptable. To avoid downtime due to Kong upgrades, Kong now supports a blue-green deployment method where for two Kong nodes of version A and version A+1 can run together at the same time as the upgrade is being rolled out, and then switching all traffic to A+1.
- judithpatudith 8y agoKong has a migrations framework that handles them for you. If you're doing a migration because you're upgrading from an older version of Kong you'll want to do that only once the Kong nodes are upgraded. For example, here are the instructions on upgrading to 1.0, which walk you through a couple migrations scenarios. https://discuss.konghq.com/t/kong-1-0-is-now-generally-available-1-0-0-released/2496 https://discuss.konghq.com/t/kong-1-0-is-now-generally-avail...
- philip1209 8y agoCongrats! I worked for Kong's VP of Engineering a couple of years ago at OpenDNS. He's one of the best managers I've seen.
- justicezyx 8y agoWhat would be the relevancy to this news? And could you name a few traits of this person that make him/her stand out?
- itmeyou 8y agoSo I admittedly don't know much about this stuff, but what would be the difference between using Kong and the Nginx ingress controller? What advantages/improvements would I see/be able to use?
- mikejulietbravo 8y agoKong's K8s Ingress Controller lets you configure and run plugins (custom code) on your proxy traffic. This gives you a lot of power on how you’d like to route, authenticate, shape your traffic. Nginx gives you the ability to tweak functionality, but it's not as dynamic or as easy out of the box.
- merlincorey 8y ago> Nginx gives you the ability to tweak functionality, but it's not as dynamic or as easy out of the box. NginX supports Lua and Javascript embedded and out of the box on many distributions.
- vorpalhex 8y agoThat is through a set of additional plugins. Kong uses that base and ships with mature implementing plugins including a robust RESTful API for managing config.
- merlincorey 8y ago> That is through a set of additional plugins. Which are compiled and enabled in several distribution packages.
- kureikain 8y agoKong is different from Nginx ingress controller. Without a controller, you have to manually register the endpoint/service. You would want to by pass k8s service and use pod ip directly. That's why they do the kong ingress controller. The main difference is in plugin API. It's very easy to write plugin for Kong. The second is where data is persisted. Kong stores data in db. Therefore they can do something with it. Ingress controller in 0.21 has dynamic backend, they basically hold an in memory objects for api routing rule. Kong shines when you have complex logic routing, want to leverage their API keys authentication. Such as you can easily expose a service, with API key store in db. Where as you have to write a logs of `auth access` rule and store key in configmap/env in Nginx ingress. Nginx ingress config is all about watching configmap/annotations and re-generate config. Such as when new service are added, the config is generated(When new pods are added/remove they use Lua to routing so no more reload in there). In Kong, these are seamless, no reload. All data are stored in either Postgres/Cassandra. That's said, Kong is very nice but it adds more overhead than a simple Nginx ingress.
- nphase 8y agoHow does Kong compare to Tyk?
- jively 8y ago(Caveat: I’m the CEO of Tyk) Tyk offers a more “batteries included” approach to Kong, and so doesn’t rely on external plugin authors to extend the ecosystem. 100% of our dev team are constantly working on our open source components and we like to keep it that way. Because of that, Tyk isn’t “open core” like Kong is, there’s no lock-in or levers to get you to buy our value-adds like our Management Dashboard GUI or our Multi-Data-Center clustering add-on - you should be able to do all API Management without having to pay us a penny. A simple example is OpenID connect support, this is a Kong enterprise plugin, with Tyk that comes as part of the normal gateway. In terms of performance Tyk and Kong are pretty close now (Tyk pre 2.6 was slower) but we believe we now have parity, especially when switching on things like analytics, auth and rate limiting. Tyk works very well in k8s though we don’t have a helm chart yet (coming soon). You can also deploy Tyk as pure SaaS (fully managed), hybrid cloud (we handle back-end and control plane, you install gateways local to services) and full on-prem (install anywhere: K8s, AWS, GCP, Azure - even on Arm servers). We’re unique in that regard. Tyk has always been separated into control-plane and operations-level components (our gatewaybis very small), so we don’t see that as something new to crow about. If you use our Dashboard, it moves the configuration and data layer out of the gateways and moves it centrally. If you use our MDCB system (enterprise) you can extend that capability across clusters in different clouds to get really targeted, distributed API governance. There’s a bunch of other things that are different too, but they are more functional.
- pidginbil 8y agoI’ll need to give it a try.
- jklepatch 8y agoI used Kong in a project recently. Very bare-bones, You need to build your own client for it. Overall, it felt like a blackbox where things magically happened. Totally hated it.
- bullen 8y agoWhat about performance, did you use it so much you got a sense of that? To me there is nothing that beats haproxy so far.
- mikejulietbravo 8y agoThey are different products. Nginx and haproxy are more comparable. If you like HAproxy as a load balancer, you can easily use it with Kong. A lot of people do just that.
- bullen 8y agoBut then what is Kong doing?
- fosk 8y agoHello, CTO of Kong here. You mean a client to consume the Admin API in order to create entities on Kong? If that's the case the community has built lots of open source clients in pretty much any language that would make the job of integrating Kong within an existing system much easier. The community around Kong has also built declarative configuration support that you can use instead of the Admin API. Our official declarative configuration will also be released very soon, and in some environments (like Kubernetes) we already support it.
- wavesquid 8y agoHi all, I was the lead developer on the service mesh implementation. I've just pushed https://github.com/Kong/kubernetes-sidecar-injector https://github.com/Kong/kubernetes-sidecar-injector public, which should make deploying kong a service mesh simple on kubernetes. Let me know if you have any questions, I'll try and check over the next few days.
- vijaykodam 8y agoI see that your Kong service mesh using nginx as the underlying proxy. Are there any plans to use Envoy proxy in future? Currently Istio and Linkerd2 are based on Envoy. Unlike nginx, envoy doesnt have an enterprise version where some enterprise features are held off. Also envoy has very good observability and traffic management features.
- fcantournet 8y agolinkerd2 is not based on Envoy :) It has its own proxy written in rust : https://github.com/linkerd/linkerd2-proxy https://github.com/linkerd/linkerd2-proxy
- rdli 8y agoCurious to see if Kong can do true hitless reloads without proxy restart. Envoy can do this but I thought only NGINX Plus has this capability?
- p0pr0ck5 8y agoYes, Kong's entity configuration (including upstream services) are managed via the runtime, not via reading a config file. This allows for updating proxy configuration without restarting the process itself, allowing for zero-downtime config changes.
- wavesquid 8y agoKong indeed can, it's part of our API gateway for years :)
- scorn4sega 8y agoGreat news! Thanks for sharing.