Kubernetes
We have multiple clusters and namespaces: some for production, some for load testing, and some for development. In the course of our day-to-day development, we’ve found a number of useful tools that improve our productivity.
(ProTip: A productivity killer is typing kubectl delete ns foo … in the wrong cluster. The first two tools below help address that problem.)
kubectx/kubens, which lets you easily switch between clusters and namespaces.
March 12, 2018 | 1 min read
Microservices
In a microservice architecture, services communicate with each other through L7 protocols such as gRPC and HTTP. Since the network is not reliable (and services can go down!), managing L7 communications is critical for reliability and scale.
February 28, 2018 | 4 min read
Kubernetes Ingress Controller, Load Balancers
This article was updated in December 2021.
This article will introduce the three general strategies in Kubernetes for ingress, and the tradeoffs with each approach. I’ll then explore some of the more sophisticated requirements of an ingress strategy. Finally, I’ll give some guidelines on how to pick your Kubernetes ingress strategy.
What is Kubernetes ingress?
February 28, 2018 | 12 min read
Edge Stack API Gateway
What is Canary Deployment?
Canary deployments are a popular technique for incrementally testing changes on real-world traffic. In a traditional application, canary deployments occur on the granularity of the entire application. This limits the utility of canary deployments, as a single feature cannot be tested against real-world traffic.
With a microservices architecture, this is no longer the case. A single service team is able to test their updates with real-world users.
February 22, 2018 | 5 min read
Development Environments, Cloud Native
A guide to setting up shared development environments for teams on Kubernetes.
Is Minikube melting your laptop? Are your local integration tests suffering because you can’t run dependencies on your development machine?
As organizations adopt Kubernetes and cloud native architectures, development teams will often run into resource constraints as their architectures get more complex. Additionally, Kubernetes presents new challenges for configuring local development environments in comparison with legacy monolithic applications.
January 18, 2018 | 5 min read
Docker, Kubernetes, Kubernetes Ingress Controller
Docker released a beta version of Docker that includes Kubernetes support. I was excited to try it out on my Mac. Here are my notes and observations from experimenting with Docker for Mac with Kubernetes.
Installation
The Docker folks usually do a great job with a simple user experience, and installation was no exception. I downloaded the edge installer for Docker, which uninstalled my stable version of Docker. In the preferences pane, I enabled Kubernetes, and shortly thereafter, I had a working Kubernetes cluster.
January 10, 2018 | 3 min read