kubernetes-ingress-controller

module
v3.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 7, 2024 License: Apache-2.0

README

kong-logo Build Status Go Reference Codecov License Twitter Conformance

Kong Ingress Controller for Kubernetes (KIC)

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

Features | Get started | Documentation | main branch builds | Seeking help

Features

  • Gateway API support Use Gateway API resources (official successor of Ingress resources) to configure Kong. Native support for TCP, UDP, TLS, gRPC and HTTP/HTTPS traffic, reuse the same gateway for multiple protocols and namespaces.
  • Ingress support Use Ingress resources to configure Kong.
  • Declarative configuration for Kong Configure all of Kong features in declarative Kubernetes native way with CRDs.
  • Seamlessly operate Kong Scale and manage multiple replicas of Kong Gateway automatically to ensure performance and high-availability.
  • Health checking and load-balancing Load balance requests across your pods and supports active & passive health-checks.
  • Enhanced API management using plugins Use a wide array of plugins for e.g.
    • authentication
    • request/response transformations
    • rate-limiting

Get started (using Helm)

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

Install the Gateway API CRDs

This command will install all resources that have graduated to GA or beta, including GatewayClass, Gateway, HTTPRoute, and ReferenceGrant.

kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.0.0/standard-install.yaml

Or, if you want to use experimental resources and fields such as TCPRoutes and UDPRoutes, please run this command.

kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.0.0/experimental-install.yaml
Install the Kong Ingress Controller with Helm
helm install kong --namespace kong --create-namespace --repo https://charts.konghq.com ingress

To learn more details about Helm chart follow the Helm chart documentation.

Once installed, please follow the Getting Started guide to start using Kong in your Kubernetes cluster.

Note: Kong Enterprise users, please follow along with our enterprise guide to setup the enterprise version.

Get started (using Operator tech preview)

As an alternative to Helm, you can also install Kong Ingress Controller using the Kong Gateway Operator by following this quick start guide.

Tech Preview warning: Please note that this capability is a Tech Preview (alpha-quality) and should not be depended upon in a production environment.

Container images

Release images

Release builds of Kong Ingress Controller can be found on Docker Hub in kong/kubernetes-ingress-controller repository.

At the moment we're providing images for:

  • Linux amd64
  • Linux arm64
main branch builds

Nightly pre-release builds of the main branch are available from the kong/nightly-ingress-controller repository hosted on Docker Hub:

main contains unreleased new features for upcoming minor and major releases:

docker pull kong/nightly-ingress-controller:nightly

Documentation

All documentation for the Kong Ingress Controller is present in the kong/docs.konghq.com repository. Pull Requests are welcome for additions and corrections.

Guides and Tutorials

Please browse through the guides to get started and to learn specific ingress controller operations.

Contributing

We ❤️ pull requests and we’re continually working hard to make it as easy as possible for developers to contribute. Before beginning development with the Kong Ingress Controller, please familiarize yourself with the following developer resources:

Seeking help

Please search through the FAQs, posts on the discussions page or the Kong Nation Forums 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.

If you've found a bug, please open an issue.

For a feature request, please open an issue using the feature request template.

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

Community meetings

You can join monthly meetups hosted by Kong to ask questions, provide feedback, or just to listen and hang out. See the Online Meetups Page to sign up and receive meeting invites and Zoom links.

Preview and Experimental Features

At any time the KIC may include features or options that are considered experimental and are not enabled by default, nor available in the Kong Documentation Site.

To try out new features that are behind feature gates, please see the preview features in FEATURE_GATES.md and documentation for these preview features can be found in FEATURE_PREVIEW_DOCUMENTATION.md.

Directories

Path Synopsis
hack
cleanup
This script cleans up orphaned GKE clusters and Konnect runtime groups that were created by the e2e tests (caued by e.g.
This script cleans up orphaned GKE clusters and Konnect runtime groups that were created by the e2e tests (caued by e.g.
internal
admission/validation/consumers/credentials
Package credentials includes validators for the credentials provided for KongConsumers.
Package credentials includes validators for the credentials provided for KongConsumers.
cmd
cmd/rootcmd
Package rootcmd implements the cobra.Command that manages the controller manager lifecycle.
Package rootcmd implements the cobra.Command that manages the controller manager lifecycle.
controllers/configuration
Package configuration contains Kubernetes controllers responsible for configuration.konghq.com grouped API types.
Package configuration contains Kubernetes controllers responsible for configuration.konghq.com grouped API types.
dataplane
Package dataplane provides functionality for communicating with and providing configuration to backend dataplane APIs.
Package dataplane provides functionality for communicating with and providing configuration to backend dataplane APIs.
manager
Package manager implements the controller manager for all controllers
Package manager implements the controller manager for all controllers
manager/metadata
Package metadata includes metadata variables for logging and reporting.
Package metadata includes metadata variables for logging and reporting.
pkg
apis/configuration/v1
Package v1 contains API Schema definitions for the konghq.com v1 API group.
Package v1 contains API Schema definitions for the konghq.com v1 API group.
apis/configuration/v1alpha1
Package v1alpha1 contains API Schema definitions for the configuration.konghq.com v1alpha1 API group.
Package v1alpha1 contains API Schema definitions for the configuration.konghq.com v1alpha1 API group.
apis/configuration/v1beta1
Package v1beta1 contains API Schema definitions for the configuration.konghq.com v1beta1 API group.
Package v1beta1 contains API Schema definitions for the configuration.konghq.com v1beta1 API group.
apis/incubator
Package incubator contains API Schema definitions for the incubator.ingress-controller.konghq.com API group.
Package incubator contains API Schema definitions for the incubator.ingress-controller.konghq.com API group.
apis/incubator/v1alpha1
Package v1alpha1 contains API Schema definitions for the incubator.ingress-controller.konghq.com v1alpha1 API group.
Package v1alpha1 contains API Schema definitions for the incubator.ingress-controller.konghq.com v1alpha1 API group.
clientset
This package has the automatically generated clientset.
This package has the automatically generated clientset.
clientset/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
clientset/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
clientset/typed/configuration/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
clientset/typed/configuration/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
clientset/typed/configuration/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
clientset/typed/configuration/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
clientset/typed/configuration/v1beta1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
clientset/typed/configuration/v1beta1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
clientset/typed/incubator/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
clientset/typed/incubator/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
scripts
e2e
kongintegration
Package kongintegration contains integration tests that require a Kong instance to be running, but do not require a Kubernetes cluster nor full Kong Ingress Controller deployment.
Package kongintegration contains integration tests that require a Kong instance to be running, but do not require a Kubernetes cluster nor full Kong Ingress Controller deployment.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL