Kubernetes

Caching Unstructured Objects using controller-runtime

This is a short blog to let you know that objects represented in unstructured.Unstructured will not be cached by the client returned from manager.Manager by default. UPDATED on Jan. 9th, 2023 The trick described in this article is no longe…

47 Things To Become a Kubernetes Expert

I've been leading a project team for 3 years and have developed a large system around Kubernetes. In this article, I'd like to share my knowledge and findings of what I think important when developing custom Kubernetes controllers. Please …

Use go-grpc-middleware with kubebuilder

Kubernetes and gRPC are technologies to build distributed microservices. Writing gRPC servers in Go is fun and easy. With go-grpc-middleware, you can add various features to gRPC servers including access logs and Prometheus metrics. Kubebu…

An example of using dynamic client of k8s.io/client-go

In this article, I describe how to write a Kubernetes client in Go using the dynamic client in k8s.io/client-go package. During the course, you can learn the following things: The difference between typed clients and the dynamic client. Re…

Writing and testing Kubernetes webhooks using Kubebuilder v2

Recently, I am leading a project to re-design our on-premise data centers using Kubernetes. Inevitably there are opportunities to develop Kubernetes native applications. The architecture of Kubernetes is like "hub-and-spoke"; the center of…