你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Microsoft.ContainerService managedClusters 2021-09-01

Bicep 资源定义

可以使用目标操作部署 managedClusters 资源类型:

有关每个 API 版本中已更改属性的列表,请参阅 更改日志

言论

有关可用加载项的信息,请参阅 加载项、扩展和其他与 Azure Kubernetes 服务集成。

资源格式

若要创建 Microsoft.ContainerService/managedClusters 资源,请将以下 Bicep 添加到模板。

resource symbolicname 'Microsoft.ContainerService/managedClusters@2021-09-01' = {
  name: 'string'
  location: 'string'
  tags: {
    tagName1: 'tagValue1'
    tagName2: 'tagValue2'
  }
  sku: {
    name: 'Basic'
    tier: 'string'
  }
  extendedLocation: {
    name: 'string'
    type: 'EdgeZone'
  }
  identity: {
    type: 'string'
    userAssignedIdentities: {
      {customized property}: {}
    }
  }
  properties: {
    aadProfile: {
      adminGroupObjectIDs: [
        'string'
      ]
      clientAppID: 'string'
      enableAzureRBAC: bool
      managed: bool
      serverAppID: 'string'
      serverAppSecret: 'string'
      tenantID: 'string'
    }
    addonProfiles: {
      {customized property}: {
        config: {
          {customized property}: 'string'
        }
        enabled: bool
      }
    }
    agentPoolProfiles: [
      {
        availabilityZones: [
          'string'
        ]
        count: int
        creationData: {
          sourceResourceId: 'string'
        }
        enableAutoScaling: bool
        enableEncryptionAtHost: bool
        enableFIPS: bool
        enableNodePublicIP: bool
        enableUltraSSD: bool
        gpuInstanceProfile: 'string'
        kubeletConfig: {
          allowedUnsafeSysctls: [
            'string'
          ]
          containerLogMaxFiles: int
          containerLogMaxSizeMB: int
          cpuCfsQuota: bool
          cpuCfsQuotaPeriod: 'string'
          cpuManagerPolicy: 'string'
          failSwapOn: bool
          imageGcHighThreshold: int
          imageGcLowThreshold: int
          podMaxPids: int
          topologyManagerPolicy: 'string'
        }
        kubeletDiskType: 'string'
        linuxOSConfig: {
          swapFileSizeMB: int
          sysctls: {
            fsAioMaxNr: int
            fsFileMax: int
            fsInotifyMaxUserWatches: int
            fsNrOpen: int
            kernelThreadsMax: int
            netCoreNetdevMaxBacklog: int
            netCoreOptmemMax: int
            netCoreRmemDefault: int
            netCoreRmemMax: int
            netCoreSomaxconn: int
            netCoreWmemDefault: int
            netCoreWmemMax: int
            netIpv4IpLocalPortRange: 'string'
            netIpv4NeighDefaultGcThresh1: int
            netIpv4NeighDefaultGcThresh2: int
            netIpv4NeighDefaultGcThresh3: int
            netIpv4TcpFinTimeout: int
            netIpv4TcpkeepaliveIntvl: int
            netIpv4TcpKeepaliveProbes: int
            netIpv4TcpKeepaliveTime: int
            netIpv4TcpMaxSynBacklog: int
            netIpv4TcpMaxTwBuckets: int
            netIpv4TcpTwReuse: bool
            netNetfilterNfConntrackBuckets: int
            netNetfilterNfConntrackMax: int
            vmMaxMapCount: int
            vmSwappiness: int
            vmVfsCachePressure: int
          }
          transparentHugePageDefrag: 'string'
          transparentHugePageEnabled: 'string'
        }
        maxCount: int
        maxPods: int
        minCount: int
        mode: 'string'
        name: 'string'
        nodeLabels: {
          {customized property}: 'string'
        }
        nodePublicIPPrefixID: 'string'
        nodeTaints: [
          'string'
        ]
        orchestratorVersion: 'string'
        osDiskSizeGB: int
        osDiskType: 'string'
        osSKU: 'string'
        osType: 'string'
        podSubnetID: 'string'
        powerState: {
          code: 'string'
        }
        proximityPlacementGroupID: 'string'
        scaleDownMode: 'string'
        scaleSetEvictionPolicy: 'string'
        scaleSetPriority: 'string'
        spotMaxPrice: json('decimal-as-string')
        tags: {}
        type: 'string'
        upgradeSettings: {
          maxSurge: 'string'
        }
        vmSize: 'string'
        vnetSubnetID: 'string'
        workloadRuntime: 'string'
      }
    ]
    apiServerAccessProfile: {
      authorizedIPRanges: [
        'string'
      ]
      disableRunCommand: bool
      enablePrivateCluster: bool
      enablePrivateClusterPublicFQDN: bool
      privateDNSZone: 'string'
    }
    autoScalerProfile: {
      'balance-similar-node-groups': 'string'
      expander: 'string'
      'max-empty-bulk-delete': 'string'
      'max-graceful-termination-sec': 'string'
      'max-node-provision-time': 'string'
      'max-total-unready-percentage': 'string'
      'new-pod-scale-up-delay': 'string'
      'ok-total-unready-count': 'string'
      'scale-down-delay-after-add': 'string'
      'scale-down-delay-after-delete': 'string'
      'scale-down-delay-after-failure': 'string'
      'scale-down-unneeded-time': 'string'
      'scale-down-unready-time': 'string'
      'scale-down-utilization-threshold': 'string'
      'scan-interval': 'string'
      'skip-nodes-with-local-storage': 'string'
      'skip-nodes-with-system-pods': 'string'
    }
    autoUpgradeProfile: {
      upgradeChannel: 'string'
    }
    disableLocalAccounts: bool
    diskEncryptionSetID: 'string'
    dnsPrefix: 'string'
    enablePodSecurityPolicy: bool
    enableRBAC: bool
    fqdnSubdomain: 'string'
    httpProxyConfig: {
      httpProxy: 'string'
      httpsProxy: 'string'
      noProxy: [
        'string'
      ]
      trustedCa: 'string'
    }
    identityProfile: {
      {customized property}: {
        clientId: 'string'
        objectId: 'string'
        resourceId: 'string'
      }
    }
    kubernetesVersion: 'string'
    linuxProfile: {
      adminUsername: 'string'
      ssh: {
        publicKeys: [
          {
            keyData: 'string'
          }
        ]
      }
    }
    networkProfile: {
      dnsServiceIP: 'string'
      dockerBridgeCidr: 'string'
      loadBalancerProfile: {
        allocatedOutboundPorts: int
        effectiveOutboundIPs: [
          {
            id: 'string'
          }
        ]
        enableMultipleStandardLoadBalancers: bool
        idleTimeoutInMinutes: int
        managedOutboundIPs: {
          count: int
        }
        outboundIPPrefixes: {
          publicIPPrefixes: [
            {
              id: 'string'
            }
          ]
        }
        outboundIPs: {
          publicIPs: [
            {
              id: 'string'
            }
          ]
        }
      }
      loadBalancerSku: 'string'
      natGatewayProfile: {
        effectiveOutboundIPs: [
          {
            id: 'string'
          }
        ]
        idleTimeoutInMinutes: int
        managedOutboundIPProfile: {
          count: int
        }
      }
      networkMode: 'string'
      networkPlugin: 'string'
      networkPolicy: 'string'
      outboundType: 'string'
      podCidr: 'string'
      serviceCidr: 'string'
    }
    nodeResourceGroup: 'string'
    podIdentityProfile: {
      allowNetworkPluginKubenet: bool
      enabled: bool
      userAssignedIdentities: [
        {
          bindingSelector: 'string'
          identity: {
            clientId: 'string'
            objectId: 'string'
            resourceId: 'string'
          }
          name: 'string'
          namespace: 'string'
        }
      ]
      userAssignedIdentityExceptions: [
        {
          name: 'string'
          namespace: 'string'
          podLabels: {
            {customized property}: 'string'
          }
        }
      ]
    }
    privateLinkResources: [
      {
        groupId: 'string'
        id: 'string'
        name: 'string'
        requiredMembers: [
          'string'
        ]
        type: 'string'
      }
    ]
    publicNetworkAccess: 'string'
    securityProfile: {
      azureDefender: {
        enabled: bool
        logAnalyticsWorkspaceResourceId: 'string'
      }
    }
    servicePrincipalProfile: {
      clientId: 'string'
      secret: 'string'
    }
    windowsProfile: {
      adminPassword: 'string'
      adminUsername: 'string'
      enableCSIProxy: bool
      gmsaProfile: {
        dnsServer: 'string'
        enabled: bool
        rootDomainName: 'string'
      }
      licenseType: 'string'
    }
  }
}

属性值

managedClusters

名字 描述 价值
名字 资源名称 string (必需)

字符限制:1-63

有效字符:
字母数字、下划线和连字符。

以字母数字开头和结尾。
位置 资源位置 string (必需)
标签 资源标记 标记名称和值的字典。 请参阅模板 中的 标记
sku 托管群集 SKU。 ManagedClusterSKU
extendedLocation 虚拟机的扩展位置。 ExtendedLocation
身份 托管群集的标识(如果已配置)。 ManagedClusterIdentity
性能 托管群集的属性。 ManagedClusterProperties

ExtendedLocation

名字 描述 价值
名字 扩展位置的名称。 字符串
类型 扩展位置的类型。 “EdgeZone”

ManagedClusterIdentity

名字 描述 价值
类型 有关详细信息,请参阅 在 AKS中使用托管标识。 “None”
“SystemAssigned”
“UserAssigned”
userAssignedIdentities 密钥必须是 ARM 资源 ID,格式为“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}”。 ManagedClusterIdentityUserAssignedIdentities

ManagedClusterIdentityUserAssignedIdentities

名字 描述 价值
{自定义属性} ManagedServiceIdentityUserAssignedIdentitiesValue

ManagedServiceIdentityUserAssignedIdentitiesValue

此对象不包含在部署期间设置的任何属性。 所有属性都是 ReadOnly。

ManagedClusterProperties

名字 描述 价值
aadProfile Azure Active Directory 配置。 ManagedClusterAADProfile
addonProfiles 托管群集加载项的配置文件。 ManagedClusterPropertiesAddonProfiles
agentPoolProfiles 代理池属性。 ManagedClusterAgentPoolProfile[]
apiServerAccessProfile 托管群集 API 服务器的访问配置文件。 ManagedClusterAPIServerAccessProfile
autoScalerProfile 启用时要应用于群集自动缩放程序的参数 ManagedClusterPropertiesAutoScalerProfile
autoUpgradeProfile 自动升级配置。 ManagedClusterAutoUpgradeProfile
disableLocalAccounts 如果设置为 true,将禁用此群集的静态凭据。 这只能在启用了 AAD 的托管群集上使用。 有关详细信息,请参阅 禁用本地帐户 bool
diskEncryptionSetID 此格式为:“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}” 字符串
dnsPrefix 创建托管群集后,无法更新此功能。 字符串
enablePodSecurityPolicy (弃用)是否启用 Kubernetes Pod 安全策略(预览版)。 此功能设置为在 2020 年 10 月 15 日删除。 有关详细信息,请查看 aka.ms/aks/azpodpolicy。 bool
enableRBAC 是否启用 Kubernetes Role-Based 访问控制。 bool
fqdnSubdomain 创建托管群集后,无法更新此功能。 字符串
httpProxyConfig 使用 HTTP 代理服务器预配群集的配置。 ManagedClusterHttpProxyConfig
identityProfile 与群集关联的标识。 ManagedClusterPropertiesIdentityProfile
kubernetesVersion 升级支持的 AKS 群集时,无法跳过 Kubernetes 次要版本。 所有升级都必须按主版本号按顺序执行。 例如,允许在 1.14.x -> 1.15.x 或 1.15.x 之间升级> 1.16.x,但不允许使用 1.14.x -> 1.16.x。 有关更多详细信息,请参阅 升级 AKS 群集 字符串
linuxProfile 托管群集中 Linux VM 的配置文件。 ContainerServiceLinuxProfile
networkProfile 网络配置文件。 ContainerServiceNetworkProfile
nodeResourceGroup 包含代理池节点的资源组的名称。 字符串
podIdentityProfile 有关 AAD Pod 标识集成的详细信息,请参阅 使用 AAD Pod 标识 ManagedClusterPodIdentityProfile
privateLinkResources 与群集关联的专用链接资源。 PrivateLinkResource[]
publicNetworkAccess 默认值为“Enabled”(不区分大小写)。 可以设置为“已禁用”以启用专用群集 “Disabled”
“Enabled”
securityProfile 托管群集的安全配置文件。 ManagedClusterSecurityProfile
servicePrincipalProfile 有关群集用于操作 Azure API 的服务主体标识的信息。 ManagedClusterServicePrincipalProfile
windowsProfile 托管群集中 Windows VM 的配置文件。 ManagedClusterWindowsProfile

ManagedClusterAADProfile

名字 描述 价值
adminGroupObjectIDs 将具有群集管理员角色的 AAD 组对象 ID 的列表。 string[]
clientAppID 客户端 AAD 应用程序 ID。 字符串
enableAzureRBAC 是否为 Kubernetes 授权启用 Azure RBAC。 bool
管理 是否启用托管 AAD。 bool
serverAppID 服务器 AAD 应用程序 ID。 字符串
serverAppSecret 服务器 AAD 应用程序机密。 字符串
tenantID 用于身份验证的 AAD 租户 ID。 如果未指定,将使用部署订阅的租户。 字符串

ManagedClusterPropertiesAddonProfiles

名字 描述 价值
{自定义属性} ManagedClusterAddonProfile

ManagedClusterAddonProfile

名字 描述 价值
配置 用于配置加载项的键值对。 ManagedClusterAddonProfileConfig
启用 是否启用加载项。 bool (必需)

ManagedClusterAddonProfileConfig

名字 描述 价值
{自定义属性} 字符串

ManagedClusterAgentPoolProfile

名字 描述 价值
availabilityZones 要用于节点的可用性区域列表。 仅当 AgentPoolType 属性为“VirtualMachineScaleSets”时,才能指定此值。 string[]
计数 用于托管 docker 容器的代理数(VM)。 允许的值必须在用户池的 0 到 1000(含)范围内,系统池的范围为 1 到 1000(含)。 默认值为 1。 int
creationData 如果使用快照创建/升级节点池,则用于指定源快照 ID 的 CreationData。 CreationData
enableAutoScaling 是否启用自动缩放程序 bool
enableEncryptionAtHost 这仅在某些 VM 大小和某些 Azure 区域中受支持。 有关详细信息,请参阅:/azure/aks/enable-host-encryption bool
enableFIPS 有关详细信息,请参阅 添加启用了 FIPS 的节点池 bool
enableNodePublicIP 某些方案可能需要节点池中的节点接收其自己的专用公共 IP 地址。 一种常见方案适用于游戏工作负载,其中主机需要与云虚拟机建立直接连接,以最大程度地减少跃点。 有关详细信息,请参阅 为每个节点分配公共 IP。 默认值为 false。 bool
enableUltraSSD 是否启用 UltraSSD bool
gpuInstanceProfile 用于为支持的 GPU VM SKU 指定 GPU MIG 实例配置文件的 GPUInstanceProfile。 “MIG1g”
“MIG2g”
“MIG3g”
“MIG4g”
“MIG7g”
kubeletConfig 代理池节点上的 Kubelet 配置。 KubeletConfig
kubeletDiskType 确定 emptyDir 卷、容器运行时数据根目录和 Kubelet 临时存储的位置。 “OS”
“临时”
linuxOSConfig Linux 代理节点的 OS 配置。 LinuxOSConfig
maxCount 自动缩放的最大节点数 int
maxPods 可在节点上运行的 Pod 的最大数目。 int
minCount 自动缩放的最小节点数 int
模式 群集必须随时至少有一个“系统”代理池。 有关代理池限制和最佳做法的其他信息,请参阅:/azure/aks/use-system-pools “System”
“User”
名字 Windows 代理池名称必须为 6 个字符或更少。 string (必需)

