/kubernetes-ingress-controller

Kong for Kubernetes: the official Ingress Controller for Kubernetes.

Primary LanguageGoApache License 2.0Apache-2.0

Kong for Kubernetes

Build Status

Use Kong for Kubernetes Ingress.
Configure plugins, health checking, load balancing and more in Kong for Kubernetes Services, all using Custom Resource Definitions(CRDs) and Kubernetes-native tooling.

Tables of content

Features

  • Ingress routing
    Use Ingress resources to configure Kong
  • Enhanced API management using plugins
    Use a wide-array of plugins to monitor, transform, protect your traffic.
  • Native gRPC support Proxy gRPC traffic and gain visibility into it using Kong's plugin.
  • Health checking and Load-balancing
    Load balance requests across your pods and supports active & passive health-checks.
  • Request/response transformations
    Use plugins to modify your requests/responses on the fly.
  • Authentication
    Protect your services using authentication methods of your choice.
  • Declarative configuration for Kong
    Configure all of Kong using CRDs in Kubernetes and manage Kong declaratively.

Get started

You can use Minikube on your local machine or use a hosted k8s service like GKE.

Setting up Kong for Kubernetes is as simple as:

# using YAMLs
$ kubectl apply -f https://bit.ly/k4k8s

# or using Helm
$ helm repo add kong https://charts.konghq.com
$ helm repo update

# Helm 2
$ helm install kong/kong

# Helm 3
$ helm install kong/kong --generate-name --set ingressController.installCRDs=false

If you are setting up Kong for Kubernetes Enterprise, please follow along this guide.

Follow the Getting Started guide to start using Ingress in Kubernetes.

Documentation

All documentation around Kong Ingress Controller is present in this repository inside the docs directory. Pull Requests are welcome for additions and corrections.

Version support matrix

Version compatibility doc details on compatibility between versions of the controller and versions of Kong, Kong for Kubernetes Enterprise and Kong Enterprise.

Master branch builds

If you would like to use the latest and the greatest version of the controller, you can use latest tag from the master repository hosted on Bintray:

docker pull kong-docker-kubernetes-ingress-controller.bintray.io/master:latest

Seeking help

Please search through the posts on Kong Nation as it's likely that another user has run into the same problem. If you don't find an answer, please feel free to post a question. For a feature request, please post in Feature Suggestions category.

You can also talk to the developers behind Kong in the #kong channel on the Kubernetes Slack server.

If you've spotted a bug, please open an issue on our Github.

License

Copyright 2018-2020 Kong Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.