This was the most obvious one. Our infrastructure today has far less compute, memory

helal patha
8 min readNov 19, 2020

--

ou can make an attempt to push towards GitOps if you will. If you can’t do that, reducing manual steps to a bare minimum is a great start. We use a combination of eksctl, terraform and our cluster configuration manifests (including manifests for platform services) to set up what we call the “Grofers Kubernetes Platform”. To make the setup and deployment process simpler and repeatable, we have built an automated pipeline to set up new clusters and deploy changes to existing ones.

http://extreme-shop.sistemi.hr/hsf/h-v-e1.html
http://extreme-shop.sistemi.hr/hsf/h-v-e2.html
http://extreme-shop.sistemi.hr/hsf/h-v-e3.html
http://extreme-shop.sistemi.hr/hsf/h-v-e4.html
http://extreme-shop.sistemi.hr/hsf/h-v-e5.html
http://extreme-shop.sistemi.hr/hsf/h-v-e6.html
http://extreme-shop.sistemi.hr/hsf/h-v-e7.html
http://extreme-shop.sistemi.hr/hsf/h-v-e8.html
http://extreme-shop.sistemi.hr/hsf/h-v-e9.html
http://extreme-shop.sistemi.hr/hsf/h-v-e10.html
http://extreme-shop.sistemi.hr/hsf/h-v-e11.html
http://extreme-shop.sistemi.hr/hsf/h-v-e12.html
http://extreme-shop.sistemi.hr/hsf/h-v-e13.html
http://extreme-shop.sistemi.hr/hsf/h-v-e14.html
http://extreme-shop.sistemi.hr/hsf/h-v-e15.html
http://extreme-shop.sistemi.hr/hsf/h-v-e16.html
http://extreme-shop.sistemi.hr/hsf/h-v-e17.html
http://extreme-shop.sistemi.hr/hsf/h-v-e18.html
http://extreme-shop.sistemi.hr/hsf/y-v-u1.html
http://extreme-shop.sistemi.hr/hsf/y-v-u2.html
http://extreme-shop.sistemi.hr/hsf/y-v-u3.html
http://extreme-shop.sistemi.hr/hsf/y-v-u4.html
http://extreme-shop.sistemi.hr/hsf/y-v-u5.html
http://extreme-shop.sistemi.hr/hsf/y-v-u6.html
http://extreme-shop.sistemi.hr/hsf/y-v-u7.html
http://extreme-shop.sistemi.hr/hsf/y-v-u8.html
http://extreme-shop.sistemi.hr/hsf/y-v-u9.html
http://extreme-shop.sistemi.hr/hsf/y-v-u10.html
http://extreme-shop.sistemi.hr/hsf/y-v-u11.html
http://extreme-shop.sistemi.hr/hsf/y-v-u12.html
http://extreme-shop.sistemi.hr/hsf/y-v-u13.html
http://extreme-shop.sistemi.hr/hsf/y-v-u14.html
http://extreme-shop.sistemi.hr/hsf/y-v-u15.html
http://extreme-shop.sistemi.hr/hsf/y-v-u16.html
http://extreme-shop.sistemi.hr/hsf/y-v-u17.html
http://extreme-shop.sistemi.hr/hsf/y-v-u18.html
http://extreme-shop.sistemi.hr/hsf/y-v-u19.html
http://extreme-shop.sistemi.hr/hsf/y-v-u20.html
http://extreme-shop.sistemi.hr/hsf/y-v-u21.html
http://extreme-shop.sistemi.hr/hsf/y-v-u22.html
http://extreme-shop.sistemi.hr/hsf/y-v-u23.html
http://extreme-shop.sistemi.hr/hsf/y-v-u24.html
http://extreme-shop.sistemi.hr/hsf/y-v-u25.html
http://extreme-shop.sistemi.hr/hsf/y-v-u26.html
http://extreme-shop.sistemi.hr/hsf/y-v-u27.html
http://extreme-shop.sistemi.hr/hsf/y-v-u28.html
http://extreme-shop.sistemi.hr/hsf/y-v-u29.html
http://extreme-shop.sistemi.hr/hsf/y-v-u30.html
http://extreme-shop.sistemi.hr/hsf/y-v-u31.html
http://extreme-shop.sistemi.hr/hsf/y-v-u32.html
http://extreme-shop.sistemi.hr/hsf/y-v-u33.html
http://extreme-shop.sistemi.hr/hsf/y-v-u34.html
http://extreme-shop.sistemi.hr/hsf/y-v-u35.html
http://extreme-shop.sistemi.hr/hsf/y-v-u36.html
http://extreme-shop.sistemi.hr/hsf/f-v-a1.html
http://extreme-shop.sistemi.hr/hsf/f-v-a10.html
http://extreme-shop.sistemi.hr/hsf/f-v-a11.html
http://extreme-shop.sistemi.hr/hsf/f-v-a12.html
http://extreme-shop.sistemi.hr/hsf/f-v-a13.html
http://extreme-shop.sistemi.hr/hsf/f-v-a14.html
http://extreme-shop.sistemi.hr/hsf/f-v-a15.html
http://extreme-shop.sistemi.hr/hsf/f-v-a16.html
http://extreme-shop.sistemi.hr/hsf/f-v-a17.html
http://extreme-shop.sistemi.hr/hsf/f-v-a18.html
http://extreme-shop.sistemi.hr/hsf/f-v-a19.html
http://extreme-shop.sistemi.hr/hsf/f-v-a2.html
http://extreme-shop.sistemi.hr/hsf/f-v-a20.html
http://extreme-shop.sistemi.hr/hsf/f-v-a21.html
http://extreme-shop.sistemi.hr/hsf/f-v-a22.html
http://extreme-shop.sistemi.hr/hsf/f-v-a23.html
http://extreme-shop.sistemi.hr/hsf/f-v-a24.html
http://extreme-shop.sistemi.hr/hsf/f-v-a25.html
http://extreme-shop.sistemi.hr/hsf/f-v-a26.html
http://extreme-shop.sistemi.hr/hsf/f-v-a27.html
http://extreme-shop.sistemi.hr/hsf/f-v-a28.html
http://extreme-shop.sistemi.hr/hsf/f-v-a29.html
http://extreme-shop.sistemi.hr/hsf/f-v-a3.html
http://extreme-shop.sistemi.hr/hsf/f-v-a30.html
http://extreme-shop.sistemi.hr/hsf/f-v-a31.html
http://extreme-shop.sistemi.hr/hsf/f-v-a32.html
http://extreme-shop.sistemi.hr/hsf/f-v-a33.html
http://extreme-shop.sistemi.hr/hsf/f-v-a34.html
http://extreme-shop.sistemi.hr/hsf/f-v-a35.html
http://extreme-shop.sistemi.hr/hsf/f-v-a36.html
http://extreme-shop.sistemi.hr/hsf/f-v-a37.html
http://extreme-shop.sistemi.hr/hsf/f-v-a38.html
http://extreme-shop.sistemi.hr/hsf/f-v-a39.html
http://extreme-shop.sistemi.hr/hsf/f-v-a4.html
http://extreme-shop.sistemi.hr/hsf/f-v-a40.html
http://extreme-shop.sistemi.hr/hsf/f-v-a41.html
http://extreme-shop.sistemi.hr/hsf/f-v-a42.html
http://extreme-shop.sistemi.hr/hsf/f-v-a43.html
http://extreme-shop.sistemi.hr/hsf/f-v-a44.html
http://extreme-shop.sistemi.hr/hsf/f-v-a45.html
http://extreme-shop.sistemi.hr/hsf/f-v-a46.html
http://extreme-shop.sistemi.hr/hsf/f-v-a47.html
http://extreme-shop.sistemi.hr/hsf/f-v-a48.html
http://extreme-shop.sistemi.hr/hsf/f-v-a49.html
http://extreme-shop.sistemi.hr/hsf/f-v-a5.html
http://extreme-shop.sistemi.hr/hsf/f-v-a6.html
http://extreme-shop.sistemi.hr/hsf/f-v-a7.html
http://extreme-shop.sistemi.hr/hsf/f-v-a8.html
http://extreme-shop.sistemi.hr/hsf/f-v-a9.html
http://extreme-shop.sistemi.hr/hsf/w-v-j1.html
http://extreme-shop.sistemi.hr/hsf/w-v-j2.html
http://extreme-shop.sistemi.hr/hsf/w-v-j3.html
http://extreme-shop.sistemi.hr/hsf/w-v-j4.html
http://extreme-shop.sistemi.hr/hsf/w-v-j5.html
http://extreme-shop.sistemi.hr/hsf/w-v-j6.html
http://extreme-shop.sistemi.hr/hsf/w-v-j7.html
http://extreme-shop.sistemi.hr/hsf/w-v-j8.html
http://extreme-shop.sistemi.hr/hsf/w-v-j9.html
http://extreme-shop.sistemi.hr/hsf/w-v-j10.html
http://extreme-shop.sistemi.hr/hsf/w-v-k1.html
http://extreme-shop.sistemi.hr/hsf/w-v-k2.html
http://extreme-shop.sistemi.hr/hsf/w-v-k3.html
http://extreme-shop.sistemi.hr/hsf/w-v-k4.html
http://extreme-shop.sistemi.hr/hsf/w-v-k5.html
http://extreme-shop.sistemi.hr/hsf/w-v-k6.html
http://extreme-shop.sistemi.hr/hsf/w-v-k7.html
http://extreme-shop.sistemi.hr/hsf/w-v-k8.html
http://extreme-shop.sistemi.hr/hsf/w-v-k9.html
http://extreme-shop.sistemi.hr/hsf/w-v-k10.html
http://extreme-shop.sistemi.hr/hsf/w-v-m1.html
http://extreme-shop.sistemi.hr/hsf/w-v-m2.html
http://extreme-shop.sistemi.hr/hsf/w-v-m3.html
http://extreme-shop.sistemi.hr/hsf/w-v-m4.html
http://extreme-shop.sistemi.hr/hsf/w-v-m5.html
http://extreme-shop.sistemi.hr/hsf/w-v-m6.html
http://extreme-shop.sistemi.hr/hsf/w-v-m7.html
http://extreme-shop.sistemi.hr/hsf/w-v-m8.html
http://extreme-shop.sistemi.hr/hsf/w-v-m9.html
http://extreme-shop.sistemi.hr/hsf/w-v-m10.html
http://extreme-shop.sistemi.hr/hsf/w-v-o1.html
http://extreme-shop.sistemi.hr/hsf/w-v-o2.html
http://extreme-shop.sistemi.hr/hsf/w-v-o3.html
http://extreme-shop.sistemi.hr/hsf/w-v-o4.html
http://extreme-shop.sistemi.hr/hsf/w-v-o5.html
http://extreme-shop.sistemi.hr/hsf/w-v-o6.html
http://extreme-shop.sistemi.hr/hsf/w-v-o7.html
http://extreme-shop.sistemi.hr/hsf/w-v-o8.html
http://extreme-shop.sistemi.hr/hsf/w-v-o9.html
http://extreme-shop.sistemi.hr/hsf/w-v-o10.html
http://extreme-shop.sistemi.hr/hsf/w-v-p1.html
http://extreme-shop.sistemi.hr/hsf/w-v-p2.html
http://extreme-shop.sistemi.hr/hsf/f-v-e1.html
http://extreme-shop.sistemi.hr/hsf/f-v-e10.html
http://extreme-shop.sistemi.hr/hsf/f-v-e11.html
http://extreme-shop.sistemi.hr/hsf/f-v-e12.html
http://extreme-shop.sistemi.hr/hsf/f-v-e13.html
http://extreme-shop.sistemi.hr/hsf/f-v-e14.html
http://extreme-shop.sistemi.hr/hsf/f-v-e15.html
http://extreme-shop.sistemi.hr/hsf/f-v-e16.html
http://extreme-shop.sistemi.hr/hsf/f-v-e17.html
http://extreme-shop.sistemi.hr/hsf/f-v-e18.html
http://extreme-shop.sistemi.hr/hsf/f-v-e2.html
http://extreme-shop.sistemi.hr/hsf/f-v-e3.html
http://extreme-shop.sistemi.hr/hsf/f-v-e4.html
http://extreme-shop.sistemi.hr/hsf/f-v-e5.html
http://extreme-shop.sistemi.hr/hsf/f-v-e6.html
http://extreme-shop.sistemi.hr/hsf/f-v-e7.html
http://extreme-shop.sistemi.hr/hsf/f-v-e8.html
http://extreme-shop.sistemi.hr/hsf/f-v-e9.html
http://extreme-shop.sistemi.hr/hsf/n-v-f1.html
http://extreme-shop.sistemi.hr/hsf/n-v-f10.html
http://extreme-shop.sistemi.hr/hsf/n-v-f11.html
http://extreme-shop.sistemi.hr/hsf/n-v-f12.html
http://extreme-shop.sistemi.hr/hsf/n-v-f13.html
http://extreme-shop.sistemi.hr/hsf/n-v-f14.html
http://extreme-shop.sistemi.hr/hsf/n-v-f15.html
http://extreme-shop.sistemi.hr/hsf/n-v-f16.html
http://extreme-shop.sistemi.hr/hsf/n-v-f17.html
http://extreme-shop.sistemi.hr/hsf/n-v-f18.html
http://extreme-shop.sistemi.hr/hsf/n-v-f19.html
http://extreme-shop.sistemi.hr/hsf/n-v-f2.html
http://extreme-shop.sistemi.hr/hsf/n-v-f20.html
http://extreme-shop.sistemi.hr/hsf/n-v-f3.html
http://extreme-shop.sistemi.hr/hsf/n-v-f4.html
http://extreme-shop.sistemi.hr/hsf/n-v-f5.html
http://extreme-shop.sistemi.hr/hsf/n-v-f6.html
http://extreme-shop.sistemi.hr/hsf/n-v-f7.html
http://extreme-shop.sistemi.hr/hsf/n-v-f8.html
http://extreme-shop.sistemi.hr/hsf/n-v-f9.html
http://extreme-shop.sistemi.hr/hsf/m-v-f1.html
http://extreme-shop.sistemi.hr/hsf/m-v-f2.html
http://extreme-shop.sistemi.hr/hsf/m-v-f3.html
http://extreme-shop.sistemi.hr/hsf/m-v-f4.html
http://extreme-shop.sistemi.hr/hsf/m-v-f5.html
http://extreme-shop.sistemi.hr/hsf/m-v-f6.html
http://extreme-shop.sistemi.hr/hsf/m-v-f7.html
http://extreme-shop.sistemi.hr/hsf/m-v-f8.html
http://extreme-shop.sistemi.hr/hsf/m-v-f9.html
http://extreme-shop.sistemi.hr/hsf/m-v-t1.html
http://extreme-shop.sistemi.hr/hsf/m-v-t2.html
http://extreme-shop.sistemi.hr/hsf/m-v-t3.html
http://extreme-shop.sistemi.hr/hsf/m-v-t4.html
http://extreme-shop.sistemi.hr/hsf/m-v-t5.html
http://extreme-shop.sistemi.hr/hsf/m-v-t6.html
http://extreme-shop.sistemi.hr/hsf/m-v-t7.html
http://extreme-shop.sistemi.hr/hsf/m-v-t8.html
http://extreme-shop.sistemi.hr/hsf/m-v-t9.html
http://extreme-shop.sistemi.hr/hsf/m-v-c1.html
http://extreme-shop.sistemi.hr/hsf/m-v-c2.html
http://extreme-shop.sistemi.hr/hsf/m-v-c3.html
http://extreme-shop.sistemi.hr/hsf/m-v-c4.html
http://extreme-shop.sistemi.hr/hsf/m-v-c5.html
http://extreme-shop.sistemi.hr/hsf/m-v-c6.html
http://extreme-shop.sistemi.hr/hsf/m-v-c7.html
http://extreme-shop.sistemi.hr/hsf/m-v-c8.html
http://extreme-shop.sistemi.hr/hsf/m-v-c9.html
http://extreme-shop.sistemi.hr/hsf/m-v-n1.html
http://extreme-shop.sistemi.hr/hsf/m-v-n2.html
http://extreme-shop.sistemi.hr/hsf/m-v-n3.html
http://extreme-shop.sistemi.hr/hsf/m-v-n4.html
http://extreme-shop.sistemi.hr/hsf/m-v-n5.html
http://extreme-shop.sistemi.hr/hsf/m-v-n6.html
http://extreme-shop.sistemi.hr/hsf/m-v-n7.html
http://extreme-shop.sistemi.hr/hsf/m-v-n8.html
http://extreme-shop.sistemi.hr/hsf/m-v-n9.html
http://extreme-shop.sistemi.hr/hsf/m-v-p1.html
http://extreme-shop.sistemi.hr/hsf/m-v-p2.html
http://extreme-shop.sistemi.hr/hsf/m-v-p3.html
http://extreme-shop.sistemi.hr/hsf/m-v-p4.html
http://extreme-shop.sistemi.hr/hsf/m-v-p5.html
http://extreme-shop.sistemi.hr/hsf/m-v-p6.html

