Fundamental EKS requirements

This guide is a summary of AWS EKS Best practices documentation to help me to skim through some concepts that i usually refer to. For details, please have a look to official EKS docs mentioned on Resources section. EKS (Amazon Elastic Kubernetes Service) It manages Kubernetes control-plane on behalf of you, ensures that each cluster has its own control plane. So, as an end-user, you only need to handle your workloads in worker nodes. All control plane related stuff will be handled by AWS. ...

August 13, 2024 · 5 min · Burak Sekili

Concurrency Notes in Go

Concurrency Channels Unbuffered channel If channel is unbuffered 1 ch := make(chan struct{}) sending a data to channel will block the goroutine as the channel is nil. 1 2 3 4 5 6 7 package main func main() { ch := make(chan struct{}) ch <- struct{}{} } Output of this program is: 1 2 3 4 5 6 7 $ go run main.go fatal error: all goroutines are asleep - deadlock! goroutine 1 [chan send]: main.main() /Users/buraksekili/projects/concur/main.go:35 +0x30 exit status 2 As reading from non-nil channel blocks goroutine and since there is no other goroutine reading from this channel exists, the program panics. ...

January 24, 2024 · 3 min · Burak Sekili

Diving into controller-runtime | Manager

Introduction controller-runtime package has become a fundamental tool for most Kubernetes controllers, simplifying the creation of controllers to manage resources within a Kubernetes environment efficiently. Users tend to prefer it over client-go. The increased adoption of projects like Kubebuilder or Operator SDK has facilitated the creation of Kubernetes Operator projects. Users need to implement minimal requirements to start with Kubernetes controllers, thanks to these projects. As a developer working on Kubernetes projects, I inevitably touch code pieces utilizing controller-runtime Whenever I dive into code base, I always learn something new about the underlying mechanism of Kubernetes. ...

November 2, 2023 · 9 min · Burak Sekili