Heptio Contour on the Canonical Distribution of Kubernetes
Konstantinos Tsakalozos
on 1 November 2017
Tags: Amazon Web Services , AWS , azure , Charmed Kubernetes , conjure-up , containers , GCE , Heptio , kubernetes
I read the Hacker News post Heptio Contour and I thought “Cool! A project from our friends at Heptio, lets see what they got for us”. I wont lie to you, at first I was a bit disappointed because there was no special mention for Canonical Distribution of Kubernetes (CDK) but I understand, I am asking too much :). Let me cover this gap here.
Deploy CDK
To deploy CDK on Ubuntu you need to just do a:
sudo snap install conjure-up --classic conjure-up kubernetes-core
Using ‘kubernetes-core’ will give you a minimal k8s cluster — perfect for our use case. For a larger, more robust cluster, try ‘canonical-kubernetes.’
Deploy Contour and Demo App
CDK already comes with an ingress solution so you need to disable it and deploy Contour. Here we also deploy the demo kuard application:
> juju config kubernetes-worker ingress=false > kubectl --kubeconfig=/home/jackal/.kube/config apply -f http://j.hept.io/contour-deployment-norbac
> kubectl --kubeconfig=/home/jackal/.kube/config apply -f http://j.hept.io/contour-kuard-example
Get Your App
The Contour service will be on a port that (depending on the cloud you are targeting) might be closed, so you need to open it before accessing kuard:
> kubectl --kubeconfig=/home/jackal/.kube/config get service -n heptio-contour contour -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
contour LoadBalancer 10.152.183.201 <pending> 80:31226/TCP 2m app=contour
juju run --application kubernetes-worker open-port 31226
And here it is running on AWS:
Instead of opening the ports to the outside world you could set the right DNS entries. However, this is specific to the cloud you are deploying to.
As the Contour README says “On AWS, create a CNAME record that maps the host in your Ingress object to the ELB address.”
“If you have an IP address instead (on GCE, for example), create an A record.”
For a localhost deployment your ports should not be blocked and you can fake a DNS entry by editing /etc/hosts.
Thank you Heptio. Keep it up!
Resources
What is Kubernetes?
Kubernetes, or K8s for short, is an open source platform pioneered by Google, which started as a simple container orchestration tool but has grown into a platform for deploying, monitoring and managing apps and services across clouds.
Newsletter signup
Related posts
Meet Canonical at KubeCon + CloudNativeCon North America 2024
We are ready to connect with the pioneers of open-source innovation! Canonical, the force behind Ubuntu, is returning as a gold sponsor at KubeCon +...
How should a great K8s distro feel? Try the new Canonical Kubernetes, now in beta
Try the new Canonical Kubernetes beta, our new distribution that combines ZeroOps for small clusters and intelligent automation for larger production...
Canonical Kubernetes 1.29 is now generally available
A new upstream Kubernetes release, 1.29, is generally available, with significant new features and bugfixes. Canonical closely follows upstream development,...