Kubernetes Services type LoadBalancer
will be deployed through Vultr Load Balancers. This is provisioned by the Cloud Controller Manager. For generic info and faq please visit the Vultr LoadBalancer Doc.
Examples of LoadBalancer
resources can be found here
The Vultr CCM allows you to configure your LoadBalancer
resource to be deployed in a specific way through annotations.
The annotations are listed below. Please note that all annotations listed below must be prepended with service.beta.kubernetes.io/vultr-loadbalancer-
and are case sensitive.
Annotation (Suffix) | Values | Default | Description |
---|---|---|---|
protocol |
tcp , http , https |
tcp |
This is used to specify the protocol to be used for your LoadBalancer protocol. |
backend-protocol |
http , https , or tcp |
http , https , or tcp depending on protocol |
This is used to set the backend protocol from load balancer to application(s). Note: Only certain protocols can be set here; anything out of scope will be defaulted to protocol |
https-ports |
string | Defines which ports should be used for HTTPS. You can pass in a comma separated list: 443,8443 | |
ssl |
string | The string you provide should be the name of a Kubernetes TLS Secret which store your cert + key | |
ssl-pass-through |
true , false |
false |
If you want SSL termination to happen on your pods or ingress then this must be enabled. This is to be used with the https-ports annotation |
proxy-protocol |
true , false |
false |
Indicates whether Proxy protocol should be enabled. |
healthcheck-protocol |
tcp http |
tcp |
The protocol to be used for your LoadBalancer HealthCheck |
healthcheck-path |
string | / |
The URL path to check on the back-end during health checks |
healthcheck-port |
int | defaults to what kubernetes defines |
The port that should be called for health checks |
healthcheck-check-interval |
int | 15 |
Interval between health checks (in seconds) |
healthcheck-response-timeout |
int | 5 |
Response timeout (in seconds) |
healthcheck-unhealthy-threshold |
int | 5 |
Number of unhealthy requests before a back-end is removed |
healthcheck-healthy-threshold |
int | 5 |
Number of healthy requests before a back-end is added back in |
algorithm |
least_connections , roundrobin |
roundrobin |
Balancing algorithm |
ssl-redirect |
true , false |
false |
Force HTTP to HTTPS |
sticky-session-enabled |
on , off |
off |
Enables Sticky Sessions. If enabled you must provide sticky-session-cookie-name |
sticky-session-cookie-name" |
string | Name of sticky session | |
firewall-rules |
string | This is used to let you define your firewall rules. They must be supplied with "ip-with-with-subnet,port" format with ; breaking up firewall rules. Example: 0.0.0.0/0,80;0.0.0.0/0,90 |
|
private-network |
true or false |
false |
Deprecated Please use vpc. true the CCM will pull the private_network_id that is attached to the node that the CCM is running on. |
vpc |
true or false |
false |
This is used to attach your load balancer to a private network. If true the CCM will pull the vpc_id that is attached to the node that the CCM is running on. |
node-count |
int | 1 | Number of LoadBalancer nodes to have. Only odd numbers are supported. |
create |
true or false |
true |
This is used to determine whether or not to create a Vultr loadbalancer |
label |
string | Custom label for the Vultr Loadbalancer rather than the default generated name | |
hostname |
string | Custom domain to be used for the load balancer. Ex: example.vultr.com |