title: Does global layer 7 http(s) load balancer has option to rate limiting?
body: <p>I use global http(s) load balancer for backend services running on Kubernetes cluster. I didn't find any information on how to limit number of requests in a time window from one IP. There is <a href="https://cloud.google.com/armor" rel="nofollow noreferrer">Cloud Armor</a>, but there also simple <a href="https://cloud.google.com/armor/docs/rules-language-reference" rel="nofollow noreferrer">IP, region, and header based</a> access can be performed. Could you please share how can I perform IP based rate limitation on global http load balancer on google cloud to provide defence against DoS attacks.</p>
  <p>Edit:</p>
  <p>The backend service on running on Kubernetes cluster is a <code>symfony</code> server with web interface. I want to use Cloud CDN for the server therefore I had to use <code>gce</code> ingress instead of <a href="https://kubernetes.github.io/ingress-nginx/" rel="nofollow noreferrer">ingress-nginx</a>. On google cloud, gce ingress creates a <a href="https://cloud.google.com/load-balancing/docs/https" rel="nofollow noreferrer">global HTTP(s) load balancer</a> and ingress-nginx creates <a href="https://cloud.google.com/load-balancing/docs/network" rel="nofollow noreferrer">TCP load balancer</a>.</p>
  <p>In the nginx-ingress, I could simply use <code>nginx.ingress.kubernetes.io/limit-rps</code> annotation, which helps in limiting flood of http requests. I want to do the similar configuration on my global HTTP(s) load balancer. In the current setting, I observed that flood of http requests are sent to the load balancer which are forwarded to the <code>symfony</code> server and at one point latency of request increases. Which makes the <code>liveness</code> probe fail for the <code>pod</code>.</p>