Table of Contents |
---|
Limits and price
...
https://aws.amazon.com/elasticloadbalancing/pricing/?nc1=h_ls
Load Balancer | Price | LCU |
---|---|---|
Application | 0,0225 USD | 0,008 USD for Hour |
Network | 0.0225 USD | 0,006 USD for Hour |
Classic | 0.0225 USD | 0,008 USD for Gb |
Your AWS account has the following quotas related to Application Load Balancers.
https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html
Name | Default | Adjustable |
---|---|---|
Application Load Balancers per Region | 50 | Yes |
Certificates per Application Load Balancer (excluding default certificates) | 25 | Yes |
Listeners per Application Load Balancer | 50 | Yes |
Number of times a target can be registered per Application Load Balancer | 1,000 | No |
Target Groups per Action per Application Load Balancer | 5 | No |
Target Groups per Application Load Balancer | 100 | No |
Targets per Application Load Balancer | 1,000 | Yes |
The following quotas are for rules.
Name | Default | Adjustable |
---|---|---|
Rules per Application Load Balancer (excluding default rules) | 100 | Yes |
Condition Values per Rule | 5 | No |
Condition Wildcards per Rule | 5 | No |
Match evaluations per rule | 5 | No |
...
How we add data to it https://github.com/folio-org/pipelines-shared-library/blob/80b63af619da71ab8ada14eb5e074bfd3bbf4ebd/vars/helm.groovy
config[(module_name)]['ingress']['hosts'][0] += [host: domain]
Create load balancer add rules to it
...
Attach service to specific load balancer via group.
config[(module_name)]['ingress']['annotations'] += ['alb.ingress.kubernetes.io/group.name': "${project_config.getClusterName()}.${project_config.getProjectName()}"]
decrease alb
Drawio | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
use only one static name for alb.ingress.kubernetes.io/group.name it allow to don't create a new alb for each namespace
config[(module_name)]['ingress']['annotations'] += ['alb.ingress.kubernetes.io/group.name': "${project_config.getClusterName()}.${project_config.getProjectName()}"]
Rules will be the same as current because we don't touch the Router53 records that has been creating by EKS .
...
kubernetes.io/ingress.class: nginx
and prepare the rihgt
for external alb need to change routing to different services. internal nginx lb
path: /namespace
backend:
resource:
apiGroup: k8s.example.com
name: namespace
Conclusion
We have about 15 alb on dev env.
...