约束:
Pattern = ^[a-z][a-z0-9]{0,11}$
nodeLabels 要跨代理池中的所有节点保留的节点标签。 ManagedClusterAgentPoolProfilePropertiesNodeLabels
nodePublicIPPrefixID 此格式为:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName} 字符串
nodeTaints 在节点池创建和缩放期间添加到新节点的污点。 例如,key=value:NoSchedule。 string[]
orchestratorVersion 最佳做法是,应将 AKS 群集中的所有节点池升级到同一 Kubernetes 版本。 节点池版本必须与控制平面具有相同的主版本。 节点池次要版本必须位于控制平面版本的两个次要版本中。 节点池版本不能大于控制平面版本。 有关详细信息,请参阅 升级节点池 字符串
osDiskSizeGB OS 磁盘大小(以 GB 为单位)用于为主/代理池中的每个计算机指定磁盘大小。 如果指定 0,它将根据指定的 vmSize 应用默认 osDisk 大小。 int

约束:
最小值 = 0
最大值 = 2048
osDiskType 如果 VM 支持该 VM 并且缓存磁盘大于请求的 OSDiskSizeGB,则默认值为“临时”。 否则,默认为“Managed”。 创建后可能不会更改。 有关详细信息,请参阅 临时 OS “临时”
“Managed”
osSKU 指定 OS SKU。 如果 OSType 为 Windows,则不能指定此值。 “CBLMariner”
“Ubuntu”
osType 操作系统类型。 默认值为 Linux。 “Linux”
“Windows”
podSubnetID 如果省略,则会在节点子网上静态分配 Pod IP(有关详细信息,请参阅 vnetSubnetID)。 此格式为:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} 字符串
powerState 首次创建代理池时,它最初正在运行。 可以通过将此字段设置为“已停止”来停止代理池。 已停止的代理池会停止其所有 VM,不会产生计费费用。 仅当代理池正在运行并且预配状态为“成功”时,才能停止代理池 PowerState
proximityPlacementGroupID 邻近放置组的 ID。 字符串
scaleDownMode 这也会影响群集自动缩放程序的行为。 如果未指定,则默认为 Delete。 “Deallocate”
“Delete”
scaleSetEvictionPolicy 除非 scaleSetPriority 为“Spot”,否则无法指定此项。 如果未指定,则默认值为“Delete”。 “Deallocate”
“Delete”
scaleSetPriority 虚拟机规模集优先级。 如果未指定,则默认值为“Regular”。 “Regular”
“Spot”
spotMaxPrice 可能的值是大于零或 -1 的任何小数值,表示愿意支付任何按需价格。 有关现成定价的更多详细信息,请参阅 现成 VM 定价 若要指定十进制值,请使用 json() 函数。 int 或 json decimal
标签 要保留在代理池虚拟机规模集上的标记。 对象
类型 代理池的类型。 “AvailabilitySet”
“VirtualMachineScaleSets”
upgradeSettings 用于升级代理池的设置 AgentPoolUpgradeSettings
vmSize VM 大小可用性因区域而异。 如果节点包含的计算资源(内存、cpu 等)Pod 不足,可能无法正常运行。 有关受限 VM 大小的更多详细信息,请参阅:/azure/aks/quotas-skus-regions 字符串
vnetSubnetID 如果未指定,将生成和使用 VNET 和子网。 如果未指定 podSubnetID,则这适用于节点和 Pod,否则它仅适用于节点。 此格式为:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} 字符串
workloadRuntime 确定节点可以运行的工作负荷的类型。 “OCIContainer”
“WasmWasi”

CreationData

名字 描述 价值
sourceResourceId 这是用于创建目标对象的源对象的 ARM ID。 字符串

KubeletConfig

名字 描述 价值
allowedUnsafeSysctls 允许的不安全 sysctls 或不安全的 sysctl 模式列表(以 *结尾)。 string[]
containerLogMaxFiles 容器日志文件的最大数目。 该数字必须≥ 2。 int

约束:
最小值 = 2
containerLogMaxSizeMB 在轮换容器日志文件之前,容器日志文件的最大大小(例如 10Mi)。 int
cpuCfsQuota 默认值为 true。 bool
cpuCfsQuotaPeriod 默认值为“100ms”。 有效值是包含可选分数和单位后缀的小数序列。 例如:“300ms”、“2h45m”。 支持的单位为“ns”、“us”、“ms”、“s”、“m”和“h”。 字符串
cpuManagerPolicy 默认值为“none”。 有关详细信息,请参阅 Kubernetes CPU 管理策略。 允许的值为“none”和“static”。 字符串
failSwapOn 如果设置为 true,则如果在节点上启用了交换,则 Kubelet 将无法启动。 bool
imageGcHighThreshold 若要禁用映像垃圾回收,请设置为 100。 默认值为 85% int
imageGcLowThreshold 这不能设置为高于 imageGcHighThreshold。 默认值为 80% int
podMaxPids 每个 Pod 的最大进程数。 int
topologyManagerPolicy 有关详细信息,请参阅 Kubernetes 拓扑管理器。 默认值为“none”。 允许的值为“none”、“best-effort”、“restricted”和“single-numa-node”。 字符串

LinuxOSConfig

名字 描述 价值
swapFileSizeMB 将在每个节点上创建的交换文件的大小(以 MB 为单位)。 int
sysctls Linux 代理节点的 Sysctl 设置。 SysctlConfig
transparentHugePageDefrag 有效值为“always”、“defer”、“defer+madvise”、“madvise”和“never”。 默认值为“madvise”。 有关详细信息,请参阅 透明巨页 字符串
transparentHugePageEnabled 有效值为“always”、“madvise”和“never”。 默认值为“always”。 有关详细信息,请参阅 透明巨页 字符串

SysctlConfig

名字 描述 价值
fsAioMaxNr Sysctl setting fs.aio-max-nr. int
fsFileMax Sysctl setting fs.file-max. int
fsInotifyMaxUserWatches Sysctl 设置 fs.inotify.max_user_watches。 int
fsNrOpen Sysctl 设置fs.nr_open。 int
kernelThreadsMax Sysctl 设置 kernel.threads-max。 int
netCoreNetdevMaxBacklog Sysctl 设置net.core.netdev_max_backlog。 int
netCoreOptmemMax Sysctl 设置net.core.optmem_max。 int
netCoreRmemDefault Sysctl 设置net.core.rmem_default。 int
netCoreRmemMax Sysctl 设置net.core.rmem_max。 int
netCoreSomaxconn Sysctl setting net.core.somaxconn. int
netCoreWmemDefault Sysctl 设置net.core.wmem_default。 int
netCoreWmemMax Sysctl 设置net.core.wmem_max。 int
netIpv4IpLocalPortRange Sysctl 设置net.ipv4.ip_local_port_range。 字符串
netIpv4NeighDefaultGcThresh1 Sysctl 设置net.ipv4.neigh.default.gc_thresh1。 int
netIpv4NeighDefaultGcThresh2 Sysctl 设置net.ipv4.neigh.default.gc_thresh2。 int
netIpv4NeighDefaultGcThresh3 Sysctl 设置net.ipv4.neigh.default.gc_thresh3。 int
netIpv4TcpFinTimeout Sysctl 设置net.ipv4.tcp_fin_timeout。 int
netIpv4TcpkeepaliveIntvl Sysctl 设置net.ipv4.tcp_keepalive_intvl。 int
netIpv4TcpKeepaliveProbes Sysctl 设置net.ipv4.tcp_keepalive_probes。 int
netIpv4TcpKeepaliveTime Sysctl 设置net.ipv4.tcp_keepalive_time。 int
netIpv4TcpMaxSynBacklog Sysctl 设置net.ipv4.tcp_max_syn_backlog。 int
netIpv4TcpMaxTwBuckets Sysctl 设置net.ipv4.tcp_max_tw_buckets。 int
netIpv4TcpTwReuse Sysctl 设置net.ipv4.tcp_tw_reuse。 bool
netNetfilterNfConntrackBuckets Sysctl 设置net.netfilter.nf_conntrack_buckets。 int
netNetfilterNfConntrackMax Sysctl 设置net.netfilter.nf_conntrack_max。 int
vmMaxMapCount Sysctl 设置 vm.max_map_count。 int
vmSwappiness Sysctl 设置 vm.swappiness。 int
vmVfsCachePressure Sysctl 设置vm.vfs_cache_pressure。 int

ManagedClusterAgentPoolProfilePropertiesNodeLabels

名字 描述 价值
{自定义属性} 字符串

PowerState

名字 描述 价值
法典 指示群集是正在运行还是已停止 “Running”
“Stopped”

AgentPoolUpgradeSettings

名字 描述 价值
maxSurge 这可以设置为整数(例如'5')或百分比(例如'50%')。 如果指定了百分比,则它是升级时代理池大小总数的百分比。 对于百分比,小数节点向上舍入。 如果未指定,则默认值为 1。 有关详细信息,包括最佳做法,请参阅:/azure/aks/upgrade-cluster#customize-node-surge-upgrade 字符串

ManagedClusterAPIServerAccessProfile

名字 描述 价值
authorizedIPRanges IP 范围以 CIDR 格式指定,例如 137.117.106.88/29。 此功能与使用公共 IP Per Node 的群集或使用基本负载均衡器的群集不兼容。 有关详细信息,请参阅 API 服务器授权 IP 范围 string[]
disableRunCommand 是否禁用群集的 run 命令。 bool
enablePrivateCluster 有关详细信息,请参阅 创建专用 AKS 群集 bool
enablePrivateClusterPublicFQDN 是否为专用群集创建其他公共 FQDN。 bool
privateDNSZone 默认值为 System。 有关详细信息,请参阅 配置专用 DNS 区域。 允许的值为“system”和“none”。 字符串

ManagedClusterPropertiesAutoScalerProfile

名字 描述 价值
balance-similar-node-groups 有效值为“true”和“false” 字符串
膨胀 如果未指定,则默认值为“random”。 有关详细信息,请参阅 扩展器 “最不浪费”
“most-pods”
“priority”
“random”
max-empty-bulk-delete 默认值为 10。 字符串
max-graceful-termination-sec 默认值为 600。 字符串
max-node-provision-time 默认值为“15m”。 值必须是后跟“m”的整数。 不支持除分钟(m)以外的时间单位。 字符串
max-total-unready-percentage 默认值为 45。 最大值为 100,最小值为 0。 字符串
new-pod-scale-up-delay 对于在 kubernetes 计划程序可以计划所有 Pod 之前不希望 CA 执行操作的突发/批处理缩放方案,可以告诉 CA 在某个年龄之前忽略未计划的 Pod。 默认值为“0s”。 值必须是一个整数,后跟一个单位(以秒为单位,“m”表示分钟,“h”表示小时等)。 字符串
ok-total-unready-count 这必须是整数。 默认值为 3。 字符串
scale-down-delay-after-add 默认值为“10m”。 值必须是后跟“m”的整数。 不支持除分钟(m)以外的时间单位。 字符串
scale-down-delay-after-delete 默认值为扫描间隔。 值必须是后跟“m”的整数。 不支持除分钟(m)以外的时间单位。 字符串
scale-down-delay-after-failure 默认值为“3m”。 值必须是后跟“m”的整数。 不支持除分钟(m)以外的时间单位。 字符串
scale-down-unneed-time 默认值为“10m”。 值必须是后跟“m”的整数。 不支持除分钟(m)以外的时间单位。 字符串
scale-down-unready-time 默认值为“20m”。 值必须是后跟“m”的整数。 不支持除分钟(m)以外的时间单位。 字符串
scale-down-utilization-threshold 默认值为“0.5”。 字符串
scan-interval 默认值为“10”。 值必须是整数秒数。 字符串
skip-nodes-with-local-storage 默认值为 true。 字符串
skip-nodes-with-system-pods 默认值为 true。 字符串

ManagedClusterAutoUpgradeProfile

名字 描述 价值
upgradeChannel 有关详细信息,请参阅 设置 AKS 群集自动升级通道 “node-image”
“none”
“patch”
“rapid”
“stable”

ManagedClusterHttpProxyConfig

名字 描述 价值
httpProxy 要使用的 HTTP 代理服务器终结点。 字符串
httpsProxy 要使用的 HTTPS 代理服务器终结点。 字符串
noProxy 不应通过代理的终结点。 string[]
trustedCa 用于连接到代理服务器的替代 CA 证书。 字符串

ManagedClusterPropertiesIdentityProfile

名字 描述 价值
{自定义属性} UserAssignedIdentity

UserAssignedIdentity

名字 描述 价值
clientId 用户分配标识的客户端 ID。 字符串
objectId 用户分配标识的对象 ID。 字符串
resourceId 用户分配标识的资源 ID。 字符串

ContainerServiceLinuxProfile

名字 描述 价值
adminUsername 用于 Linux VM 的管理员用户名。 string (必需)

约束:
Pattern = ^[A-Za-z][-A-Za-z0-9_]*$
ssh 在 Azure 上运行的基于 Linux 的 VM 的 SSH 配置。 ContainerServiceSshConfiguration (必需)

ContainerServiceSshConfiguration

名字 描述 价值
publicKeys 用于通过基于 Linux 的 VM 进行身份验证的 SSH 公钥列表。 最多可以指定 1 个键。 ContainerServiceSshPublicKey[] (必需)

ContainerServiceSshPublicKey

名字 描述 价值
keyData 用于通过 SSH 向 VM 进行身份验证的证书公钥。 证书必须采用 PEM 格式(带或不带标头)。 string (必需)

ContainerServiceNetworkProfile

名字 描述 价值
dnsServiceIP 分配给 Kubernetes DNS 服务的 IP 地址。 它必须位于 serviceCidr 中指定的 Kubernetes 服务地址范围内。 字符串

约束:
Pattern = ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
dockerBridgeCidr 分配给 Docker 网桥网络的 CIDR 表示法 IP 范围。 它不得与任何子网 IP 范围或 Kubernetes 服务地址范围重叠。 字符串

