AKS
Azure Kubernetes Service (AKS) is a managed container orchestration service that simplifies Kubernetes deployment and management in Azure.
Example yaml file:
apiVersion: azure.boundless.software/v1alpha1
kind: Aks
metadata:
name: aks-sample
spec:
provider:
region: "eastus"
name: "aks-sample"
resourceGroupName: "my-resource-group"
tags:
environment: "production"
sku:
name: "Basic"
tier: "Free"
identity:
type: "UserAssigned"
userAssignedIdentities:
- "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-identity"
properties:
kubernetesVersion: "1.27.9"
autoUpgradeProfile:
upgradeChannel: "Patch"
addonProfiles:
httpApplicationRouting:
enabled: true
config:
HTTPApplicationRoutingZoneName: "example.com"
diskEncryptionSetID: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.Compute/diskEncryptionSets/my-encryption-set"
apiServerAccessProfile:
enablePrivateCluster: true
authorizedIPRanges:
- "192.168.0.0/24"
disableRunCommand: false
enablePrivateClusterPublicFQDN: true
privateDNSZone: "example.private"
publicNetworkAccess: Enabled
networkProfile:
networkPlugin: "Kubenet"
networkPolicy: "Calico"
loadBalancerSKU: "Standard"
dnsPrefix: "my-aks-cluster"
enableRBAC: true
defaultAgentPool:
osSKU: "Ubuntu"
osType: "Linux"
availabilityZones:
- "1"
- "2"
- "3"
vmSize: "Standard_D2s_v3"
count: 3
scaleSetPriority: "Regular"
scaleSetEvictionPolicy: "Delete"
vnetSubnetID: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.Network/virtualNetworks/my-vnet/subnets/my-subnet"
spotMaxPrice: -1
maxPods: 30
enableNodePublicIP: false
enableAutoScaling: true
maxCount: 5
minCount: 1
nodeLabels:
environment: "production"
role: "default"
nodeTaints:
- "key=value:NoSchedule"
servicePrincipalProfile:
clientId: "00000000-0000-0000-0000-000000000000"
secret: "sample-secret-value"
aadProfile:
managed: true
enableAzureRBAC: true
adminGroupObjectIDs:
- "11111111-1111-1111-1111-111111111111"
clientAppID: "22222222-2222-2222-2222-222222222222"
serverAppID: "33333333-3333-3333-3333-333333333333"
tenantID: "44444444-4444-4444-4444-444444444444"
serverAppSecret: "sample-server-secret"
agentPoolProfiles:
- name: "userpool"
mode: "User"
osSKU: "Ubuntu"
osType: "Linux"
osDiskSizeGB: 128
availabilityZones:
- "1"
- "2"
- "3"
vmSize: "Standard_D4s_v3"
vnetSubnetID: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-resource-group/providers/Microsoft.Network/virtualNetworks/my-vnet/subnets/my-subnet"
count: 2
scaleSetPriority: "Regular"
scaleSetEvictionPolicy: "Delete"
spotMaxPrice: -1
enableAutoScaling: true
maxCount: 5
minCount: 1
maxPods: 50
enableNodePublicIP: false
nodeLabels:
environment: "production"
role: "worker"
nodeTaints:
- "workload=specialized:NoSchedule"
- "priority=high:PreferNoSchedule"
maxSurge: "25%"
Name | Type | Description |
---|
provider* | AzureProviderSpec | Provider specifies the Azure provider settings for this AKS cluster. |
name* | string | Name of the AKS cluster. |
resourceGroupName | string | Resource group name where the AKS cluster will be created. |
tags | map[string]string | Tags to be applied to the AKS cluster. |
sku | ManagedClusterSKU | SKU configuration for the AKS cluster. |
identity | ManagedClusterIdentity | Identity configuration for the AKS cluster. |
properties | ManagedClusterProperties | Properties configuration for the AKS cluster. |
agentPoolProfiles | []AgentPoolProfileSpec | Additional agent pool configurations. |
ManagedClusterSKU
Name | Type | Description |
---|
name | string | SKU name (Basic or Standard). |
tier | string | SKU tier (Free or Paid). |
ManagedClusterProperties
Name | Type | Description |
---|
kubernetesVersion | string | Version of Kubernetes to use. |
dnsPrefix | string | DNS prefix for the cluster. |
enableRBAC | bool | Enable Role Based Access Control. |
networkProfile | NetworkProfile | Network configuration for the cluster. |
defaultAgentPool | DefaultAgentPool | Default node pool configuration. |
LinuxProfile
Name | Type | Description |
---|
adminUsername | string | Admin username for Linux nodes. |
ssh | SSHConfiguration | SSH configuration for Linux nodes. |
SSHConfiguration
Name | Type | Description |
---|
publicKeys | []SSHPublicKey | List of SSH public keys. |
SSHPublicKey
Name | Type | Description |
---|
keyData | string | SSH public key data. |
WindowsProfile
Name | Type | Description |
---|
adminUsername | string | Admin username for Windows nodes. |
adminPassword | string | Admin password for Windows nodes. |
enableCSIProxy | bool | Enable Container Storage Interface proxy. |
gmsaProfile | GmsaProfile | Group Managed Service Account profile. |
licenseType | string | Windows license type. |
GmsaProfile
Name | Type | Description |
---|
enabled | bool | Enable GMSA. |
dnsServer | string | DNS server for GMSA. |
rootDomainName | string | Root domain name for GMSA. |
NetworkProfile
Name | Type | Description |
---|
networkPlugin | string | Network plugin (Kubenet or Azure). |
networkPolicy | string | Network policy (Calico, Azure, or None). |
loadBalancerSKU | string | Load balancer SKU (Basic or Standard). |
AgentPoolProfileSpec
Name | Type | Description |
---|
name | string | Name of the agent pool. |
mode | string | Mode of the agent pool (System or User). |
osSKU | string | OS SKU for the nodes. |
osDiskSizeGB | int32 | OS disk size in GB. |
osType | string | OS type for the nodes. |
availabilityZones | []string | List of availability zones. |
vmSize | string | VM size for the nodes. |
count | int32 | Number of nodes. |
scaleSetPriority | string | Priority for scale set (Regular or Spot). |
scaleSetEvictionPolicy | string | Eviction policy (Delete or Deallocate). |
enableAutoScaling | bool | Enable auto-scaling for the pool. |
maxCount | int32 | Maximum number of nodes. |
minCount | int32 | Minimum number of nodes. |
maxPods | int32 | Maximum number of pods per node. |
enableNodePublicIP | bool | Enable public IPs for nodes. |
nodeLabels | map[string]string | Labels to apply to nodes. |
nodeTaints | []string | Taints to apply to nodes. |
maxSurge | string | Maximum surge for node upgrades. |
AgentPoolStatus
Name | Type | Description |
---|
condition | metav1.Condition | Current condition of the agent pool. |
name | string | Name of the agent pool. |
id | string | ID of the agent pool. |
Outputs
Name | Type | Description |
---|
condition | metav1.Condition | Current condition of the AKS cluster. |
name | string | Name of the AKS cluster. |
id | string | Azure resource ID of the AKS cluster. |
agentPoolStatus | map[string]AgentPoolStatus | Status of the agent pools in the cluster. |
Status
AksStatus
Name | Type | Description |
---|
condition | metav1.Condition | Current condition of the AKS cluster. |
name | string | Name of the AKS cluster. |
id | string | ID of the AKS cluster. |
agentPoolStatus | map[string]AgentPoolStatus | Status of the agent pools in the cluster. |
AgentPoolStatus
Name | Type | Description |
---|
condition | metav1.Condition | Current condition of the agent pool. |
name | string | Name of the agent pool. |
id | string | ID of the agent pool. |