Contour Soup

Bishoy Youssef · November 27, 2020

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

Twitter, Facebook