约束:
Pattern = ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
loadBalancerProfile 群集负载均衡器的配置文件。 ManagedClusterLoadBalancerProfile
loadBalancerSku 默认值为“standard”。 有关负载均衡器 SKU 之间的差异的详细信息,请参阅 Azure 负载均衡器 SKU “basic”
“standard”
natGatewayProfile 群集 NAT 网关的配置文件。 ManagedClusterNATGatewayProfile
networkMode 如果 networkPlugin 不是“azure”,则无法指定此项。 “bridge”
“transparent”
networkPlugin 用于生成 Kubernetes 网络的网络插件。 “azure”
“kubenet”
networkPolicy 用于生成 Kubernetes 网络的网络策略。 “azure”
“calico”
outboundType 这只能在群集创建时设置,以后无法更改。 有关详细信息,请参阅 出口出站类型 “loadBalancer”
“managedNATGateway”
“userAssignedNATGateway”
“userDefinedRouting”
podCidr 使用 kubenet 时分配 Pod IP 的 CIDR 表示法 IP 范围。 字符串

约束:
Pattern = ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
serviceCidr 从中分配服务群集 IP 的 CIDR 表示法 IP 范围。 它不得与任何子网 IP 范围重叠。 字符串

约束:
Pattern = ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$

ManagedClusterLoadBalancerProfile

名字 描述 价值
allocatedOutboundPorts 每个 VM 分配的 SNAT 端口的所需数量。 允许的值为 0 到 64000(含)。 默认值为 0,这会导致 Azure 动态分配端口。 int

约束:
最小值 = 0
最大值 = 64000
effectiveOutboundIPs 群集负载均衡器的有效出站 IP 资源。 ResourceReference[]
enableMultipleStandardLoadBalancers 为每个 AKS 群集启用多个标准负载均衡器。 bool
idleTimeoutInMinutes 所需的出站流空闲超时(以分钟为单位)。 允许的值为 4 到 120(含)。 默认值为 30 分钟。 int

约束:
最小值 = 4
最大值 = 120
managedOutboundIPs 群集负载均衡器的所需托管出站 IP。 ManagedClusterLoadBalancerProfileManagedOutboundIPs
outboundIPPrefixes 群集负载均衡器的所需出站 IP 前缀资源。 ManagedClusterLoadBalancerProfileOutboundIPPrefixes
outboundIP 群集负载均衡器的所需出站 IP 资源。 ManagedClusterLoadBalancerProfileOutboundIPs

ResourceReference

名字 描述 价值
id 完全限定的 Azure 资源 ID。 字符串

ManagedClusterLoadBalancerProfileManagedOutboundIPs

名字 描述 价值
计数 Azure 为群集负载均衡器创建/管理的所需出站 IP 数。 允许的值必须介于 1 到 100 之间(含)。 默认值为 1。 int

约束:
最小值 = 1
最大值 = 100

ManagedClusterLoadBalancerProfileOutboundIPPrefixes

名字 描述 价值
publicIPPrefixes 公共 IP 前缀资源的列表。 ResourceReference[]

ManagedClusterLoadBalancerProfileOutboundIPs

名字 描述 价值
publicIP 公共 IP 资源的列表。 ResourceReference[]

ManagedClusterNATGatewayProfile

名字 描述 价值
effectiveOutboundIPs 群集 NAT 网关的有效出站 IP 资源。 ResourceReference[]
idleTimeoutInMinutes 所需的出站流空闲超时(以分钟为单位)。 允许的值为 4 到 120(含)。 默认值为 4 分钟。 int

约束:
最小值 = 4
最大值 = 120
managedOutboundIPProfile 群集 NAT 网关的托管出站 IP 资源的配置文件。 ManagedClusterManagedOutboundIPProfile

ManagedClusterManagedOutboundIPProfile

名字 描述 价值
计数 Azure 创建/管理的所需出站 IP 数。 允许的值必须介于 1 到 16 之间(含)。 默认值为 1。 int

约束:
最小值 = 1
最大值 = 16

ManagedClusterPodIdentityProfile

名字 描述 价值
allowNetworkPluginKubenet 默认情况下,由于 AAD Pod 标识的安全相关特性以及 IP 欺骗的风险,在 Kubenet 中运行会禁用。 有关详细信息,请参阅 将 Kubenet 网络插件与 AAD Pod 标识 配合使用。 bool
启用 是否启用 Pod 标识加载项。 bool
userAssignedIdentities 群集中使用的 Pod 标识。 ManagedClusterPodIdentity[]
userAssignedIdentityExceptions 允许的 Pod 标识异常。 ManagedClusterPodIdentityException[]

ManagedClusterPodIdentity

名字 描述 价值
bindingSelector 要用于 AzureIdentityBinding 资源的绑定选择器。 字符串
身份 用户分配的标识详细信息。 UserAssignedIdentity (必需)
名字 Pod 标识的名称。 string (必需)
namespace Pod 标识的命名空间。 string (必需)

ManagedClusterPodIdentityException

名字 描述 价值
名字 Pod 标识异常的名称。 string (必需)
namespace Pod 标识异常的命名空间。 string (必需)
podLabels 要匹配的 Pod 标签。 ManagedClusterPodIdentityExceptionPodLabels (必需)

ManagedClusterPodIdentityExceptionPodLabels

名字 描述 价值
{自定义属性} 字符串

PrivateLinkResource

名字 描述 价值
groupId 资源的组 ID。 字符串
id 专用链接资源的 ID。 字符串
名字 专用链接资源的名称。 字符串
requiredMembers 资源的 RequiredMembers string[]
类型 资源类型。 字符串

ManagedClusterSecurityProfile

名字 描述 价值
azureDefender 安全配置文件的 Azure Defender 设置。 ManagedClusterSecurityProfileAzureDefender

ManagedClusterSecurityProfileAzureDefender

名字 描述 价值
启用 是否启用 Azure Defender bool
logAnalyticsWorkspaceResourceId 要与 Azure Defender 关联的 Log Analytics 工作区的资源 ID。 启用 Azure Defender 后,此字段是必需的,并且必须是有效的工作区资源 ID。 禁用 Azure Defender 后,不应存在此字段。 字符串

ManagedClusterServicePrincipalProfile

名字 描述 价值
clientId 服务主体的 ID。 string (必需)
秘密 以纯文本形式与服务主体关联的机密密码。 字符串

ManagedClusterWindowsProfile

名字 描述 价值
adminPassword 指定管理员帐户的密码。

最小长度: 8 个字符

最大长度: 123 个字符

复杂性要求:需要满足以下 4 个条件中的 3 个
字符数较低
具有大写字符
包含数字
具有特殊字符(正则表达式匹配 [\W_])

不允许的值:“abc@123”、“P@$$w 0rd”、“P@ssw0rd”、“P@ssword123”、“Pa$$word”、“pass@word1”、“Password!”、“Password1”、“Password22”、“iloveyou!”
字符串
adminUsername 指定管理员帐户的名称。

限制: 不能以“.” 结尾。

不允许的值:“administrator”、“admin”、“user”、“user1”、“test”、“user2”、“test1”、“user3”、“admin1”、“1”, “123”、“a”、“actuser”、“adm”、“admin2”、“aspnet”、“backup”、“console”、“david”、“guest”、“john”、“owner”、“root”、“server”、“sql”、“support”、“support_388945a0”、“sys”、“test2”、“test3”、“user4”、“user5”。

最小长度: 1 个字符

最大长度: 20 个字符
string (必需)
enableCSIProxy 有关 CSI 代理的更多详细信息,请参阅 CSI 代理 GitHub 存储库 bool
gmsaProfile 托管群集中的 Windows gMSA 配置文件。 WindowsGmsaProfile
licenseType 用于 Windows VM 的许可证类型。 有关更多详细信息,请参阅 Azure 混合用户权益 “None”
“Windows_Server”

WindowsGmsaProfile

名字 描述 价值
dnsServer 指定 Windows gMSA 的 DNS 服务器。

如果在用于创建托管群集的 vnet 中配置了 DNS 服务器,则将其设置为空。
字符串
启用 指定是否在托管群集中启用 Windows gMSA。 bool
rootDomainName 指定 Windows gMSA 的根域名。

如果在用于创建托管群集的 vnet 中配置了 DNS 服务器,则将其设置为空。
字符串

ManagedClusterSKU

名字 描述 价值
名字 托管群集 SKU 的名称。 “Basic”
如果未指定,则默认值为“Free”。 有关详细信息,请参阅 运行时间 SLA “Free”
“付费”

快速入门模板

以下快速入门模板部署此资源类型。

模板 描述
在 Azure 容器服务(AKS)上使用 Jenkins CI/CD

部署到 Azure
容器使你可以轻松地持续生成和部署应用程序。 通过在 Azure 容器服务中使用 Kubernetes 协调这些容器的部署,可以实现可复制、可管理的容器群集。 通过设置持续生成来生成容器映像和业务流程,可以提高部署的速度和可靠性。
min.io Azure 网关

部署到 Azure
完全专用 min.io Azure 网关部署,以提供受 Blob 存储支持的符合 S3 的存储 API
使用 NAT 网关和应用程序网关 AKS 群集

部署到 Azure
此示例演示如何使用 NAT 网关部署 AKS 群集进行出站连接,以及如何为入站连接部署应用程序网关。
创建专用 AKS 群集

部署到 Azure
此示例演示如何在虚拟网络中创建专用 AKS 群集以及 jumpbox 虚拟机。
使用公共 DNS 区域创建专用 AKS 群集

部署到 Azure
此示例演示如何使用公共 DNS 区域部署专用 AKS 群集。
部署托管 Kubernetes 群集(AKS)

部署到 Azure
此 ARM 模板演示如何将具有高级网络功能的 AKS 实例部署到现有虚拟网络。 此外,所选的服务主体将针对包含 AKS 群集的子网分配网络参与者角色。
使用 AAD 部署托管 Kubernetes 群集(AKS)

部署到 Azure
此 ARM 模板演示如何将具有高级网络功能的 AKS 实例部署到现有虚拟网络和 Azure AD 整数。 此外,所选的服务主体将针对包含 AKS 群集的子网分配网络参与者角色。
为 Azure ML 部署 AKS 群集

部署到 Azure
使用此模板可以部署可附加到 Azure ML 的符合条目的 AKS 群集
Azure 容器服务 (AKS)

部署到 Azure
使用 Azure 容器服务部署托管群集(AKS)
Azure 容器服务 (AKS)

部署到 Azure
使用 Azure Linux 容器主机部署具有 Azure 容器服务(AKS)的托管群集
使用 Helm Azure 容器服务 (AKS)

部署到 Azure
使用 Helm 部署具有 Azure 容器服务(AKS)的托管群集
Azure Kubernetes 服务 (AKS)

部署到 Azure
通过 Azure Kubernetes 服务部署托管 Kubernetes 群集 (AKS)
使用应用程序网关入口控制器 AKS 群集

部署到 Azure
此示例演示如何使用应用程序网关、应用程序网关入口控制器、Azure 容器注册表、Log Analytics 和 Key Vault 部署 AKS 群集

ARM 模板资源定义

可以使用目标操作部署 managedClusters 资源类型:

有关每个 API 版本中已更改属性的列表,请参阅 更改日志

言论

有关可用加载项的信息,请参阅 加载项、扩展和其他与 Azure Kubernetes 服务集成。

资源格式

若要创建 Microsoft.ContainerService/managedClusters 资源,请将以下 JSON 添加到模板。

