heptio / contour
- четверг, 2 ноября 2017 г. в 03:15:23
Contour is a Kubernetes ingress controller for Lyft's Envoy proxy.
Maintainers: Heptio
Contour is an Ingress controller for Kubernetes that works by deploying the Envoy proxy as a reverse proxy and load balancer. Unlike other Ingress controllers, Contour supports dynamic configuration updates out of the box while maintaining a lightweight profile.
This is an early release so that we can start sharing with the community. Check out the roadmap to see where we plan to go with the project.
Contour is tested with Kubernetes clusters running version 1.7 and later, but should work with earlier versions.
You can try out Contour by creating a deployment from a hosted manifest -- no clone or local install necessary.
What you do need:
type: LoadBalancer
(AWS Quickstart cluster or Minikube, for example)kubectl
configured with admin access to your clusterSee the deployment documentation for more deployment options if you don't meet these requirements.
Run:
$ kubectl apply -f http://j.hept.io/contour-deployment-rbac
If RBAC isn't enabled on your cluster (for example, if you're on GKE with legacy authorization), run:
$ kubectl apply -f http://j.hept.io/contour-deployment-norbac
This command creates:
heptio-contour
with two instances of Contour in the namespacetype: LoadBalancer
that points to the Contour instancesIf you don't have an application ready to run with Contour, you can explore with kuard.
Run:
$ kubectl apply -f http://j.hept.io/contour-kuard-example
This example specifies a default backend for all hosts, so that you can test your Contour install. It's recommended for exploration and testing only, however, because it responds to all requests regardless of the incoming DNS that is mapped. You probably want to run with specific Ingress rules for specific hostnames.
Now you can retrieve the external address of Contour's load balancer:
$ kubectl get -n heptio-contour service contour -o wide
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
contour 10.106.53.14 a47761ccbb9ce11e7b27f023b7e83d33-2036788482.ap-southeast-2.elb.amazonaws.com 80:30274/TCP 3h app=contour
On Minikube:
$ minikube service -n heptio-contour contour --url
http://192.168.99.100:30588
How you configure DNS depends on your platform:
/etc/hosts
.For more deployment options, including uninstalling Contour, see the deployment documentation.
See also the Kubernetes documentation for Services and Ingress.
The detailed documentation provides additional information, including an introduction to Envoy and an explanation of how Contour maps key Envoy concepts to Kubernetes.
If you encounter any problems that the documentation does not address, file an issue.
Thanks for taking the time to join our community and start contributing!
See the list of releases to find out about feature changes.