Alex Clemmer

Find me on:

Recent Posts

Pulumi at SF Kubernetes Meetup

Posted by Alex Clemmer on Jan 10, 2019 11:17:27 AM

Next Thursday (January 17), we'll be presenting at the SF Kubernetes meetup, alongside Pulumi's friends at Gravitational!

Read More

Topics: Kubernetes

Using Helm and Pulumi to define cloud native infrastructure as code

Posted by Alex Clemmer on Oct 31, 2018 1:21:54 PM

The Helm community is one of the brightest spots in the infrastructure ecosystem: collectively, it has accumulated person-decades of operational expertise to produce Kubernetes manifests that “just work.”

But for many users, it is not feasible to run everything in Kubernetes, and the community is just starting to develop answers to questions like: what happens when a Helm Chart needs to interface with, for example, a managed database like AWS RDS or Azure CosmosDB?

Read More

Topics: Kubernetes, Azure

How do Kubernetes Deployments work? An adversarial perspective.

Posted by Alex Clemmer on Oct 3, 2018 9:08:41 AM

This post is part 3 in a series on the Kubernetes API. Part 1 focused on the lifecycle of a Pod, part 2 focused on the lifecycle of a Service.

What is happening when a Deployment rolls out a change to your app? What does it actually do when a Pod crashes or is killed? What happens when a Pod is re-labled so that it's not targeted by the Deployment?

Deployment is probably the most complex resource type in Kubernetes core. Deployment specifies how changes should be rolled out over ReplicaSets, which themselves specify how Pods should be replicated in a cluster.

In this post we continue our exploration of the Kubernetes API, cracking Deployment open using kubespy, a small tool we developed to observe Kubernetes resources in real-time.

Using kubespy trace, for example, we can observe at a high level what happens when Deployment rolls out a new version of an application:

Read More

Topics: Kubernetes

kubespy trace: a real-time view into the heart of a Kubernetes Service

Posted by Alex Clemmer on Sep 26, 2018 8:21:33 AM

This post is part 2 in a series on the Kubernetes API. Part 1 focused on the lifecycle of a Pod.

Why isn't my Pod getting any traffic?

Read More

Topics: Kubernetes

Kubespy, and the lifecycle of a Pod, in 4 images

Posted by Alex Clemmer on Sep 18, 2018 7:55:40 AM

This post is part 1 in a series.

One of the most popular features of the recent v0.15.2 release of Pulumi is fine-grained status updates for Kubernetes resources. On the CLI they look like this:

Read More

Topics: Kubernetes

Simple, Reproducible Kubernetes Deployments

Posted by Alex Clemmer on Aug 24, 2018 5:04:52 PM

Kubernetes is a powerful container orchestrator for cloud native applications that can run on any cloud -- AWS, Azure, GCP -- in addition to hybrid and on-premises environments. Its CLI, kubectl, offers basic built-in support for performing deployments, but intentionally stops short here. In particular, it doesn't offer diffs and previews, the ability to know when a deployment has succeeded or failed, and why, and/or sophisticated deployment orchestration.

In this post, we’ll see how Pulumi, an open source cloud native development platform, can not only let you express Kubernetes programs in real programming languages, like TypeScript, instead of endless YAML templates, but also how Pulumi delivers simple and reproducible, yet powerful, Kubernetes deployment workflows.

Read More

Topics: Infrastructure, Kubernetes, TypeScript