Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Kong | 34,397 | 10 hours ago | 260 | apache-2.0 | Lua | |||||
🦍 The Cloud-Native API Gateway | ||||||||||
Kuma | 3,099 | 4 | 15 hours ago | 162 | April 22, 2021 | 340 | apache-2.0 | Go | ||
🐻 The multi-zone service mesh for containers, Kubernetes and VMs. Built with Envoy. CNCF Sandbox Project. | ||||||||||
Kubernetes Ingress Controller | 1,877 | 10 hours ago | 65 | September 27, 2022 | 172 | apache-2.0 | Go | |||
:gorilla: Kong for Kubernetes: The official Ingress Controller for Kubernetes. | ||||||||||
Kong Docs Cn | 668 | 2 months ago | ||||||||
微服务 Api 网关 Kong 最新文档中文版 | ||||||||||
Kong Dist Kubernetes | 243 | 3 years ago | 4 | Shell | ||||||
Kubernetes managed Kong cluster | ||||||||||
Kong Ingress | 95 | 5 years ago | 1 | April 19, 2018 | 10 | other | Go | |||
[DEPRECATED] A Kubernetes Ingress for Kong | ||||||||||
Dadjokes | 92 | 1 | 4 months ago | 11 | April 05, 2021 | mit | PHP | |||
Dadjokes.online: Microservice echo-service as an alternative to httpbin for testing k8s, docker, kong, istio, kuma, etc. Built on FSL php microframework. Who says testing and dev ops can't be fun? | ||||||||||
Kong Operator | 82 | 5 years ago | 8 | bsd-3-clause | Go | |||||
manages kong clusters | ||||||||||
Kong Certbot Agent | 65 | 9 months ago | 2 | mit | PHP | |||||
Let's Encrypt integration with Kong | ||||||||||
Kong Operator | 57 | 5 months ago | 1 | apache-2.0 | Mustache | |||||
Kong Operator for Kubernetes and OpenShift |
Kong Operator is a Kubernetes operator which manages Kong Ingress Controller instances.
With Kong Operator running in your cluster, you can spin up multiple instances of Kong, each of them configured by a Kong
custom resource (example). See the Quick Start section below to get up and running.
dns
and rbac
microk8s addons.spec.ingressClassName
field introduced in Kubernetes v1.18. Instead, use the (deprecated in v1.18) kubernetes.io/ingress.class
annotation.Deploy kong-operator:
Deploy a Kong Ingress Controller with example-ingress-class
Ingress class (see Configuration section for available options):
kubectl create -f - <<EOF
apiVersion: charts.helm.k8s.io/v1alpha1
kind: Kong
metadata:
name: example-kong
spec:
proxy:
type: NodePort
env:
prefix: /kong_prefix/
resources:
limits:
cpu: 500m
memory: 2G
requests:
cpu: 100m
memory: 512Mi
ingressController:
enabled: true
ingressClass: example-ingress-class
installCRDs: false
EOF
Deploy an example Service and expose it with an Ingress:
kubectl apply -f https://bit.ly/echo-service
kubectl create -f - <<EOF
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: demo
annotations:
# Note that the annotation below is deprecated as of Kubernetes 1.18
# in favor of the new spec.ingressClassName field. At the moment of writing
# (Kong Ingress Controller v0.9.0), Kong Ingress Controller does not support
# the new format yet.
kubernetes.io/ingress.class: example-ingress-class
spec:
rules:
- http:
paths:
- path: /foo
backend:
serviceName: echo
servicePort: 8080
EOF
See that Kong works and relays requests to the application!
PROXY_IP=$(kubectl get service example-kong-kong-proxy -o jsonpath={.spec.clusterIP})
curl http://$PROXY_IP/foo/
Optional: See the list of Kong Ingress Controllers present in your cluster:
kubectl get kongs
# Example output:
# NAME AGE
# example-kong 8m
Optional: Remove an existing Kong Ingress Controller from your cluster:
kubectl delete kong example-kong
For every Kong
resource applied to the cluster by kubectl apply
, Kong Operator (being a Helm operator under the hood) operates a Helm release of this Helm chart.
If you're interested in the inner workings, refer to the official Helm documentation. Note, though, that Kong Operator takes all the responsibility of running Helm. You are expected not to interact with Helm at all.
kubectl create
a Kong
resource, Kong Operator will asynchronously install a new Helm release of Kong.kubectl edit
or kubectl patch
(or edit in some another way) an existing Kong
resource, Kong Operator will upgrade the existing release of Kong.kubectl delete
a Kong
resource, Kong Operator will delete the existing release of Kong from the cluster.Stopping the operator does not affect running Kong releases.
Kong
SpecYou can tailor the configuration of a Kong running in your Kubernetes cluster (if you have chosen Kong Operator as the way of deploying Kong) by defining the desired settings in the .spec
field of the Kong
resource.
The reference of the .spec
object (as well as the default values for unset fields) is the values.yaml
file.
If you create a Kong
with an empty .spec
, the Kong will have the default configuration (as per values.yaml
). You can override a certain setting (e.g. ingressController.enabled
) by setting the corresponding field under .spec
of the Kong
resource (in the aforementioned example: .spec.ingressController.enabled
).