Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
A Helm chart to install the ALB Controller on Kubernetes.
You can configure the following parameters during installation:
- aiGateway
- nodeSelector
- tolerations
- name
- installGatewayApiCRDs
- installInferenceExtensionCRDs
- logLevel
- namespace
- securityPolicyFeatureFlag
Values
| Key | Type | Default | Description |
|---|---|---|---|
| albController.aiGateway | bool | false |
Enable AI workload support. |
| albController.cloudEnvironment | string | "AzureCloud" |
Azure cloud environment (AzureCloud, AzureChinaCloud, AzureUSGovernment). |
| albController.controller | object | {"nodeSelector":{},"replicaCount":2,"resource":{"limits":{"cpu":"400m","memory":"400Mi"},"requests":{"cpu":"100m","memory":"200Mi"}},"tolerations":[]} |
Controller parameters. |
| albController.controller.nodeSelector | object | {} |
Node selector for alb-controller. |
| albController.controller.replicaCount | int | 2 |
Controller's replica count. |
| albController.controller.resource | object | {"limits":{"cpu":"400m","memory":"400Mi"},"requests":{"cpu":"100m","memory":"200Mi"}} |
Controller's container resource parameters. |
| albController.controller.tolerations | list | [] |
Tolerations for alb-controller. |
| albController.env | list | [{"name":"","value":""}] |
Environment variables for alb-controller. |
| albController.image | object | {"name":{"CRDs":"application-lb/images/alb-controller-crds","bootstrap":"application-lb/images/alb-controller-bootstrap","controller":"application-lb/images/alb-controller"},"pullPolicy":"IfNotPresent","registry":"mcr.microsoft.com"} |
alb-controller image parameters. |
| albController.image.name | object | {"CRDs":"application-lb/images/alb-controller-crds","bootstrap":"application-lb/images/alb-controller-bootstrap","controller":"application-lb/images/alb-controller"} |
Image name defaults. |
| albController.image.name.CRDs | string | "application-lb/images/alb-controller-crds" |
alb-controller's CRDs' image name. |
| albController.image.name.bootstrap | string | "application-lb/images/alb-controller-bootstrap" |
alb-controller bootstrap's image name. |
| albController.image.name.controller | string | "application-lb/images/alb-controller" |
alb-controller's image name. |
| albController.image.pullPolicy | string | "IfNotPresent" |
Container image pull policy for controller containers. |
| albController.image.registry | string | "mcr.microsoft.com" |
Container image registry for alb-controller. |
| albController.imagePullSecrets | list | [] |
|
| albController.init | object | {"resource":{"limits":{"cpu":"200m","memory":"128Mi"},"requests":{"cpu":"100m","memory":"128Mi"}}} |
Init parameters. |
| albController.init.resource | object | {"limits":{"cpu":"200m","memory":"128Mi"},"requests":{"cpu":"100m","memory":"128Mi"}} |
Init container's resource parameters. |
| albController.installGatewayApiCRDs | bool | true |
A flag to enable or disable installation of Gateway API CRDs. |
| albController.installInferenceExtensionCRDs | bool | true |
A flag to enable or disable installation of Inference Extension CRDs (only applies when aiGateway is enabled). |
| albController.logLevel | string | "info" |
Log level of alb-controller. |
| albController.namespace | string | "azure-alb-system" |
Namespace to deploy alb-controller components in. |
| albController.podIdentity | object | {"clientID":""} |
Pod identity parameters for alb-controller. |
| albController.securityPolicyFeatureFlag | bool | true |
Feature flag to enable Application Load Balancer Security Policy Resource. |
nodeSelector
The nodeSelector parameter follows Kubernetes' implementation as defined here.
The nodeSelector parameter only provisions ALB Controller pods to nodes with a defined label.
In this example, you label a set of nodes with a node label called albController.
Label each node where you want to run the ALB controller pods.
kubectl label nodes <node-name> albController=trueSpecify the
nodeSelectorthrough thehelm installcommand by using the following example:HELM_NAMESPACE='<namespace for deployment>' CONTROLLER_NAMESPACE='azure-alb-system' VERSION='<latest_version>' az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_NAME helm install alb-controller oci://mcr.microsoft.com/application-lb/charts/alb-controller \ --namespace $HELM_NAMESPACE \ --version $VERSION \ --set albController.namespace=$CONTROLLER_NAMESPACE \ --set albController.podIdentity.clientID=$(az identity show -g $RESOURCE_GROUP -n azure-alb-identity --query clientId -o tsv) --set nodeSelector.albController=true
Tolerations
Tolerations follow Kubernetes' implementation as defined here.
Add tolerations to each of the ALB Controller pods, supporting the following format:
tolerations:
- key: "key1"
operator: "Equal"
value: "value1"
effect: "NoSchedule"
If desired, you can specify the toleration inline through the helm install command by using the following example:
HELM_NAMESPACE='<namespace for deployment>'
CONTROLLER_NAMESPACE='azure-alb-system'
VERSION='<latest_version>'
az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_NAME
helm install alb-controller oci://mcr.microsoft.com/application-lb/charts/alb-controller \
--namespace $HELM_NAMESPACE \
--version $VERSION \
--set albController.namespace=$CONTROLLER_NAMESPACE \
--set albController.podIdentity.clientID=$(az identity show -g $RESOURCE_GROUP -n azure-alb-identity --query clientId -o tsv)
--set tolerations.key=key1 --set tolerations.operator=Equal --set tolerations.value=value1 --set tolerations.effect=NoExecute --set tolerations.tolerationSeconds=3600
--set tolerations.key=key2 --set tolerations.operator=Exists --set tolerations.effect=NoSchedule