{
  "type": "Microsoft.ContainerService/managedClusters",
  "apiVersion": "2021-09-01",
  "name": "string",
  "location": "string",
  "tags": {
    "tagName1": "tagValue1",
    "tagName2": "tagValue2"
  },
  "sku": {
    "name": "Basic",
    "tier": "string"
  },
  "extendedLocation": {
    "name": "string",
    "type": "EdgeZone"
  },
  "identity": {
    "type": "string",
    "userAssignedIdentities": {
      "{customized property}": {}
    }
  },
  "properties": {
    "aadProfile": {
      "adminGroupObjectIDs": [ "string" ],
      "clientAppID": "string",
      "enableAzureRBAC": "bool",
      "managed": "bool",
      "serverAppID": "string",
      "serverAppSecret": "string",
      "tenantID": "string"
    },
    "addonProfiles": {
      "{customized property}": {
        "config": {
          "{customized property}": "string"
        },
        "enabled": "bool"
      }
    },
    "agentPoolProfiles": [
      {
        "availabilityZones": [ "string" ],
        "count": "int",
        "creationData": {
          "sourceResourceId": "string"
        },
        "enableAutoScaling": "bool",
        "enableEncryptionAtHost": "bool",
        "enableFIPS": "bool",
        "enableNodePublicIP": "bool",
        "enableUltraSSD": "bool",
        "gpuInstanceProfile": "string",
        "kubeletConfig": {
          "allowedUnsafeSysctls": [ "string" ],
          "containerLogMaxFiles": "int",
          "containerLogMaxSizeMB": "int",
          "cpuCfsQuota": "bool",
          "cpuCfsQuotaPeriod": "string",
          "cpuManagerPolicy": "string",
          "failSwapOn": "bool",
          "imageGcHighThreshold": "int",
          "imageGcLowThreshold": "int",
          "podMaxPids": "int",
          "topologyManagerPolicy": "string"
        },
        "kubeletDiskType": "string",
        "linuxOSConfig": {
          "swapFileSizeMB": "int",
          "sysctls": {
            "fsAioMaxNr": "int",
            "fsFileMax": "int",
            "fsInotifyMaxUserWatches": "int",
            "fsNrOpen": "int",
            "kernelThreadsMax": "int",
            "netCoreNetdevMaxBacklog": "int",
            "netCoreOptmemMax": "int",
            "netCoreRmemDefault": "int",
            "netCoreRmemMax": "int",
            "netCoreSomaxconn": "int",
            "netCoreWmemDefault": "int",
            "netCoreWmemMax": "int",
            "netIpv4IpLocalPortRange": "string",
            "netIpv4NeighDefaultGcThresh1": "int",
            "netIpv4NeighDefaultGcThresh2": "int",
            "netIpv4NeighDefaultGcThresh3": "int",
            "netIpv4TcpFinTimeout": "int",
            "netIpv4TcpkeepaliveIntvl": "int",
            "netIpv4TcpKeepaliveProbes": "int",
            "netIpv4TcpKeepaliveTime": "int",
            "netIpv4TcpMaxSynBacklog": "int",
            "netIpv4TcpMaxTwBuckets": "int",
            "netIpv4TcpTwReuse": "bool",
            "netNetfilterNfConntrackBuckets": "int",
            "netNetfilterNfConntrackMax": "int",
            "vmMaxMapCount": "int",
            "vmSwappiness": "int",
            "vmVfsCachePressure": "int"
          },
          "transparentHugePageDefrag": "string",
          "transparentHugePageEnabled": "string"
        },
        "maxCount": "int",
        "maxPods": "int",
        "minCount": "int",
        "mode": "string",
        "name": "string",
        "nodeLabels": {
          "{customized property}": "string"
        },
        "nodePublicIPPrefixID": "string",
        "nodeTaints": [ "string" ],
        "orchestratorVersion": "string",
        "osDiskSizeGB": "int",
        "osDiskType": "string",
        "osSKU": "string",
        "osType": "string",
        "podSubnetID": "string",
        "powerState": {
          "code": "string"
        },
        "proximityPlacementGroupID": "string",
        "scaleDownMode": "string",
        "scaleSetEvictionPolicy": "string",
        "scaleSetPriority": "string",
        "spotMaxPrice": "[json('decimal-as-string')]",
        "tags": {},
        "type": "string",
        "upgradeSettings": {
          "maxSurge": "string"
        },
        "vmSize": "string",
        "vnetSubnetID": "string",
        "workloadRuntime": "string"
      }
    ],
    "apiServerAccessProfile": {
      "authorizedIPRanges": [ "string" ],
      "disableRunCommand": "bool",
      "enablePrivateCluster": "bool",
      "enablePrivateClusterPublicFQDN": "bool",
      "privateDNSZone": "string"
    },
    "autoScalerProfile": {
      "balance-similar-node-groups": "string",
      "expander": "string",
      "max-empty-bulk-delete": "string",
      "max-graceful-termination-sec": "string",
      "max-node-provision-time": "string",
      "max-total-unready-percentage": "string",
      "new-pod-scale-up-delay": "string",
      "ok-total-unready-count": "string",
      "scale-down-delay-after-add": "string",
      "scale-down-delay-after-delete": "string",
      "scale-down-delay-after-failure": "string",
      "scale-down-unneeded-time": "string",
      "scale-down-unready-time": "string",
      "scale-down-utilization-threshold": "string",
      "scan-interval": "string",
      "skip-nodes-with-local-storage": "string",
      "skip-nodes-with-system-pods": "string"
    },
    "autoUpgradeProfile": {
      "upgradeChannel": "string"
    },
    "disableLocalAccounts": "bool",
    "diskEncryptionSetID": "string",
    "dnsPrefix": "string",
    "enablePodSecurityPolicy": "bool",
    "enableRBAC": "bool",
    "fqdnSubdomain": "string",
    "httpProxyConfig": {
      "httpProxy": "string",
      "httpsProxy": "string",
      "noProxy": [ "string" ],
      "trustedCa": "string"
    },
    "identityProfile": {
      "{customized property}": {
        "clientId": "string",
        "objectId": "string",
        "resourceId": "string"
      }
    },
    "kubernetesVersion": "string",
    "linuxProfile": {
      "adminUsername": "string",
      "ssh": {
        "publicKeys": [
          {
            "keyData": "string"
          }
        ]
      }
    },
    "networkProfile": {
      "dnsServiceIP": "string",
      "dockerBridgeCidr": "string",
      "loadBalancerProfile": {
        "allocatedOutboundPorts": "int",
        "effectiveOutboundIPs": [
          {
            "id": "string"
          }
        ],
        "enableMultipleStandardLoadBalancers": "bool",
        "idleTimeoutInMinutes": "int",
        "managedOutboundIPs": {
          "count": "int"
        },
        "outboundIPPrefixes": {
          "publicIPPrefixes": [
            {
              "id": "string"
            }
          ]
        },
        "outboundIPs": {
          "publicIPs": [
            {
              "id": "string"
            }
          ]
        }
      },
      "loadBalancerSku": "string",
      "natGatewayProfile": {
        "effectiveOutboundIPs": [
          {
            "id": "string"
          }
        ],
        "idleTimeoutInMinutes": "int",
        "managedOutboundIPProfile": {
          "count": "int"
        }
      },
      "networkMode": "string",
      "networkPlugin": "string",
      "networkPolicy": "string",
      "outboundType": "string",
      "podCidr": "string",
      "serviceCidr": "string"
    },
    "nodeResourceGroup": "string",
    "podIdentityProfile": {
      "allowNetworkPluginKubenet": "bool",
      "enabled": "bool",
      "userAssignedIdentities": [
        {
          "bindingSelector": "string",
          "identity": {
            "clientId": "string",
            "objectId": "string",
            "resourceId": "string"
          },
          "name": "string",
          "namespace": "string"
        }
      ],
      "userAssignedIdentityExceptions": [
        {
          "name": "string",
          "namespace": "string",
          "podLabels": {
            "{customized property}": "string"
          }
        }
      ]
    },
    "privateLinkResources": [
      {
        "groupId": "string",
        "id": "string",
        "name": "string",
        "requiredMembers": [ "string" ],
        "type": "string"
      }
    ],
    "publicNetworkAccess": "string",
    "securityProfile": {
      "azureDefender": {
        "enabled": "bool",
        "logAnalyticsWorkspaceResourceId": "string"
      }
    },
    "servicePrincipalProfile": {
      "clientId": "string",
      "secret": "string"
    },
    "windowsProfile": {
      "adminPassword": "string",
      "adminUsername": "string",
      "enableCSIProxy": "bool",
      "gmsaProfile": {
        "dnsServer": "string",
        "enabled": "bool",
        "rootDomainName": "string"
      },
      "licenseType": "string"
    }
  }
}

属性值

managedClusters

名字 描述 价值
类型 资源类型 “Microsoft.ContainerService/managedClusters”
apiVersion 资源 API 版本 '2021-09-01'
名字 资源名称 string (必需)

字符限制:1-63

有效字符:
字母数字、下划线和连字符。

以字母数字开头和结尾。
位置 资源位置 string (必需)
标签 资源标记 标记名称和值的字典。 请参阅模板 中的 标记
sku 托管群集 SKU。 ManagedClusterSKU
extendedLocation 虚拟机的扩展位置。 ExtendedLocation
身份 托管群集的标识(如果已配置)。 ManagedClusterIdentity
性能 托管群集的属性。 ManagedClusterProperties

ExtendedLocation

名字 描述 价值
名字 扩展位置的名称。 字符串
类型 扩展位置的类型。 “EdgeZone”

ManagedClusterIdentity

名字 描述 价值
类型 有关详细信息,请参阅 在 AKS中使用托管标识。 “None”
“SystemAssigned”
“UserAssigned”
userAssignedIdentities 密钥必须是 ARM 资源 ID,格式为“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}”。 ManagedClusterIdentityUserAssignedIdentities

ManagedClusterIdentityUserAssignedIdentities

名字 描述 价值
{自定义属性} ManagedServiceIdentityUserAssignedIdentitiesValue

ManagedServiceIdentityUserAssignedIdentitiesValue

此对象不包含在部署期间设置的任何属性。 所有属性都是 ReadOnly。

ManagedClusterProperties

名字 描述 价值
aadProfile Azure Active Directory 配置。 ManagedClusterAADProfile
addonProfiles 托管群集加载项的配置文件。 ManagedClusterPropertiesAddonProfiles
agentPoolProfiles 代理池属性。 ManagedClusterAgentPoolProfile[]
apiServerAccessProfile 托管群集 API 服务器的访问配置文件。 ManagedClusterAPIServerAccessProfile
autoScalerProfile 启用时要应用于群集自动缩放程序的参数 ManagedClusterPropertiesAutoScalerProfile
autoUpgradeProfile 自动升级配置。 ManagedClusterAutoUpgradeProfile
disableLocalAccounts 如果设置为 true,将禁用此群集的静态凭据。 这只能在启用了 AAD 的托管群集上使用。 有关详细信息,请参阅 禁用本地帐户 bool
diskEncryptionSetID 此格式为:“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}” 字符串
dnsPrefix 创建托管群集后,无法更新此功能。 字符串
enablePodSecurityPolicy (弃用)是否启用 Kubernetes Pod 安全策略(预览版)。 此功能设置为在 2020 年 10 月 15 日删除。 有关详细信息,请查看 aka.ms/aks/azpodpolicy。 bool
enableRBAC 是否启用 Kubernetes Role-Based 访问控制。 bool
fqdnSubdomain 创建托管群集后,无法更新此功能。 字符串
httpProxyConfig 使用 HTTP 代理服务器预配群集的配置。 ManagedClusterHttpProxyConfig
identityProfile 与群集关联的标识。 ManagedClusterPropertiesIdentityProfile
kubernetesVersion 升级支持的 AKS 群集时,无法跳过 Kubernetes 次要版本。 所有升级都必须按主版本号按顺序执行。 例如,允许在 1.14.x -> 1.15.x 或 1.15.x 之间升级> 1.16.x,但不允许使用 1.14.x -> 1.16.x。 有关更多详细信息,请参阅 升级 AKS 群集 字符串
linuxProfile 托管群集中 Linux VM 的配置文件。 ContainerServiceLinuxProfile
networkProfile 网络配置文件。 ContainerServiceNetworkProfile
nodeResourceGroup 包含代理池节点的资源组的名称。 字符串
podIdentityProfile 有关 AAD Pod 标识集成的详细信息,请参阅 使用 AAD Pod 标识 ManagedClusterPodIdentityProfile
privateLinkResources 与群集关联的专用链接资源。 PrivateLinkResource[]
publicNetworkAccess 默认值为“Enabled”(不区分大小写)。 可以设置为“已禁用”以启用专用群集 “Disabled”
“Enabled”
securityProfile 托管群集的安全配置文件。 ManagedClusterSecurityProfile
servicePrincipalProfile 有关群集用于操作 Azure API 的服务主体标识的信息。 ManagedClusterServicePrincipalProfile
windowsProfile 托管群集中 Windows VM 的配置文件。 ManagedClusterWindowsProfile

ManagedClusterAADProfile

名字 描述 价值
adminGroupObjectIDs 将具有群集管理员角色的 AAD 组对象 ID 的列表。 string[]
clientAppID 客户端 AAD 应用程序 ID。 字符串
enableAzureRBAC 是否为 Kubernetes 授权启用 Azure RBAC。 bool
管理 是否启用托管 AAD。 bool
serverAppID 服务器 AAD 应用程序 ID。 字符串
serverAppSecret 服务器 AAD 应用程序机密。 字符串
tenantID 用于身份验证的 AAD 租户 ID。 如果未指定,将使用部署订阅的租户。 字符串

ManagedClusterPropertiesAddonProfiles

名字 描述 价值
{自定义属性} ManagedClusterAddonProfile

ManagedClusterAddonProfile

名字 描述 价值
配置 用于配置加载项的键值对。 ManagedClusterAddonProfileConfig
启用 是否启用加载项。 bool (必需)

ManagedClusterAddonProfileConfig

名字 描述 价值
{自定义属性} 字符串

ManagedClusterAgentPoolProfile

名字 描述 价值
availabilityZones 要用于节点的可用性区域列表。 仅当 AgentPoolType 属性为“VirtualMachineScaleSets”时,才能指定此值。 string[]
计数 用于托管 docker 容器的代理数(VM)。 允许的值必须在用户池的 0 到 1000(含)范围内,系统池的范围为 1 到 1000(含)。 默认值为 1。 int
creationData 如果使用快照创建/升级节点池,则用于指定源快照 ID 的 CreationData。 CreationData
enableAutoScaling 是否启用自动缩放程序 bool
enableEncryptionAtHost 这仅在某些 VM 大小和某些 Azure 区域中受支持。 有关详细信息,请参阅:/azure/aks/enable-host-encryption bool
enableFIPS 有关详细信息,请参阅 添加启用了 FIPS 的节点池 bool
enableNodePublicIP 某些方案可能需要节点池中的节点接收其自己的专用公共 IP 地址。 一种常见方案适用于游戏工作负载,其中主机需要与云虚拟机建立直接连接,以最大程度地减少跃点。 有关详细信息,请参阅 为每个节点分配公共 IP。 默认值为 false。 bool
enableUltraSSD 是否启用 UltraSSD bool
gpuInstanceProfile 用于为支持的 GPU VM SKU 指定 GPU MIG 实例配置文件的 GPUInstanceProfile。 “MIG1g”
“MIG2g”
“MIG3g”
“MIG4g”
“MIG7g”
kubeletConfig 代理池节点上的 Kubelet 配置。 KubeletConfig
kubeletDiskType 确定 emptyDir 卷、容器运行时数据根目录和 Kubelet 临时存储的位置。 “OS”
“临时”
linuxOSConfig Linux 代理节点的 OS 配置。 LinuxOSConfig
maxCount 自动缩放的最大节点数 int
maxPods 可在节点上运行的 Pod 的最大数目。 int
minCount 自动缩放的最小节点数 int
模式 群集必须随时至少有一个“系统”代理池。 有关代理池限制和最佳做法的其他信息,请参阅:/azure/aks/use-system-pools “System”
“User”
名字 Windows 代理池名称必须为 6 个字符或更少。 string (必需)

约束:
Pattern = ^[a-z][a-z0-9]{0,11}$
nodeLabels 要跨代理池中的所有节点保留的节点标签。 ManagedClusterAgentPoolProfilePropertiesNodeLabels
nodePublicIPPrefixID 此格式为:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName} 字符串
nodeTaints 在节点池创建和缩放期间添加到新节点的污点。 例如,key=value:NoSchedule。 string[]
orchestratorVersion 最佳做法是,应将 AKS 群集中的所有节点池升级到同一 Kubernetes 版本。 节点池版本必须与控制平面具有相同的主版本。 节点池次要版本必须位于控制平面版本的两个次要版本中。 节点池版本不能大于控制平面版本。 有关详细信息,请参阅 升级节点池 字符串
osDiskSizeGB OS 磁盘大小(以 GB 为单位)用于为主/代理池中的每个计算机指定磁盘大小。 如果指定 0,它将根据指定的 vmSize 应用默认 osDisk 大小。 int

约束:
最小值 = 0
最大值 = 2048
osDiskType 如果 VM 支持该 VM 并且缓存磁盘大于请求的 OSDiskSizeGB,则默认值为“临时”。 否则,默认为“Managed”。 创建后可能不会更改。 有关详细信息,请参阅 临时 OS “临时”
“Managed”
osSKU 指定 OS SKU。 如果 OSType 为 Windows,则不能指定此值。 “CBLMariner”
“Ubuntu”
osType 操作系统类型。 默认值为 Linux。 “Linux”
“Windows”
podSubnetID 如果省略,则会在节点子网上静态分配 Pod IP(有关详细信息,请参阅 vnetSubnetID)。 此格式为:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} 字符串
powerState 首次创建代理池时,它最初正在运行。 可以通过将此字段设置为“已停止”来停止代理池。 已停止的代理池会停止其所有 VM,不会产生计费费用。 仅当代理池正在运行并且预配状态为“成功”时,才能停止代理池 PowerState
proximityPlacementGroupID 邻近放置组的 ID。 字符串
scaleDownMode 这也会影响群集自动缩放程序的行为。 如果未指定,则默认为 Delete。 “Deallocate”
“Delete”
scaleSetEvictionPolicy 除非 scaleSetPriority 为“Spot”,否则无法指定此项。 如果未指定,则默认值为“Delete”。 “Deallocate”
“Delete”
scaleSetPriority 虚拟机规模集优先级。 如果未指定,则默认值为“Regular”。 “Regular”
“Spot”
spotMaxPrice 可能的值是大于零或 -1 的任何小数值,表示愿意支付任何按需价格。 有关现成定价的更多详细信息,请参阅 现成 VM 定价 若要指定十进制值,请使用 json() 函数。 int 或 json decimal
标签 要保留在代理池虚拟机规模集上的标记。 对象
类型 代理池的类型。 “AvailabilitySet”
“VirtualMachineScaleSets”
upgradeSettings 用于升级代理池的设置 AgentPoolUpgradeSettings
vmSize VM 大小可用性因区域而异。 如果节点包含的计算资源(内存、cpu 等)Pod 不足,可能无法正常运行。 有关受限 VM 大小的更多详细信息,请参阅:/azure/aks/quotas-skus-regions 字符串
vnetSubnetID 如果未指定,将生成和使用 VNET 和子网。 如果未指定 podSubnetID,则这适用于节点和 Pod,否则它仅适用于节点。 此格式为:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} 字符串
workloadRuntime 确定节点可以运行的工作负荷的类型。 “OCIContainer”
“WasmWasi”

