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

Program Kubernetes with 11 Pulumi Pearls

Posted by Joe Duffy on Sep 12, 2018 4:55:00 AM

In this post, we’ll take a look at 11 “pearls” – bite-sized code snippets – that demonstrate using Pulumi to build and deploy Kubernetes applications using cloud native infrastructure as code. These pearls are organized into three categories, each demonstrating a unique scenario:

  • Config as Real Code: Use your favorite language for authoring applications and configuration, eliminating toil and YAML.
  • Multi-Cloud Infrastructure: Mix cloud services alongside Kubernetes resources and manage them using one set of tools and workflows.
  • Software Delivery as Code: Perform sophisticated continuous delivery of your Kubernetes deployments – including canaries, staged rollouts, leveraging cloud native projects like Envoy and Prometheus – authored in real code.
Read More

Topics: Kubernetes

Cloud Native Infrastructure with Kubernetes and Pulumi

Posted by Joe Duffy on Sep 12, 2018 4:50:00 AM

 

Today we’re pleased to announce Pulumi for Kubernetes, a way to create, deploy, and manage Kubernetes applications using your favorite programming languages, bringing the same lovable experience that works across AWS, Azure, Google Cloud, OpenStack, and other clouds, now to Kubernetes and cloud native architectures. We have built this support in response to significant user interest and real end users scenarios, and are excited to share what we’ve been up to. You can dive right in here and look at some powerful things Pulumi enables here.

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: Kubernetes, TypeScript, Infrastructure

Announcing Pulumi 0.15: Kubernetes, CI/CD, OpenStack,  and more

Posted by Luke Hoban on Aug 15, 2018 10:49:00 AM

Just over a month ago we publicly launched Pulumi, a new cloud native development platform.  The response has been overwhelming and we’ve been hard at work responding to your feedback ever since. 

Today, we are excited to release Pulumi 0.15 and make it available to download.  This release includes improvements across the entire Pulumi development experience. Pulumi supports more platforms (Kubernetes and OpenStack), is faster (Parallelism), simpler (native TypeScript support), richer (serverless frameworks for Azure and GCP),  and is more deeply integrated into the application lifecycle (GitHub App for CI/CD integration).

Read More

Topics: Pulumi News, Kubernetes, Serverless

How to deploy Jenkins to Kubernetes with Pulumi

Posted by Sean Gillespie on Jun 27, 2018 1:51:02 PM

In this blog post, we'll see how to run Jenkins on Kubernetes with Pulumi. We abstract away the complexity of the configuration into a reusable component to enable it to be reused by team mates. Our example is based on adapting a Helm template.

Read More

Topics: Kubernetes

Pulumi Blog

Cloud Native Infrastructure as Code.

Get started

curl -fsSL https://get.pulumi.com/ | sh

Resources

Subscribe to our newsletter

Recent Posts