Setting up a basic cluster is perhaps not as difficult. We were able to get up our first cluster running within a week. Most issues happen when you start deploying your workloads. From tuning cluster autoscaler to provisioning resources at the right time to configuring the network correctly for the right performance, you have to do research and configure it all yourself. Defaults don’t work most of the time (or at least they didn’t work for us back then) for production.
However, Naval also quotes others during the interview. A lot. “Specialization is for insects,” he shares less than two minutes in — a line from a friend. He also talks about Bruce Lee, Elon Musk, Madonna, Paul Simon, U2, the ancient Romans, and beginner’s mind, a zen concept, before we even hit ten minutes.
Even when using a managed Kubernetes service, invest early in infrastructure-as-code setup to make disaster recovery and upgrade process relatively less painful in the future and be able to recover fast in face of disasters.
In non-production environments, we safely over commit resources as much as possible by keeping resource requests extremely low and limits extremely high. The limiting factor in this case is memory i.e. no matter how low the memory request is and how high the memory limit is, pod eviction is a function of sum of memory utilized by all containers scheduled on a node.
We mostly operate out of the Singapore region on AWS. At the time we started our journey with Kubernetes, EKS was not available as a service in the Singapore region. So we had to set up our own Kubernetes cluster on EC2 using kops.
Our learning is that operating Kubernetes is complex. There are a lot of moving parts. And learning how to operate Kubernetes is most likely not core to your business. Offload as much as possible to cloud service providers (EKS, GKE, AKS). There is no value in doing this yourself.
An important aspect of Kubernetes is to think about how developers are going to interact with the cluster and deploy their workloads. We wanted to keep things simple and easy to scale. We are converging towards Kustomize, Skaffold along with a few home-grown CRDs as the way for developers to deploy and manage applications. Having said that, any team is free to use whatever tools they would like to use to interact with the cluster as long as they are open-source and built on open standards.
Deploying Open Policy Agent to build the right controls helped automate the entire change management process and build the right safety nets for our developers. With Open Policy Agent, we can restrict scenarios like one just mentioned before — it is possible to restrict service objects from getting created unless the right annotation is present so that developers don’t accidentally create public ELBs.
Naval doesn’t have a quote collection he looks at every morning. He doesn’t even take notes when he reads: “I think taking notes is the same as taking photos when you’re on a trip. All it’s doing is taking you out of the moment,” he says in another interview.
Naval’s quotes flow into the conversation as an organic extension of his thoughts. They just happen to be what he remembers in the moment. That’s why they feel flawless — and he sounds smart as a result.
Many of us want to be like Naval. We’d love to shoot quotes left and right, dropping our own wisdom and that of others as casually as others drop $2 on a coffee. The problem is we often try too hard, and it makes us look sleazy rather than intelligent.
Sometimes this independence could pose severe risks. For example, using the LoadBalancer type service in EKS provisions a public-network facing ELB by default. Adding a certain annotation would ensure that an internal ELB is provisioned.We made some of these mistakes early on.
Kubernetes is meant to unlock the cloud platform for developers, make them more independent and push the DevOps culture. Opening up the platform to developers, reducing intervention by cloud engineering teams (or sysadmins) and making development teams independent should be one of the important goals.
Our learning was to keep resource requests high enough but not too high so that during low traffic hours we are wasting resources and keep resource limits relatively close to resource requests to allow for some breathing room for spiky traffic without pod evictions due to memory pressure on nodes. How close must the limits be to requests depends on your traffic patterns.
After we started migrating, we observed a lot of performance and functional issues in our cluster due to incorrect configuration. One of the effects of that was adding a lot of buffers in resource requests and limits to eliminate resource constraints as a possibility for performance degradation.This does not apply in case of non-production environments (such as development, staging and CI). These environments don’t get any spike in traffic. Theoretically you can run infinite containers if you set CPU requests to zero and set a high enough CPU limit for your containers. If your containers start utilizing a lot of CPU, they will get throttled. You can do the same with memory requests and limits as well. However, the behaviour of reaching memory limits is different than that of CPU. If you utilize more than the set memory limit, your containers get OOM killed and they restart. If your memory limit is abnormally high (let’s say higher than the node’s capacity), you can keep using memory but eventually the scheduler will start evicting pods when the node runs out of available memory.One of the first observations was pod evictions due to memory constraints on nodes. The reason for this was disproportionately high resource limits as compared to their resource requests. With surge in traffic, increase in memory consumption could lead to memory saturation on nodes, further leading to pod eviction.

--

--