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!
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.
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.
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.
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.
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.
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.
I recently worked on prototyping a public DNS server using CoreDNS. CoreDNS normally provides serving DNS zone data through files, however it also allows you to proxy to a backend endpoint via gRPC. I used this DNS server as the nameserver for a domain with thousands of subdomains.
This approach allows you to write a custom DNS server in any popular language,
and serve records stored in an external datastore (like a redis cache, mysql
database). In this article, I’ll go over the sample
backend I’ve built.
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.
If you are using Minikube or Docker for Mac/Windows to run your
Kubernetes deployments locally, I have developed a tool to restart containers
automatically when their images are rebuilt: Check out freshpod on GitHub!
How would you debug a Docker container that has no shell, no tools, but a single
statically-compiled executable? Creating docker images FROM scratch
is a trend
on the rise, but is it really taking away our debugging capabilities?