This page will help you get up and running with Contour.
Before you start you will need:
kubectlconfigured with admin access to your cluster
Deploy Contour using the rendered manifest:
$ kubectl apply -f https://projectcontour.io/quickstart/contour.yaml
FEATURE STATE: Contour v1.11.0 alpha
Deploy Contour using the operator. First deploy the operator:
$ kubectl apply -f https://projectcontour.io/quickstart/operator.yaml
This command creates:
contour-operatorto run the operator.
Then create an instance of the Contour custom resource:
$ kubectl apply -f https://projectcontour.io/quickstart/contour-custom-resource.yaml
Deploying Contour using either option creates:
type: LoadBalancerthat points to the Contour’s Envoy instances
If you don’t have an application ready to run with Contour, you can explore with kuard.
$ kubectl apply -f https://projectcontour.io/examples/kuard.yaml
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.
There are a number of ways to validate everything is working. The first way is to use the external address of the Envoy service and the second is to port-forward to an Envoy pod:
Retrieve the external address of Contour’s Envoy load balancer:
$ kubectl get -n projectcontour service envoy -o wide NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) envoy LoadBalancer 10.100.161.248 a9be.eu-west-1.elb.amazonaws.com 80:30724/TCP,443:32097/TCP 4m58s app=envoy
How you configure DNS depends on your platform:
$ kubectl port-forward -n projectcontour svc/envoy 80:80
You probably want to run with specific Ingress rules for specific hostnames.
For more deployment options, see the deployment documentation which includes information about .
The detailed documentation provides additional information, including an introduction to Envoy and an explanation of how Contour maps key Envoy concepts to Kubernetes.
We’ve also got a FAQ for short-answer questions and conceptual stuff that doesn’t quite belong in the docs.