การเขียน Controller สำหรับ Kubernetes ในภาษา Go โดยใช้ controller-runtime เป็นมาตรฐานที่นิยมกันอย่างแพร่หลาย แต่เมื่อระบบมีขนาดใหญ่ขึ้น นักพัฒนามักประสบปัญหาเกี่ยวกับหน่วยความจำหรือข้อมูลที่ไม่อัปเดต บทความนี้จึงเจาะลึกว่าโดยปกติแล้วฟังก์ชัน r.Get() และ r.List() ภายใน Reconciler จะไม่ได้อ่านข้อมูลจาก API Server โดยตรง แต่จะอ่านจาก Local Cache ที่สร้างขึ้นจากการทำ List และ Watch
การออกแบบลักษณะนี้ช่วยให้การอ่านข้อมูลรวดเร็วและไม่สร้างภาระให้ Control Plane แม้จะมีการเรียกใช้ถี่เพียงใดก็ตาม อย่างไรก็ตาม นักพัฒนาจำเป็นต้องระวังเรื่องความสอดคล้องของข้อมูล (Consistency) เนื่องจากข้อมูลใน Cache อาจจะยังไม่ได้รับการอัปเดตทันทีหลังจากที่มีการเขียน (Write) ข้อมูลลงไปใน API Server และการตั้งค่า Index ที่ไม่เหมาะสมอาจนำไปสู่การใช้หน่วยความจำมหาศาลหรือการสแกนข้อมูลแบบ Linear ที่ส่งผลต่อประสิทธิภาพของระบบ