/home/ahmetb
  • Blog
  • About me
  • Tweets
  • GitHub
  • Talks

Tag: Kubernetes

15 July 2019

Choosing an init process for multi-process containers

If you are developing containers you must have heard the “single process per container” mantra. Inherently, there’s nothing wrong1 with running multiple processes in a container, as long as your ENTRYPOINT is a proper init process. Some use cases are having processes are aiding each other (such as a sidecar proxy process) or porting legacy applications.

Recently, I had to spawn a sidecar process inside a container. Docker’s own tutorial for running multiple processes in a container is a good place to start, but not production-ready. So I outsourced my quest on Twitter to find an init replacement that can:

  1. run multiple child processes, but do not restart them
  2. exit as soon as a child process terminates (no point of restarting child processes, let the container crash to be restarted by docker or Kubernetes)
  3. fulfill PID 1 (init process) responsibilities like zombie child reaping and signal forwarding.

In this article I explored pros and cons of some of the options like supervisord, runit, monit, tini/dumb-init, s6 (audience favorite), and tini+bash4.x combo (personal favorite). Read More →

09 July 2019

Authenticating to GKE without gcloud

If you’re using Google Kubernetes Engine and deploying to it from headless environments like CI/CD, you’re probably installing the gcloud command-line tool (perhaps every time) you run a build. There’s a way to authenticate to GKE clusters without gcloud CLI! Read More →

12 February 2019

Mastering the KUBECONFIG file

There is a kubeconfig file behind every working kubectl command.1 This file typically lives at $HOME/.kube/config. Having written kubectx, I’ve interacted with kubeconfigs long enough to write some tips about how to deal with them. Read More →

23 January 2019

The case for a kubectl plugin manager

In my previous article on kubectl plugins, I explained how kubectl plugins work and how you can develop your own plugins. If “kubectl plugins” are new to you, read that article first.

In this article, I will explain why we have developed a kubectl plugin manager at Google, and how it addresses some of the usability, discoverability and packaging problems around kubectl plugins. Read More →

16 January 2019

Write your own kubectl subcommands

Did you know you can create and distribute your own kubectl commands? As of Kubernetes 1.12, kubectl now allows adding external executables as subcommands.

fun fun fun

In this blog post, I’ll explain how kubectl plugin mechanism works, why plugins are useful, how you can write your own plugins, and current challenges in the plugin ecosystem. Read More →

14 September 2018

Advanced Health Check Patterns in Kubernetes

Kubernetes keeps applications running while you’re asleep: This is mostly thanks to the “Readiness and Liveness Probes”. If you don’t know about them, read this cool article.

This article is about some health check patterns I have seen in the wild for applications that are not natively supporting Kubernetes-native probes. Read More →

13 August 2018

Kubernetes Multi-tenancy talk at Google Cloud Next'18

I’ve given a talk with @yoshiat (PM, Google Kubernetes Engine) at Google Cloud Next'18 about Kubernetes Multi-Tenancy Best Practices in San Francisco last month!

You can watch the recording and look at the slides. Read More →

31 May 2018

Skaffold: happy Kubernetes workflows

Skaffold is my top Kubernetes developer tool of the year so far. Since its accidental reveal about 3 months ago, it already got 3,700 stars on GitHub. Clearly the community is lovin’ it. Read More →

  • ««
  • «
  • 1
  • 2
  • 3
  • »
  • »»