Summary 2023

In 2023, I overall feel like I’m continuously struggling in adversity, but gradually seeing a glimmer of hope. It’s like climbing uphill with faltering steps, looking up to see the hilltop. I feel that I’ve accumulated some expertise in the cloud-native field, allowing me to gradually share my knowledge and thoughts while enhancing my technical influence.

Starting from 2020, I’ve been studying the Kubernetes source code, and it’s been over three years now without a pause. In 2023, I completed the source code study for:

  • kubectl core framework cli-runtime
  • kubectl apply
  • HPA (Horizontal Pod Autoscaler) controller
  • Crane resource recommendation section
  • VPA (Vertical Pod Autoscaler) recommender
  • Kubelet worker code (versions 1.23 and 1.27)
  • Kube-scheduler default scoring plugins
  • Karmada controller
  • Kube-state-metrics
  • Descheduler main process and node utilization plugin

In August, I aimed to use Karmada to address cluster disaster recovery issues but discovered it wasn’t designed for this scenario. Consequently, I started participating in bi-weekly community meetings, keeping track of the latest developments and contributing to discussions. This involvement led to the opportunity to attend KubeCon China 2023 for free.

Participation in the community highlighted the importance of well-written issues and proposals, as well as the need to consider various aspects when designing features (maintainability, readability, compatibility, etc.), involving constant trade-offs.

Contributions to Cilium, VPA, and Karmada projects.

Before August, I was busy researching source code, only writing blog posts when the topics seemed unique or rarely covered. Starting from August, I committed to documenting my research, regardless of whether others had written about it or if I felt I wrote better. By December, I achieved my goal of publishing 10 blog posts.

I migrated the blog theme from “Even” to “Doit” in August and moved the blog to Cloudflare Pages in October. Although I expected faster access, it slowed down. I’ve been researching how to leverage Cloudflare for better blog access, including cache settings. Current access speed is much better than before, but some slow access instances persist, leading me to prepare for frontend performance optimization, despite limited frontend knowledge.

Most Visited Articles:

Resource Recommendation Algorithms for Crane and VPA

Why Is HPA Scaling Slow

The first article, “Resource Recommendation Algorithms for Crane and VPA”, was discovered and shared by Hu Qiming, leading to a wave of visits. It was later found plagiarized on WeChat and CSDN. While I welcome reposting, proper attribution is required.

“Why HPA Scaling Is Slow” was shared in WeChat groups and recommended by the “云原生社区动态”(Cloud-Native Community Dynamics) official account, resulting in another wave of visits.

Intermittently going through Geek Time’s “Beauty of Data Structures and Algorithms,” though I’ve forgotten many parts even after the second round. This time, I’m adopting the approach of solving problems after each chapter, but I’ve only covered half of the sections. For areas not covered well in the course, I’ll study from the book “Algorithm.”

Following the advice to be systematic, I’m focusing on improving engineering practices and design patterns. Due to personal issues, I lack a conducive environment for learning and practicing these skills. However, the open-source community provides ample opportunities to learn, with large projects featuring comprehensive test code, elegant code layouts, various design patterns, and strict code standards. This has been the most significant gain from researching source code this year.

However, currently working alone on projects, there’s a lack of practical experience in this area.

Google Search Console and Cloudflare Analytics often report CLS metrics below standard, so the first priority is frontend and performance optimization. Given limited frontend knowledge, this task may take some time.

Complete the remaining sections of “Beauty of Data Structures and Algorithms” and then delve into solving LeetCode problems. This is crucial for interviews.

Previously, I only submitted PRs and engaged in discussions in issues, without participating in the planning and core feature development of projects. In 2024, I hope to contribute to the development of core features.

  • Pod in-place upgrade functionality
  • Koordinator descheduler
  • Scheduler framework
  • API server