CreationData

名字 描述 价值
sourceResourceId 这是用于创建目标对象的源对象的 ARM ID。 字符串

KubeletConfig

名字 描述 价值
allowedUnsafeSysctls 允许的不安全 sysctls 或不安全的 sysctl 模式列表(以 *结尾)。 string[]
containerLogMaxFiles 容器日志文件的最大数目。 该数字必须≥ 2。 int

约束:
最小值 = 2
containerLogMaxSizeMB 在轮换容器日志文件之前,容器日志文件的最大大小(例如 10Mi)。 int
cpuCfsQuota 默认值为 true。 bool
cpuCfsQuotaPeriod 默认值为“100ms”。 有效值是包含可选分数和单位后缀的小数序列。 例如:“300ms”、“2h45m”。 支持的单位为“ns”、“us”、“ms”、“s”、“m”和“h”。 字符串
cpuManagerPolicy 默认值为“none”。 有关详细信息,请参阅 Kubernetes CPU 管理策略。 允许的值为“none”和“static”。 字符串
failSwapOn 如果设置为 true,则如果在节点上启用了交换,则 Kubelet 将无法启动。 bool
imageGcHighThreshold 若要禁用映像垃圾回收,请设置为 100。 默认值为 85% int
imageGcLowThreshold 这不能设置为高于 imageGcHighThreshold。 默认值为 80% int
podMaxPids 每个 Pod 的最大进程数。 int
topologyManagerPolicy 有关详细信息,请参阅 Kubernetes 拓扑管理器。 默认值为“none”。 允许的值为“none”、“best-effort”、“restricted”和“single-numa-node”。 字符串

LinuxOSConfig

名字 描述 价值
swapFileSizeMB 将在每个节点上创建的交换文件的大小(以 MB 为单位)。 int
sysctls Linux 代理节点的 Sysctl 设置。 SysctlConfig
transparentHugePageDefrag 有效值为“always”、“defer”、“defer+madvise”、“madvise”和“never”。 默认值为“madvise”。 有关详细信息,请参阅 透明巨页 字符串
transparentHugePageEnabled 有效值为“always”、“madvise”和“never”。 默认值为“always”。 有关详细信息,请参阅 透明巨页 字符串

SysctlConfig

名字 描述 价值
fsAioMaxNr Sysctl setting fs.aio-max-nr. int
fsFileMax Sysctl setting fs.file-max. int
fsInotifyMaxUserWatches Sysctl 设置 fs.inotify.max_user_watches。 int
fsNrOpen Sysctl 设置fs.nr_open。 int
kernelThreadsMax Sysctl 设置 kernel.threads-max。 int
netCoreNetdevMaxBacklog Sysctl 设置net.core.netdev_max_backlog。 int
netCoreOptmemMax Sysctl 设置net.core.optmem_max。 int
netCoreRmemDefault Sysctl 设置net.core.rmem_default。 int
netCoreRmemMax Sysctl 设置net.core.rmem_max。 int
netCoreSomaxconn Sysctl setting net.core.somaxconn. int
netCoreWmemDefault Sysctl 设置net.core.wmem_default。 int
netCoreWmemMax Sysctl 设置net.core.wmem_max。 int
netIpv4IpLocalPortRange Sysctl 设置net.ipv4.ip_local_port_range。 字符串
netIpv4NeighDefaultGcThresh1 Sysctl 设置net.ipv4.neigh.default.gc_thresh1。 int
netIpv4NeighDefaultGcThresh2 Sysctl 设置net.ipv4.neigh.default.gc_thresh2。 int
netIpv4NeighDefaultGcThresh3 Sysctl 设置net.ipv4.neigh.default.gc_thresh3。 int
netIpv4TcpFinTimeout Sysctl 设置net.ipv4.tcp_fin_timeout。 int
netIpv4TcpkeepaliveIntvl Sysctl 设置net.ipv4.tcp_keepalive_intvl。 int
netIpv4TcpKeepaliveProbes Sysctl 设置net.ipv4.tcp_keepalive_probes。 int
netIpv4TcpKeepaliveTime Sysctl 设置net.ipv4.tcp_keepalive_time。 int
netIpv4TcpMaxSynBacklog Sysctl 设置net.ipv4.tcp_max_syn_backlog。 int
netIpv4TcpMaxTwBuckets Sysctl 设置net.ipv4.tcp_max_tw_buckets。 int
netIpv4TcpTwReuse Sysctl 设置net.ipv4.tcp_tw_reuse。 bool
netNetfilterNfConntrackBuckets Sysctl 设置net.netfilter.nf_conntrack_buckets。 int
netNetfilterNfConntrackMax Sysctl 设置net.netfilter.nf_conntrack_max。 int
vmMaxMapCount Sysctl 设置 vm.max_map_count。 int
vmSwappiness Sysctl 设置 vm.swappiness。 int
vmVfsCachePressure Sysctl 设置vm.vfs_cache_pressure。 int

ManagedClusterAgentPoolProfilePropertiesNodeLabels

名字 描述 价值
{自定义属性} 字符串

PowerState

名字 描述 价值
法典 指示群集是正在运行还是已停止 “Running”
“Stopped”

AgentPoolUpgradeSettings

名字 描述 价值
maxSurge 这可以设置为整数(例如'5')或百分比(例如'50%')。 如果指定了百分比,则它是升级时代理池大小总数的百分比。 对于百分比,小数节点向上舍入。 如果未指定,则默认值为 1。 有关详细信息,包括最佳做法,请参阅:/azure/aks/upgrade-cluster#customize-node-surge-upgrade 字符串

ManagedClusterAPIServerAccessProfile

名字 描述 价值
authorizedIPRanges IP 范围以 CIDR 格式指定,例如 137.117.106.88/29。 此功能与使用公共 IP Per Node 的群集或使用基本负载均衡器的群集不兼容。 有关详细信息,请参阅 API 服务器授权 IP 范围 string[]
disableRunCommand 是否禁用群集的 run 命令。 bool
enablePrivateCluster 有关详细信息,请参阅 创建专用 AKS 群集 bool
enablePrivateClusterPublicFQDN 是否为专用群集创建其他公共 FQDN。 bool
privateDNSZone 默认值为 System。 有关详细信息,请参阅 配置专用 DNS 区域。 允许的值为“system”和“none”。 字符串

ManagedClusterPropertiesAutoScalerProfile

名字 描述 价值
balance-similar-node-groups 有效值为“true”和“false” 字符串
膨胀 如果未指定,则默认值为“random”。 有关详细信息,请参阅 扩展器 “最不浪费”
“most-pods”
“priority”
“random”
max-empty-bulk-delete 默认值为 10。 字符串
max-graceful-termination-sec 默认值为 600。 字符串
max-node-provision-time 默认值为“15m”。 值必须是后跟“m”的整数。 不支持除分钟(m)以外的时间单位。 字符串
max-total-unready-percentage 默认值为 45。 最大值为 100,最小值为 0。 字符串
new-pod-scale-up-delay 对于在 kubernetes 计划程序可以计划所有 Pod 之前不希望 CA 执行操作的突发/批处理缩放方案,可以告诉 CA 在某个年龄之前忽略未计划的 Pod。 默认值为“0s”。 值必须是一个整数,后跟一个单位(以秒为单位,“m”表示分钟,“h”表示小时等)。 字符串
ok-total-unready-count 这必须是整数。 默认值为 3。 字符串
scale-down-delay-after-add 默认值为“10m”。 值必须是后跟“m”的整数。 不支持除分钟(m)以外的时间单位。 字符串
scale-down-delay-after-delete 默认值为扫描间隔。 值必须是后跟“m”的整数。 不支持除分钟(m)以外的时间单位。 字符串
scale-down-delay-after-failure 默认值为“3m”。 值必须是后跟“m”的整数。 不支持除分钟(m)以外的时间单位。 字符串
scale-down-unneed-time 默认值为“10m”。 值必须是后跟“m”的整数。 不支持除分钟(m)以外的时间单位。 字符串
scale-down-unready-time 默认值为“20m”。 值必须是后跟“m”的整数。 不支持除分钟(m)以外的时间单位。 字符串
scale-down-utilization-threshold 默认值为“0.5”。 字符串
scan-interval 默认值为“10”。 值必须是整数秒数。 字符串
skip-nodes-with-local-storage 默认值为 true。 字符串
skip-nodes-with-system-pods 默认值为 true。 字符串

ManagedClusterAutoUpgradeProfile

名字 描述 价值
upgradeChannel 有关详细信息,请参阅 设置 AKS 群集自动升级通道 “node-image”
“none”
“patch”
“rapid”
“stable”

ManagedClusterHttpProxyConfig

名字 描述 价值
httpProxy 要使用的 HTTP 代理服务器终结点。 字符串
httpsProxy 要使用的 HTTPS 代理服务器终结点。 字符串
noProxy 不应通过代理的终结点。 string[]
trustedCa 用于连接到代理服务器的替代 CA 证书。 字符串

ManagedClusterPropertiesIdentityProfile

名字 描述 价值
{自定义属性} UserAssignedIdentity

UserAssignedIdentity

名字 描述 价值
clientId 用户分配标识的客户端 ID。 字符串
objectId 用户分配标识的对象 ID。 字符串
resourceId 用户分配标识的资源 ID。 字符串

ContainerServiceLinuxProfile

名字 描述 价值
adminUsername 用于 Linux VM 的管理员用户名。 string (必需)

约束:
Pattern = ^[A-Za-z][-A-Za-z0-9_]*$
ssh 在 Azure 上运行的基于 Linux 的 VM 的 SSH 配置。 ContainerServiceSshConfiguration (必需)

ContainerServiceSshConfiguration

名字 描述 价值
publicKeys 用于通过基于 Linux 的 VM 进行身份验证的 SSH 公钥列表。 最多可以指定 1 个键。 ContainerServiceSshPublicKey[] (必需)

ContainerServiceSshPublicKey

名字 描述 价值
keyData 用于通过 SSH 向 VM 进行身份验证的证书公钥。 证书必须采用 PEM 格式(带或不带标头)。 string (必需)

ContainerServiceNetworkProfile

名字 描述 价值
dnsServiceIP 分配给 Kubernetes DNS 服务的 IP 地址。 它必须位于 serviceCidr 中指定的 Kubernetes 服务地址范围内。 字符串

约束:
Pattern = ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
dockerBridgeCidr 分配给 Docker 网桥网络的 CIDR 表示法 IP 范围。 它不得与任何子网 IP 范围或 Kubernetes 服务地址范围重叠。 字符串

约束:
Pattern = ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
loadBalancerProfile 群集负载均衡器的配置文件。 ManagedClusterLoadBalancerProfile
loadBalancerSku 默认值为“standard”。 有关负载均衡器 SKU 之间的差异的详细信息,请参阅 Azure 负载均衡器 SKU “basic”
“standard”
natGatewayProfile 群集 NAT 网关的配置文件。 ManagedClusterNATGatewayProfile
networkMode 如果 networkPlugin 不是“azure”,则无法指定此项。 “bridge”
“transparent”
networkPlugin 用于生成 Kubernetes 网络的网络插件。 “azure”
“kubenet”
networkPolicy 用于生成 Kubernetes 网络的网络策略。 “azure”
“calico”
outboundType 这只能在群集创建时设置,以后无法更改。 有关详细信息,请参阅 出口出站类型 “loadBalancer”
“managedNATGateway”
“userAssignedNATGateway”
“userDefinedRouting”
podCidr 使用 kubenet 时分配 Pod IP 的 CIDR 表示法 IP 范围。 字符串

约束:
Pattern = ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
serviceCidr 从中分配服务群集 IP 的 CIDR 表示法 IP 范围。 它不得与任何子网 IP 范围重叠。 字符串

约束:
Pattern = ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$

ManagedClusterLoadBalancerProfile

名字 描述 价值
allocatedOutboundPorts 每个 VM 分配的 SNAT 端口的所需数量。 允许的值为 0 到 64000(含)。 默认值为 0,这会导致 Azure 动态分配端口。 int

约束:
最小值 = 0
最大值 = 64000
effectiveOutboundIPs 群集负载均衡器的有效出站 IP 资源。 ResourceReference[]
enableMultipleStandardLoadBalancers 为每个 AKS 群集启用多个标准负载均衡器。 bool
idleTimeoutInMinutes 所需的出站流空闲超时(以分钟为单位)。 允许的值为 4 到 120(含)。 默认值为 30 分钟。 int

约束:
最小值 = 4
最大值 = 120
managedOutboundIPs 群集负载均衡器的所需托管出站 IP。 ManagedClusterLoadBalancerProfileManagedOutboundIPs
outboundIPPrefixes 群集负载均衡器的所需出站 IP 前缀资源。 ManagedClusterLoadBalancerProfileOutboundIPPrefixes
outboundIP 群集负载均衡器的所需出站 IP 资源。 ManagedClusterLoadBalancerProfileOutboundIPs

ResourceReference

名字 描述 价值
id 完全限定的 Azure 资源 ID。 字符串

ManagedClusterLoadBalancerProfileManagedOutboundIPs

名字 描述 价值
计数 Azure 为群集负载均衡器创建/管理的所需出站 IP 数。 允许的值必须介于 1 到 100 之间(含)。 默认值为 1。 int

约束:
最小值 = 1
最大值 = 100

ManagedClusterLoadBalancerProfileOutboundIPPrefixes

名字 描述 价值
publicIPPrefixes 公共 IP 前缀资源的列表。 ResourceReference[]

ManagedClusterLoadBalancerProfileOutboundIPs

名字 描述 价值
publicIP 公共 IP 资源的列表。 ResourceReference[]

ManagedClusterNATGatewayProfile

名字 描述 价值
effectiveOutboundIPs 群集 NAT 网关的有效出站 IP 资源。 ResourceReference[]
idleTimeoutInMinutes 所需的出站流空闲超时(以分钟为单位)。 允许的值为 4 到 120(含)。 默认值为 4 分钟。 int

约束:
最小值 = 4
最大值 = 120
managedOutboundIPProfile 群集 NAT 网关的托管出站 IP 资源的配置文件。 ManagedClusterManagedOutboundIPProfile

ManagedClusterManagedOutboundIPProfile

名字 描述 价值
计数 Azure 创建/管理的所需出站 IP 数。 允许的值必须介于 1 到 16 之间(含)。 默认值为 1。 int

