Bear with me while I explore Contour
Here’s the premise that I am building on:
- I know Kubernetes pretty well as an operator, hence I know my way around.
- I am familiar with the concept of serverless programming, but haven’t done anything similar before.
- I am running my project on top of a GKE cluster.
so .. here we go
What is Contour?
- Envoy inside 🤯
- Wait … What is envoy?
What is Envoy?
- tl;dr open source edge and service proxy
- From the docs:
- Envoy is a self contained process that is designed to run alongside every application server. All of the Envoys form a transparent communication mesh in which each application sends and receives messages to and from localhost and is unaware of the network topology.
- This seems to me like enough info to move on, will see if I will need to know more.
OK, back to Contour:
- Contour is an open source Kubernetes ingress controller providing the control plane for the Envoy edge and service proxy.
- Sounds like Contour is an Envoy wrapper.
Try to deploy??
kubectl apply -f https://projectcontour.io/quickstart/contour.yaml
- Output:
namespace/projectcontour created serviceaccount/contour created serviceaccount/envoy created configmap/contour created customresourcedefinition.apiextensions.k8s.io/extensionservices.projectcontour.io created customresourcedefinition.apiextensions.k8s.io/httpproxies.projectcontour.io created customresourcedefinition.apiextensions.k8s.io/tlscertificatedelegations.projectcontour.io created serviceaccount/contour-certgen created rolebinding.rbac.authorization.k8s.io/contour created role.rbac.authorization.k8s.io/contour-certgen created job.batch/contour-certgen-v1.10.0 created clusterrolebinding.rbac.authorization.k8s.io/contour created clusterrole.rbac.authorization.k8s.io/contour created service/contour created service/envoy created deployment.apps/contour created daemonset.apps/envoy created - Phew … A lot of resources.
OK, now what:
- Is there an example I could try?
- Yes