约束:
最小值 = 1
最大值 = 16

ManagedClusterPodIdentityProfile

名字 描述 价值
allowNetworkPluginKubenet 默认情况下,由于 AAD Pod 标识的安全相关特性以及 IP 欺骗的风险,在 Kubenet 中运行会禁用。 有关详细信息,请参阅 将 Kubenet 网络插件与 AAD Pod 标识 配合使用。 bool
启用 是否启用 Pod 标识加载项。 bool
userAssignedIdentities 群集中使用的 Pod 标识。 ManagedClusterPodIdentity[]
userAssignedIdentityExceptions 允许的 Pod 标识异常。 ManagedClusterPodIdentityException[]

ManagedClusterPodIdentity

名字 描述 价值
bindingSelector 要用于 AzureIdentityBinding 资源的绑定选择器。 字符串
身份 用户分配的标识详细信息。 UserAssignedIdentity (必需)
名字 Pod 标识的名称。 string (必需)
namespace Pod 标识的命名空间。 string (必需)

ManagedClusterPodIdentityException

名字 描述 价值
名字 Pod 标识异常的名称。 string (必需)
namespace Pod 标识异常的命名空间。 string (必需)
podLabels 要匹配的 Pod 标签。 ManagedClusterPodIdentityExceptionPodLabels (必需)

ManagedClusterPodIdentityExceptionPodLabels

名字 描述 价值
{自定义属性} 字符串

PrivateLinkResource

名字 描述 价值
groupId 资源的组 ID。 字符串
id 专用链接资源的 ID。 字符串
名字 专用链接资源的名称。 字符串
requiredMembers 资源的 RequiredMembers string[]
类型 资源类型。 字符串

ManagedClusterSecurityProfile

名字 描述 价值
azureDefender 安全配置文件的 Azure Defender 设置。 ManagedClusterSecurityProfileAzureDefender

ManagedClusterSecurityProfileAzureDefender

名字 描述 价值
启用 是否启用 Azure Defender bool
logAnalyticsWorkspaceResourceId 要与 Azure Defender 关联的 Log Analytics 工作区的资源 ID。 启用 Azure Defender 后,此字段是必需的,并且必须是有效的工作区资源 ID。 禁用 Azure Defender 后,不应存在此字段。 字符串

ManagedClusterServicePrincipalProfile

名字 描述 价值
clientId 服务主体的 ID。 string (必需)
秘密 以纯文本形式与服务主体关联的机密密码。 字符串

ManagedClusterWindowsProfile

名字 描述 价值
adminPassword 指定管理员帐户的密码。

最小长度: 8 个字符

最大长度: 123 个字符

复杂性要求:需要满足以下 4 个条件中的 3 个
字符数较低
具有大写字符
包含数字
具有特殊字符(正则表达式匹配 [\W_])

不允许的值:“abc@123”、“P@$$w 0rd”、“P@ssw0rd”、“P@ssword123”、“Pa$$word”、“pass@word1”、“Password!”、“Password1”、“Password22”、“iloveyou!”
字符串
adminUsername 指定管理员帐户的名称。

限制: 不能以“.” 结尾。

不允许的值:“administrator”、“admin”、“user”、“user1”、“test”、“user2”、“test1”、“user3”、“admin1”、“1”, “123”、“a”、“actuser”、“adm”、“admin2”、“aspnet”、“backup”、“console”、“david”、“guest”、“john”、“owner”、“root”、“server”、“sql”、“support”、“support_388945a0”、“sys”、“test2”、“test3”、“user4”、“user5”。

最小长度: 1 个字符

最大长度: 20 个字符
string (必需)
enableCSIProxy 有关 CSI 代理的更多详细信息,请参阅 CSI 代理 GitHub 存储库 bool
gmsaProfile 托管群集中的 Windows gMSA 配置文件。 WindowsGmsaProfile
licenseType 用于 Windows VM 的许可证类型。 有关更多详细信息,请参阅 Azure 混合用户权益 “None”
“Windows_Server”

WindowsGmsaProfile

名字 描述 价值
dnsServer 指定 Windows gMSA 的 DNS 服务器。

如果在用于创建托管群集的 vnet 中配置了 DNS 服务器,则将其设置为空。
字符串
启用 指定是否在托管群集中启用 Windows gMSA。 bool
rootDomainName 指定 Windows gMSA 的根域名。

如果在用于创建托管群集的 vnet 中配置了 DNS 服务器,则将其设置为空。
字符串

ManagedClusterSKU

名字 描述 价值
名字 托管群集 SKU 的名称。 “Basic”
如果未指定,则默认值为“Free”。 有关详细信息,请参阅 运行时间 SLA “Free”
“付费”

快速入门模板

以下快速入门模板部署此资源类型。

模板 描述
在 Azure 容器服务(AKS)上使用 Jenkins CI/CD

部署到 Azure
容器使你可以轻松地持续生成和部署应用程序。 通过在 Azure 容器服务中使用 Kubernetes 协调这些容器的部署,可以实现可复制、可管理的容器群集。 通过设置持续生成来生成容器映像和业务流程,可以提高部署的速度和可靠性。
min.io Azure 网关

部署到 Azure
完全专用 min.io Azure 网关部署,以提供受 Blob 存储支持的符合 S3 的存储 API
使用 NAT 网关和应用程序网关 AKS 群集

部署到 Azure
此示例演示如何使用 NAT 网关部署 AKS 群集进行出站连接,以及如何为入站连接部署应用程序网关。
创建专用 AKS 群集

部署到 Azure
此示例演示如何在虚拟网络中创建专用 AKS 群集以及 jumpbox 虚拟机。
使用公共 DNS 区域创建专用 AKS 群集

部署到 Azure
此示例演示如何使用公共 DNS 区域部署专用 AKS 群集。
部署托管 Kubernetes 群集(AKS)

部署到 Azure
此 ARM 模板演示如何将具有高级网络功能的 AKS 实例部署到现有虚拟网络。 此外,所选的服务主体将针对包含 AKS 群集的子网分配网络参与者角色。
使用 AAD 部署托管 Kubernetes 群集(AKS)

部署到 Azure
此 ARM 模板演示如何将具有高级网络功能的 AKS 实例部署到现有虚拟网络和 Azure AD 整数。 此外,所选的服务主体将针对包含 AKS 群集的子网分配网络参与者角色。
为 Azure ML 部署 AKS 群集

部署到 Azure
使用此模板可以部署可附加到 Azure ML 的符合条目的 AKS 群集
Azure 容器服务 (AKS)

部署到 Azure
使用 Azure 容器服务部署托管群集(AKS)
Azure 容器服务 (AKS)

部署到 Azure
使用 Azure Linux 容器主机部署具有 Azure 容器服务(AKS)的托管群集
使用 Helm Azure 容器服务 (AKS)

部署到 Azure
使用 Helm 部署具有 Azure 容器服务(AKS)的托管群集
Azure Kubernetes 服务 (AKS)

部署到 Azure
通过 Azure Kubernetes 服务部署托管 Kubernetes 群集 (AKS)
使用应用程序网关入口控制器 AKS 群集

部署到 Azure
此示例演示如何使用应用程序网关、应用程序网关入口控制器、Azure 容器注册表、Log Analytics 和 Key Vault 部署 AKS 群集

Terraform (AzAPI 提供程序)资源定义

可以使用目标操作部署 managedClusters 资源类型:

  • 资源组

有关每个 API 版本中已更改属性的列表,请参阅 更改日志

资源格式

若要创建 Microsoft.ContainerService/managedClusters 资源,请将以下 Terraform 添加到模板。

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.ContainerService/managedClusters@2021-09-01"
  name = "string"
  location = "string"
  parent_id = "string"
  tags = {
    tagName1 = "tagValue1"
    tagName2 = "tagValue2"
  }
  identity {
    type = "string"
    identity_ids = []
  }
  body = jsonencode({
    properties = {
      aadProfile = {
        adminGroupObjectIDs = [
          "string"
        ]
        clientAppID = "string"
        enableAzureRBAC = bool
        managed = bool
        serverAppID = "string"
        serverAppSecret = "string"
        tenantID = "string"
      }
      addonProfiles = {
        {customized property} = {
          config = {
            {customized property} = "string"
          }
          enabled = bool
        }
      }
      agentPoolProfiles = [
        {
          availabilityZones = [
            "string"
          ]
          count = int
          creationData = {
            sourceResourceId = "string"
          }
          enableAutoScaling = bool
          enableEncryptionAtHost = bool
          enableFIPS = bool
          enableNodePublicIP = bool
          enableUltraSSD = bool
          gpuInstanceProfile = "string"
          kubeletConfig = {
            allowedUnsafeSysctls = [
              "string"
            ]
            containerLogMaxFiles = int
            containerLogMaxSizeMB = int
            cpuCfsQuota = bool
            cpuCfsQuotaPeriod = "string"
            cpuManagerPolicy = "string"
            failSwapOn = bool
            imageGcHighThreshold = int
            imageGcLowThreshold = int
            podMaxPids = int
            topologyManagerPolicy = "string"
          }
          kubeletDiskType = "string"
          linuxOSConfig = {
            swapFileSizeMB = int
            sysctls = {
              fsAioMaxNr = int
              fsFileMax = int
              fsInotifyMaxUserWatches = int
              fsNrOpen = int
              kernelThreadsMax = int
              netCoreNetdevMaxBacklog = int
              netCoreOptmemMax = int
              netCoreRmemDefault = int
              netCoreRmemMax = int
              netCoreSomaxconn = int
              netCoreWmemDefault = int
              netCoreWmemMax = int
              netIpv4IpLocalPortRange = "string"
              netIpv4NeighDefaultGcThresh1 = int
              netIpv4NeighDefaultGcThresh2 = int
              netIpv4NeighDefaultGcThresh3 = int
              netIpv4TcpFinTimeout = int
              netIpv4TcpkeepaliveIntvl = int
              netIpv4TcpKeepaliveProbes = int
              netIpv4TcpKeepaliveTime = int
              netIpv4TcpMaxSynBacklog = int
              netIpv4TcpMaxTwBuckets = int
              netIpv4TcpTwReuse = bool
              netNetfilterNfConntrackBuckets = int
              netNetfilterNfConntrackMax = int
              vmMaxMapCount = int
              vmSwappiness = int
              vmVfsCachePressure = int
            }
            transparentHugePageDefrag = "string"
            transparentHugePageEnabled = "string"
          }
          maxCount = int
          maxPods = int
          minCount = int
          mode = "string"
          name = "string"
          nodeLabels = {
            {customized property} = "string"
          }
          nodePublicIPPrefixID = "string"
          nodeTaints = [
            "string"
          ]
          orchestratorVersion = "string"
          osDiskSizeGB = int
          osDiskType = "string"
          osSKU = "string"
          osType = "string"
          podSubnetID = "string"
          powerState = {
            code = "string"
          }
          proximityPlacementGroupID = "string"
          scaleDownMode = "string"
          scaleSetEvictionPolicy = "string"
          scaleSetPriority = "string"
          spotMaxPrice = "decimal-as-string"
          tags = {}
          type = "string"
          upgradeSettings = {
            maxSurge = "string"
          }
          vmSize = "string"
          vnetSubnetID = "string"
          workloadRuntime = "string"
        }
      ]
      apiServerAccessProfile = {
        authorizedIPRanges = [
          "string"
        ]
        disableRunCommand = bool
        enablePrivateCluster = bool
        enablePrivateClusterPublicFQDN = bool
        privateDNSZone = "string"
      }
      autoScalerProfile = {
        balance-similar-node-groups = "string"
        expander = "string"
        max-empty-bulk-delete = "string"
        max-graceful-termination-sec = "string"
        max-node-provision-time = "string"
        max-total-unready-percentage = "string"
        new-pod-scale-up-delay = "string"
        ok-total-unready-count = "string"
        scale-down-delay-after-add = "string"
        scale-down-delay-after-delete = "string"
        scale-down-delay-after-failure = "string"
        scale-down-unneeded-time = "string"
        scale-down-unready-time = "string"
        scale-down-utilization-threshold = "string"
        scan-interval = "string"
        skip-nodes-with-local-storage = "string"
        skip-nodes-with-system-pods = "string"
      }
      autoUpgradeProfile = {
        upgradeChannel = "string"
      }
      disableLocalAccounts = bool
      diskEncryptionSetID = "string"
      dnsPrefix = "string"
      enablePodSecurityPolicy = bool
      enableRBAC = bool
      fqdnSubdomain = "string"
      httpProxyConfig = {
        httpProxy = "string"
        httpsProxy = "string"
        noProxy = [
          "string"
        ]
        trustedCa = "string"
      }
      identityProfile = {
        {customized property} = {
          clientId = "string"
          objectId = "string"
          resourceId = "string"
        }
      }
      kubernetesVersion = "string"
      linuxProfile = {
        adminUsername = "string"
        ssh = {
          publicKeys = [
            {
              keyData = "string"
            }
          ]
        }
      }
      networkProfile = {
        dnsServiceIP = "string"
        dockerBridgeCidr = "string"
        loadBalancerProfile = {
          allocatedOutboundPorts = int
          effectiveOutboundIPs = [
            {
              id = "string"
            }
          ]
          enableMultipleStandardLoadBalancers = bool
          idleTimeoutInMinutes = int
          managedOutboundIPs = {
            count = int
          }
          outboundIPPrefixes = {
            publicIPPrefixes = [
              {
                id = "string"
              }
            ]
          }
          outboundIPs = {
            publicIPs = [
              {
                id = "string"
              }
            ]
          }
        }
        loadBalancerSku = "string"
        natGatewayProfile = {
          effectiveOutboundIPs = [
            {
              id = "string"
            }
          ]
          idleTimeoutInMinutes = int
          managedOutboundIPProfile = {
            count = int
          }
        }
        networkMode = "string"
        networkPlugin = "string"
        networkPolicy = "string"
        outboundType = "string"
        podCidr = "string"
        serviceCidr = "string"
      }
      nodeResourceGroup = "string"
      podIdentityProfile = {
        allowNetworkPluginKubenet = bool
        enabled = bool
        userAssignedIdentities = [
          {
            bindingSelector = "string"
            identity = {
              clientId = "string"
              objectId = "string"
              resourceId = "string"
            }
            name = "string"
            namespace = "string"
          }
        ]
        userAssignedIdentityExceptions = [
          {
            name = "string"
            namespace = "string"
            podLabels = {
              {customized property} = "string"
            }
          }
        ]
      }
      privateLinkResources = [
        {
          groupId = "string"
          id = "string"
          name = "string"
          requiredMembers = [
            "string"
          ]
          type = "string"
        }
      ]
      publicNetworkAccess = "string"
      securityProfile = {
        azureDefender = {
          enabled = bool
          logAnalyticsWorkspaceResourceId = "string"
        }
      }
      servicePrincipalProfile = {
        clientId = "string"
        secret = "string"
      }
      windowsProfile = {
        adminPassword = "string"
        adminUsername = "string"
        enableCSIProxy = bool
        gmsaProfile = {
          dnsServer = "string"
          enabled = bool
          rootDomainName = "string"
        }
        licenseType = "string"
      }
    }
    sku = {
      name = "Basic"
      tier = "string"
    }
    extendedLocation = {
      name = "string"
      type = "EdgeZone"
    }
  })
}

属性值

managedClusters

名字 描述 价值
类型 资源类型 “Microsoft.ContainerService/managedClusters@2021-09-01”
名字 资源名称 string (必需)

字符限制:1-63

有效字符:
字母数字、下划线和连字符。

以字母数字开头和结尾。
位置 资源位置 string (必需)
parent_id 若要部署到资源组,请使用该资源组的 ID。 string (必需)
标签 资源标记 标记名称和值的字典。
sku 托管群集 SKU。 ManagedClusterSKU
extendedLocation 虚拟机的扩展位置。 ExtendedLocation
身份 托管群集的标识(如果已配置)。 ManagedClusterIdentity
性能 托管群集的属性。 ManagedClusterProperties

ExtendedLocation

名字 描述 价值
名字 扩展位置的名称。 字符串
类型 扩展位置的类型。 “EdgeZone”

ManagedClusterIdentity

名字 描述 价值
类型 有关详细信息,请参阅 在 AKS中使用托管标识。 “SystemAssigned”
“UserAssigned”
identity_ids 密钥必须是 ARM 资源 ID,格式为“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}”。 用户标识 ID 的数组。

ManagedClusterIdentityUserAssignedIdentities

名字 描述 价值
{自定义属性} ManagedServiceIdentityUserAssignedIdentitiesValue

ManagedServiceIdentityUserAssignedIdentitiesValue

此对象不包含在部署期间设置的任何属性。 所有属性都是 ReadOnly。

ManagedClusterProperties

名字 描述 价值
aadProfile Azure Active Directory 配置。 ManagedClusterAADProfile
addonProfiles 托管群集加载项的配置文件。 ManagedClusterPropertiesAddonProfiles
agentPoolProfiles 代理池属性。 ManagedClusterAgentPoolProfile[]
apiServerAccessProfile 托管群集 API 服务器的访问配置文件。 ManagedClusterAPIServerAccessProfile
autoScalerProfile 启用时要应用于群集自动缩放程序的参数 ManagedClusterPropertiesAutoScalerProfile
autoUpgradeProfile 自动升级配置。 ManagedClusterAutoUpgradeProfile
disableLocalAccounts 如果设置为 true,将禁用此群集的静态凭据。 这只能在启用了 AAD 的托管群集上使用。 有关详细信息,请参阅 禁用本地帐户 bool
diskEncryptionSetID 此格式为:“/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}” 字符串
dnsPrefix 创建托管群集后,无法更新此功能。 字符串
enablePodSecurityPolicy (弃用)是否启用 Kubernetes Pod 安全策略(预览版)。 此功能设置为在 2020 年 10 月 15 日删除。 有关详细信息,请查看 aka.ms/aks/azpodpolicy。 bool
enableRBAC 是否启用 Kubernetes Role-Based 访问控制。 bool
fqdnSubdomain 创建托管群集后,无法更新此功能。 字符串
httpProxyConfig 使用 HTTP 代理服务器预配群集的配置。 ManagedClusterHttpProxyConfig
identityProfile 与群集关联的标识。 ManagedClusterPropertiesIdentityProfile
kubernetesVersion 升级支持的 AKS 群集时,无法跳过 Kubernetes 次要版本。 所有升级都必须按主版本号按顺序执行。 例如,允许在 1.14.x -> 1.15.x 或 1.15.x 之间升级> 1.16.x,但不允许使用 1.14.x -> 1.16.x。 有关更多详细信息,请参阅 升级 AKS 群集 字符串
linuxProfile 托管群集中 Linux VM 的配置文件。 ContainerServiceLinuxProfile
networkProfile 网络配置文件。 ContainerServiceNetworkProfile
nodeResourceGroup 包含代理池节点的资源组的名称。 字符串
podIdentityProfile 有关 AAD Pod 标识集成的详细信息,请参阅 使用 AAD Pod 标识 ManagedClusterPodIdentityProfile
privateLinkResources 与群集关联的专用链接资源。 PrivateLinkResource[]
publicNetworkAccess 默认值为“Enabled”(不区分大小写)。 可以设置为“已禁用”以启用专用群集 “Disabled”
“已启用”
securityProfile 托管群集的安全配置文件。 ManagedClusterSecurityProfile
servicePrincipalProfile 有关群集用于操作 Azure API 的服务主体标识的信息。 ManagedClusterServicePrincipalProfile
windowsProfile 托管群集中 Windows VM 的配置文件。 ManagedClusterWindowsProfile

ManagedClusterAADProfile

名字 描述 价值
adminGroupObjectIDs 将具有群集管理员角色的 AAD 组对象 ID 的列表。 string[]
clientAppID 客户端 AAD 应用程序 ID。 字符串
enableAzureRBAC 是否为 Kubernetes 授权启用 Azure RBAC。 bool
管理 是否启用托管 AAD。 bool
serverAppID 服务器 AAD 应用程序 ID。 字符串
serverAppSecret 服务器 AAD 应用程序机密。 字符串
tenantID 用于身份验证的 AAD 租户 ID。 如果未指定,将使用部署订阅的租户。 字符串

ManagedClusterPropertiesAddonProfiles

名字 描述 价值
{自定义属性} ManagedClusterAddonProfile

ManagedClusterAddonProfile

名字 描述 价值
配置 用于配置加载项的键值对。 ManagedClusterAddonProfileConfig
启用 是否启用加载项。 bool (必需)

ManagedClusterAddonProfileConfig

名字 描述 价值
{自定义属性} 字符串

ManagedClusterAgentPoolProfile

名字 描述 价值
availabilityZones 要用于节点的可用性区域列表。 仅当 AgentPoolType 属性为“VirtualMachineScaleSets”时,才能指定此值。 string[]
计数 用于托管 docker 容器的代理数(VM)。 允许的值必须在用户池的 0 到 1000(含)范围内,系统池的范围为 1 到 1000(含)。 默认值为 1。 int
creationData 如果使用快照创建/升级节点池,则用于指定源快照 ID 的 CreationData。 CreationData
enableAutoScaling 是否启用自动缩放程序 bool
enableEncryptionAtHost 这仅在某些 VM 大小和某些 Azure 区域中受支持。 有关详细信息,请参阅:/azure/aks/enable-host-encryption bool
enableFIPS 有关详细信息,请参阅 添加启用了 FIPS 的节点池 bool
enableNodePublicIP 某些方案可能需要节点池中的节点接收其自己的专用公共 IP 地址。 一种常见方案适用于游戏工作负载,其中主机需要与云虚拟机建立直接连接,以最大程度地减少跃点。 有关详细信息,请参阅 为每个节点分配公共 IP。 默认值为 false。 bool
enableUltraSSD 是否启用 UltraSSD bool
gpuInstanceProfile 用于为支持的 GPU VM SKU 指定 GPU MIG 实例配置文件的 GPUInstanceProfile。 “MIG1g”
“MIG2g”
“MIG3g”
“MIG4g”
“MIG7g”
kubeletConfig 代理池节点上的 Kubelet 配置。 KubeletConfig
kubeletDiskType 确定 emptyDir 卷、容器运行时数据根目录和 Kubelet 临时存储的位置。 “OS”
“临时”
linuxOSConfig Linux 代理节点的 OS 配置。 LinuxOSConfig
maxCount 自动缩放的最大节点数 int
maxPods 可在节点上运行的 Pod 的最大数目。 int
minCount 自动缩放的最小节点数 int
模式 群集必须随时至少有一个“系统”代理池。 有关代理池限制和最佳做法的其他信息,请参阅:/azure/aks/use-system-pools “系统”
“User”
名字 Windows 代理池名称必须为 6 个字符或更少。 string (必需)

约束:
Pattern = ^[a-z][a-z0-9]{0,11}$
nodeLabels 要跨代理池中的所有节点保留的节点标签。 ManagedClusterAgentPoolProfilePropertiesNodeLabels
nodePublicIPPrefixID 此格式为:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName} 字符串
nodeTaints 在节点池创建和缩放期间添加到新节点的污点。 例如,key=value:NoSchedule。 string[]
orchestratorVersion 最佳做法是,应将 AKS 群集中的所有节点池升级到同一 Kubernetes 版本。 节点池版本必须与控制平面具有相同的主版本。 节点池次要版本必须位于控制平面版本的两个次要版本中。 节点池版本不能大于控制平面版本。 有关详细信息,请参阅 升级节点池 字符串
osDiskSizeGB OS 磁盘大小(以 GB 为单位)用于为主/代理池中的每个计算机指定磁盘大小。 如果指定 0,它将根据指定的 vmSize 应用默认 osDisk 大小。 int

约束:
最小值 = 0
最大值 = 2048
osDiskType 如果 VM 支持该 VM 并且缓存磁盘大于请求的 OSDiskSizeGB,则默认值为“临时”。 否则,默认为“Managed”。 创建后可能不会更改。 有关详细信息,请参阅 临时 OS “临时”
“托管”
osSKU 指定 OS SKU。 如果 OSType 为 Windows,则不能指定此值。 “CBLMariner”
“Ubuntu”
osType 操作系统类型。 默认值为 Linux。 “Linux”
“Windows”
podSubnetID 如果省略,则会在节点子网上静态分配 Pod IP(有关详细信息,请参阅 vnetSubnetID)。 此格式为:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} 字符串
powerState 首次创建代理池时,它最初正在运行。 可以通过将此字段设置为“已停止”来停止代理池。 已停止的代理池会停止其所有 VM,不会产生计费费用。 仅当代理池正在运行并且预配状态为“成功”时,才能停止代理池 PowerState
proximityPlacementGroupID 邻近放置组的 ID。 字符串
scaleDownMode 这也会影响群集自动缩放程序的行为。 如果未指定,则默认为 Delete。 “解除分配”
“Delete”
scaleSetEvictionPolicy 除非 scaleSetPriority 为“Spot”,否则无法指定此项。 如果未指定,则默认值为“Delete”。 “解除分配”
“Delete”
scaleSetPriority 虚拟机规模集优先级。 如果未指定,则默认值为“Regular”。 “Regular”
“现成”
spotMaxPrice 可能的值是大于零或 -1 的任何小数值,表示愿意支付任何按需价格。 有关现成定价的更多详细信息,请参阅 现成 VM 定价 指定十进制值作为字符串。 int 或 json decimal
标签 要保留在代理池虚拟机规模集上的标记。 对象
类型 代理池的类型。 “AvailabilitySet”
“VirtualMachineScaleSets”
upgradeSettings 用于升级代理池的设置 AgentPoolUpgradeSettings
vmSize VM 大小可用性因区域而异。 如果节点包含的计算资源(内存、cpu 等)Pod 不足,可能无法正常运行。 有关受限 VM 大小的更多详细信息,请参阅:/azure/aks/quotas-skus-regions 字符串
vnetSubnetID 如果未指定,将生成和使用 VNET 和子网。 如果未指定 podSubnetID,则这适用于节点和 Pod,否则它仅适用于节点。 此格式为:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} 字符串
workloadRuntime 确定节点可以运行的工作负荷的类型。 “OCIContainer”
“WasmWasi”

CreationData

名字 描述 价值
sourceResourceId 这是用于创建目标对象的源对象的 ARM ID。 字符串

KubeletConfig

名字 描述 价值
allowedUnsafeSysctls 允许的不安全 sysctls 或不安全的 sysctl 模式列表(以 *结尾)。 string[]
containerLogMaxFiles 容器日志文件的最大数目。 该数字必须≥ 2。 int

约束:
最小值 = 2
containerLogMaxSizeMB 在轮换容器日志文件之前,容器日志文件的最大大小(例如 10Mi)。 int
cpuCfsQuota 默认值为 true。 bool
cpuCfsQuotaPeriod 默认值为“100ms”。 有效值是包含可选分数和单位后缀的小数序列。 例如:“300ms”、“2h45m”。 支持的单位为“ns”、“us”、“ms”、“s”、“m”和“h”。 字符串
cpuManagerPolicy 默认值为“none”。 有关详细信息,请参阅 Kubernetes CPU 管理策略。 允许的值为“none”和“static”。 字符串
failSwapOn 如果设置为 true,则如果在节点上启用了交换,则 Kubelet 将无法启动。 bool
imageGcHighThreshold 若要禁用映像垃圾回收,请设置为 100。 默认值为 85% int
imageGcLowThreshold 这不能设置为高于 imageGcHighThreshold。 默认值为 80% int
podMaxPids 每个 Pod 的最大进程数。 int
topologyManagerPolicy 有关详细信息,请参阅 Kubernetes 拓扑管理器。 默认值为“none”。 允许的值为“none”、“best-effort”、“restricted”和“single-numa-node”。 字符串

LinuxOSConfig

名字 描述 价值
swapFileSizeMB 将在每个节点上创建的交换文件的大小(以 MB 为单位)。 int
sysctls Linux 代理节点的 Sysctl 设置。 SysctlConfig
transparentHugePageDefrag 有效值为“always”、“defer”、“defer+madvise”、“madvise”和“never”。 默认值为“madvise”。 有关详细信息,请参阅 透明巨页 字符串
transparentHugePageEnabled 有效值为“always”、“madvise”和“never”。 默认值为“always”。 有关详细信息,请参阅 透明巨页 字符串

SysctlConfig

名字 描述 价值
fsAioMaxNr Sysctl setting fs.aio-max-nr. int
fsFileMax Sysctl setting fs.file-max. int
fsInotifyMaxUserWatches Sysctl 设置 fs.inotify.max_user_watches。 int
fsNrOpen Sysctl 设置fs.nr_open。 int
kernelThreadsMax Sysctl 设置 kernel.threads-max。 int
netCoreNetdevMaxBacklog Sysctl 设置net.core.netdev_max_backlog。 int
netCoreOptmemMax Sysctl 设置net.core.optmem_max。 int
netCoreRmemDefault Sysctl 设置net.core.rmem_default。 int
netCoreRmemMax Sysctl 设置net.core.rmem_max。 int
netCoreSomaxconn Sysctl setting net.core.somaxconn. int
netCoreWmemDefault Sysctl 设置net.core.wmem_default。 int
netCoreWmemMax Sysctl 设置net.core.wmem_max。 int
netIpv4IpLocalPortRange Sysctl 设置net.ipv4.ip_local_port_range。 字符串
netIpv4NeighDefaultGcThresh1 Sysctl 设置net.ipv4.neigh.default.gc_thresh1。 int
netIpv4NeighDefaultGcThresh2 Sysctl 设置net.ipv4.neigh.default.gc_thresh2。 int
netIpv4NeighDefaultGcThresh3 Sysctl 设置net.ipv4.neigh.default.gc_thresh3。 int
netIpv4TcpFinTimeout Sysctl 设置net.ipv4.tcp_fin_timeout。 int
netIpv4TcpkeepaliveIntvl Sysctl 设置net.ipv4.tcp_keepalive_intvl。 int
netIpv4TcpKeepaliveProbes Sysctl 设置net.ipv4.tcp_keepalive_probes。 int
netIpv4TcpKeepaliveTime Sysctl 设置net.ipv4.tcp_keepalive_time。 int
netIpv4TcpMaxSynBacklog Sysctl 设置net.ipv4.tcp_max_syn_backlog。 int
netIpv4TcpMaxTwBuckets Sysctl 设置net.ipv4.tcp_max_tw_buckets。 int
netIpv4TcpTwReuse Sysctl 设置net.ipv4.tcp_tw_reuse。 bool
netNetfilterNfConntrackBuckets Sysctl 设置net.netfilter.nf_conntrack_buckets。 int
netNetfilterNfConntrackMax Sysctl 设置net.netfilter.nf_conntrack_max。 int
vmMaxMapCount Sysctl 设置 vm.max_map_count。 int
vmSwappiness Sysctl 设置 vm.swappiness。 int
vmVfsCachePressure Sysctl 设置vm.vfs_cache_pressure。 int

ManagedClusterAgentPoolProfilePropertiesNodeLabels

名字 描述 价值
{自定义属性} 字符串

PowerState

名字 描述 价值
法典 指示群集是正在运行还是已停止 “正在运行”
“已停止”

AgentPoolUpgradeSettings

名字 描述 价值
maxSurge 这可以设置为整数(例如'5')或百分比(例如'50%')。 如果指定了百分比,则它是升级时代理池大小总数的百分比。 对于百分比,小数节点向上舍入。 如果未指定,则默认值为 1。 有关详细信息,包括最佳做法,请参阅:/azure/aks/upgrade-cluster#customize-node-surge-upgrade 字符串

ManagedClusterAPIServerAccessProfile

名字 描述 价值
authorizedIPRanges IP 范围以 CIDR 格式指定,例如 137.117.106.88/29。 此功能与使用公共 IP Per Node 的群集或使用基本负载均衡器的群集不兼容。 有关详细信息,请参阅 API 服务器授权 IP 范围 string[]
disableRunCommand 是否禁用群集的 run 命令。 bool
enablePrivateCluster 有关详细信息,请参阅 创建专用 AKS 群集 bool
enablePrivateClusterPublicFQDN 是否为专用群集创建其他公共 FQDN。 bool
privateDNSZone 默认值为 System。 有关详细信息,请参阅 配置专用 DNS 区域。 允许的值为“system”和“none”。 字符串

ManagedClusterPropertiesAutoScalerProfile

名字 描述 价值
balance-similar-node-groups 有效值为“true”和“false” 字符串
膨胀 如果未指定,则默认值为“random”。 有关详细信息,请参阅 扩展器 “最小浪费”
“most-pods”
“priority”
“random”
max-empty-bulk-delete 默认值为 10。 字符串
max-graceful-termination-sec 默认值为 600。 字符串
max-node-provision-time 默认值为“15m”。 值必须是后跟“m”的整数。 不支持除分钟(m)以外的时间单位。 字符串
max-total-unready-percentage 默认值为 45。 最大值为 100,最小值为 0。 字符串
new-pod-scale-up-delay 对于在 kubernetes 计划程序可以计划所有 Pod 之前不希望 CA 执行操作的突发/批处理缩放方案,可以告诉 CA 在某个年龄之前忽略未计划的 Pod。 默认值为“0s”。 值必须是一个整数,后跟一个单位(以秒为单位,“m”表示分钟,“h”表示小时等)。 字符串
ok-total-unready-count 这必须是整数。 默认值为 3。 字符串
scale-down-delay-after-add 默认值为“10m”。 值必须是后跟“m”的整数。 不支持除分钟(m)以外的时间单位。 字符串
scale-down-delay-after-delete 默认值为扫描间隔。 值必须是后跟“m”的整数。 不支持除分钟(m)以外的时间单位。 字符串
scale-down-delay-after-failure 默认值为“3m”。 值必须是后跟“m”的整数。 不支持除分钟(m)以外的时间单位。 字符串
scale-down-unneed-time 默认值为“10m”。 值必须是后跟“m”的整数。 不支持除分钟(m)以外的时间单位。 字符串
scale-down-unready-time 默认值为“20m”。 值必须是后跟“m”的整数。 不支持除分钟(m)以外的时间单位。 字符串
scale-down-utilization-threshold 默认值为“0.5”。 字符串
scan-interval 默认值为“10”。 值必须是整数秒数。 字符串
skip-nodes-with-local-storage 默认值为 true。 字符串
skip-nodes-with-system-pods 默认值为 true。 字符串

ManagedClusterAutoUpgradeProfile

名字 描述 价值
upgradeChannel 有关详细信息,请参阅 设置 AKS 群集自动升级通道 “node-image”
“none”
“patch”
“rapid”
“稳定”

ManagedClusterHttpProxyConfig

名字 描述 价值
httpProxy 要使用的 HTTP 代理服务器终结点。 字符串
httpsProxy 要使用的 HTTPS 代理服务器终结点。 字符串
noProxy 不应通过代理的终结点。 string[]
trustedCa 用于连接到代理服务器的替代 CA 证书。 字符串

ManagedClusterPropertiesIdentityProfile

名字 描述 价值
{自定义属性} UserAssignedIdentity

UserAssignedIdentity

名字 描述 价值
clientId 用户分配标识的客户端 ID。 字符串
objectId 用户分配标识的对象 ID。 字符串
resourceId 用户分配标识的资源 ID。 字符串

ContainerServiceLinuxProfile

名字 描述 价值
adminUsername 用于 Linux VM 的管理员用户名。 string (必需)

约束:
Pattern = ^[A-Za-z][-A-Za-z0-9_]*$
ssh 在 Azure 上运行的基于 Linux 的 VM 的 SSH 配置。 ContainerServiceSshConfiguration (必需)

ContainerServiceSshConfiguration

名字 描述 价值
publicKeys 用于通过基于 Linux 的 VM 进行身份验证的 SSH 公钥列表。 最多可以指定 1 个键。 ContainerServiceSshPublicKey[] (必需)

ContainerServiceSshPublicKey

名字 描述 价值
keyData 用于通过 SSH 向 VM 进行身份验证的证书公钥。 证书必须采用 PEM 格式(带或不带标头)。 string (必需)

ContainerServiceNetworkProfile

名字 描述 价值
dnsServiceIP 分配给 Kubernetes DNS 服务的 IP 地址。 它必须位于 serviceCidr 中指定的 Kubernetes 服务地址范围内。 字符串

约束:
Pattern = ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
dockerBridgeCidr 分配给 Docker 网桥网络的 CIDR 表示法 IP 范围。 它不得与任何子网 IP 范围或 Kubernetes 服务地址范围重叠。 字符串

约束:
Pattern = ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
loadBalancerProfile 群集负载均衡器的配置文件。 ManagedClusterLoadBalancerProfile
loadBalancerSku 默认值为“standard”。 有关负载均衡器 SKU 之间的差异的详细信息,请参阅 Azure 负载均衡器 SKU “basic”
“standard”
natGatewayProfile 群集 NAT 网关的配置文件。 ManagedClusterNATGatewayProfile
networkMode 如果 networkPlugin 不是“azure”,则无法指定此项。 “bridge”
“transparent”
networkPlugin 用于生成 Kubernetes 网络的网络插件。 “azure”
“kubenet”
networkPolicy 用于生成 Kubernetes 网络的网络策略。 “azure”
“calico”
outboundType 这只能在群集创建时设置,以后无法更改。 有关详细信息,请参阅 出口出站类型 “loadBalancer”
“managedNATGateway”
“userAssignedNATGateway”
“userDefinedRouting”
podCidr 使用 kubenet 时分配 Pod IP 的 CIDR 表示法 IP 范围。 字符串

约束:
Pattern = ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
serviceCidr 从中分配服务群集 IP 的 CIDR 表示法 IP 范围。 它不得与任何子网 IP 范围重叠。 字符串

约束:
Pattern = ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$

ManagedClusterLoadBalancerProfile

名字 描述 价值
allocatedOutboundPorts 每个 VM 分配的 SNAT 端口的所需数量。 允许的值为 0 到 64000(含)。 默认值为 0,这会导致 Azure 动态分配端口。 int

约束:
最小值 = 0
最大值 = 64000
effectiveOutboundIPs 群集负载均衡器的有效出站 IP 资源。 ResourceReference[]
enableMultipleStandardLoadBalancers 为每个 AKS 群集启用多个标准负载均衡器。 bool
idleTimeoutInMinutes 所需的出站流空闲超时(以分钟为单位)。 允许的值为 4 到 120(含)。 默认值为 30 分钟。 int

约束:
最小值 = 4
最大值 = 120
managedOutboundIPs 群集负载均衡器的所需托管出站 IP。 ManagedClusterLoadBalancerProfileManagedOutboundIPs
outboundIPPrefixes 群集负载均衡器的所需出站 IP 前缀资源。 ManagedClusterLoadBalancerProfileOutboundIPPrefixes
outboundIP 群集负载均衡器的所需出站 IP 资源。 ManagedClusterLoadBalancerProfileOutboundIPs

ResourceReference

名字 描述 价值
id 完全限定的 Azure 资源 ID。 字符串

ManagedClusterLoadBalancerProfileManagedOutboundIPs

名字 描述 价值
计数 Azure 为群集负载均衡器创建/管理的所需出站 IP 数。 允许的值必须介于 1 到 100 之间(含)。 默认值为 1。 int

约束:
最小值 = 1
最大值 = 100

ManagedClusterLoadBalancerProfileOutboundIPPrefixes

名字 描述 价值
publicIPPrefixes 公共 IP 前缀资源的列表。 ResourceReference[]

ManagedClusterLoadBalancerProfileOutboundIPs

名字 描述 价值
publicIP 公共 IP 资源的列表。 ResourceReference[]

ManagedClusterNATGatewayProfile

名字 描述 价值
effectiveOutboundIPs 群集 NAT 网关的有效出站 IP 资源。 ResourceReference[]
idleTimeoutInMinutes 所需的出站流空闲超时(以分钟为单位)。 允许的值为 4 到 120(含)。 默认值为 4 分钟。 int

约束:
最小值 = 4
最大值 = 120
managedOutboundIPProfile 群集 NAT 网关的托管出站 IP 资源的配置文件。 ManagedClusterManagedOutboundIPProfile

ManagedClusterManagedOutboundIPProfile

名字 描述 价值
计数 Azure 创建/管理的所需出站 IP 数。 允许的值必须介于 1 到 16 之间(含)。 默认值为 1。 int

约束:
最小值 = 1
最大值 = 16

ManagedClusterPodIdentityProfile

名字 描述 价值
allowNetworkPluginKubenet 默认情况下,由于 AAD Pod 标识的安全相关特性以及 IP 欺骗的风险,在 Kubenet 中运行会禁用。 有关详细信息,请参阅 将 Kubenet 网络插件与 AAD Pod 标识 配合使用。 bool
启用 是否启用 Pod 标识加载项。 bool
userAssignedIdentities 群集中使用的 Pod 标识。 ManagedClusterPodIdentity[]
userAssignedIdentityExceptions 允许的 Pod 标识异常。 ManagedClusterPodIdentityException[]

ManagedClusterPodIdentity

名字 描述 价值
bindingSelector 要用于 AzureIdentityBinding 资源的绑定选择器。 字符串
身份 用户分配的标识详细信息。 UserAssignedIdentity (必需)
名字 Pod 标识的名称。 string (必需)
namespace Pod 标识的命名空间。 string (必需)

ManagedClusterPodIdentityException

名字 描述 价值
名字 Pod 标识异常的名称。 string (必需)
namespace Pod 标识异常的命名空间。 string (必需)
podLabels 要匹配的 Pod 标签。 ManagedClusterPodIdentityExceptionPodLabels (必需)

ManagedClusterPodIdentityExceptionPodLabels

名字 描述 价值
{自定义属性} 字符串

PrivateLinkResource

名字 描述 价值
groupId 资源的组 ID。 字符串
id 专用链接资源的 ID。 字符串
名字 专用链接资源的名称。 字符串
requiredMembers 资源的 RequiredMembers string[]
类型 资源类型。 字符串

ManagedClusterSecurityProfile

名字 描述 价值
azureDefender 安全配置文件的 Azure Defender 设置。 ManagedClusterSecurityProfileAzureDefender

ManagedClusterSecurityProfileAzureDefender

名字 描述 价值
启用 是否启用 Azure Defender bool
logAnalyticsWorkspaceResourceId 要与 Azure Defender 关联的 Log Analytics 工作区的资源 ID。 启用 Azure Defender 后,此字段是必需的,并且必须是有效的工作区资源 ID。 禁用 Azure Defender 后,不应存在此字段。 字符串

ManagedClusterServicePrincipalProfile

名字 描述 价值
clientId 服务主体的 ID。 string (必需)
秘密 以纯文本形式与服务主体关联的机密密码。 字符串

ManagedClusterWindowsProfile

名字 描述 价值
adminPassword 指定管理员帐户的密码。

最小长度: 8 个字符

最大长度: 123 个字符

复杂性要求:需要满足以下 4 个条件中的 3 个
字符数较低
具有大写字符
包含数字
具有特殊字符(正则表达式匹配 [\W_])

不允许的值:“abc@123”、“P@$$w 0rd”、“P@ssw0rd”、“P@ssword123”、“Pa$$word”、“pass@word1”、“Password!”、“Password1”、“Password22”、“iloveyou!”
字符串
adminUsername 指定管理员帐户的名称。

限制: 不能以“.” 结尾。

不允许的值:“administrator”、“admin”、“user”、“user1”、“test”、“user2”、“test1”、“user3”、“admin1”、“1”, “123”、“a”、“actuser”、“adm”、“admin2”、“aspnet”、“backup”、“console”、“david”、“guest”、“john”、“owner”、“root”、“server”、“sql”、“support”、“support_388945a0”、“sys”、“test2”、“test3”、“user4”、“user5”。

最小长度: 1 个字符

最大长度: 20 个字符
string (必需)
enableCSIProxy 有关 CSI 代理的更多详细信息,请参阅 CSI 代理 GitHub 存储库 bool
gmsaProfile 托管群集中的 Windows gMSA 配置文件。 WindowsGmsaProfile
licenseType 用于 Windows VM 的许可证类型。 有关更多详细信息,请参阅 Azure 混合用户权益 “None”
“Windows_Server”

WindowsGmsaProfile

名字 描述 价值
dnsServer 指定 Windows gMSA 的 DNS 服务器。

如果在用于创建托管群集的 vnet 中配置了 DNS 服务器,则将其设置为空。
字符串
启用 指定是否在托管群集中启用 Windows gMSA。 bool
rootDomainName 指定 Windows gMSA 的根域名。

如果在用于创建托管群集的 vnet 中配置了 DNS 服务器,则将其设置为空。
字符串

ManagedClusterSKU

名字 描述 价值
名字 托管群集 SKU 的名称。 “Basic”
如果未指定,则默认值为“Free”。 有关详细信息,请参阅 运行时间 SLA “免费”
“付费”