azure.azcollection.azure_rm_aksagentpool 模块 – 管理 Kubernetes Kubernetes 集群中的节点池
注意
此模块是 azure.azcollection 集合(版本 3.1.0)的一部分。
如果您正在使用 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list。
要安装它,请使用:ansible-galaxy collection install azure.azcollection。您需要进一步的要求才能使用此模块,请参阅 要求了解详细信息。
要在 Playbook 中使用它,请指定:azure.azcollection.azure_rm_aksagentpool。
azure.azcollection 1.14.0 中的新增功能
概要
- 在 Kubernetes 集群中创建、更新或删除节点池。 
要求
执行此模块的主机需要满足以下要求。
- python >= 2.7 
- 执行此模块的主机必须通过 Galaxy 安装了 azure.azcollection 集合 
- 必须通过 pip 在执行来自 azure.azcollection 的模块的主机上安装集合的 requirements.txt 中列出的所有 Python 包 
- 完整的安装说明可以在 https://galaxy.ansible.com/azure/azcollection 中找到 
参数
| 参数 | 注释 | 
|---|---|
| Active Directory 用户名。当使用 Active Directory 用户而不是服务主体进行身份验证时使用。 | |
| Azure AD 授权 URL。当使用用户名/密码进行身份验证,并且拥有自己的 ADFS 授权时使用。 | |
| 选择与 Azure 服务通信时使用的 API 配置文件。默认值  默认值:  | |
| 用于控制 tags 字段是规范的还是仅附加到现有标签。 当为规范时,在 tags 参数中找不到的任何标签都将从对象的元数据中删除。 选项 
 | |
| 控制用于身份验证的凭据的来源。 也可以通过  当设置为  当设置为  当设置为  当设置为  当设置为  
 选项 
 | |
| 节点的可用区。必须使用 VirtualMachineScaleSets AgentPoolType。 选项 
 | |
| 控制 Azure 端点的证书验证行为。默认情况下,所有模块都会验证服务器证书,但是当使用 HTTPS 代理时,或者针对 Azure Stack 时,可能需要通过传递  选项 
 | |
| Azure 客户端 ID。当使用服务主体或托管标识 (msi) 进行身份验证时使用。 也可以通过  | |
| 对于美国公共云以外的云环境,环境名称(由 Azure Python SDK 定义,例如, 默认值:  | |
| Kubernetes 集群的名称。 | |
| 用于托管 Docker 容器的代理(虚拟机)的数量。 | |
| 确定在尝试进行身份验证时是否执行实例发现。将其设置为 true 将完全禁用实例发现和授权验证。此功能旨在用于无法访问元数据端点的情况,例如私有云或 Azure Stack。实例发现的过程包括从 https://login.microsoft.com/ 检索授权元数据,以验证授权。通过将此项设置为 **True**,将禁用对授权的验证。因此,确保配置的授权主机有效且可信至关重要。 通过凭据文件配置文件或  选项 
 | |
| 是否启用自动缩放。 选项 
 | |
| 这仅在某些 VM 大小和某些 Azure 区域中受支持。 选项 
 | |
| 是否启用 FIPS 节点池。 选项 
 | |
| 某些情况下,可能需要节点池中的节点接收其自己的专用公共 IP 地址。 一个常见的情况是游戏工作负载,其中控制台需要直接连接到云虚拟机以最大限度地减少跃点。 选项 
 | |
| 是否启用 UltraSSD。 选项 
 | |
| GPUInstanceProfile 用于为受支持的 GPU VM SKU 指定 GPU MIG 实例配置文件。 选项 
 | |
| 代理池节点上的 Kubelet 配置。 | |
| 允许的不安全 sysctl 或不安全 sysctl 模式的列表。 | |
| 容器可以存在的最大容器日志文件数。该数字必须 ≥ 2。 | |
| 容器日志文件在轮换之前的最大大小。 | |
| 默认值为  选项 
 | |
| 默认值为  有效值是由可选的小数部分和单位后缀组成的十进制数字序列。 默认值:  | |
| Kubernetes CPU 管理策略。 默认值为  选项 
 | |
| 如果设置为 true,则如果节点上启用了交换,Kubelet 将无法启动。 选项 
 | |
| 要禁用映像垃圾回收,请设置为  默认值为  默认值:  | |
| 此值不能设置高于 imageGcHighThreshold。 默认值为  默认值:  | |
| 每个 Pod 的最大进程数。 | |
| Kubernetes 拓扑管理器策略。 默认值为  选项 
 | |
| 确定 emptyDir 卷、容器运行时数据根和 Kubelet 临时存储的放置位置。 选项 
 | |
| Linux 代理节点的操作系统配置。 | |
| 将在每个节点上创建的交换文件的大小(以 MB 为单位)。 | |
| Linux 代理节点的 Sysctl 设置。 | |
| Sysctl 设置 fs.aio-max-nr。 | |
| Sysctl 设置 fs.file-max。 | |
| Sysctl 设置 fs.inotify.max_user_watches。 | |
| Sysctl 设置 fs.nr_open。 | |
| Sysctl 设置 kernel.threads-max。 | |
| Sysctl 设置 net.core.netdev_max_backlog。 | |
| Sysctl 设置 net.core.optmem_max。 | |
| Sysctl 设置 net.core.rmem_default。 | |
| Sysctl 设置 net.core.rmem_max。 | |
| Sysctl 设置 net.core.somaxconn。 | |
| Sysctl 设置 net.core.wmem_default。 | |
| Sysctl 设置 net.core.wmem_max。 | |
| Sysctl 设置 net.ipv4.ip_local_port_range。 | |
| Sysctl 设置 net.ipv4.neigh.default.gc_thresh1。 | |
| Sysctl 设置 net.ipv4.neigh.default.gc_thresh2。 | |
| Sysctl 设置 net.ipv4.neigh.default.gc_thresh3。 | |
| Sysctl 设置 net.ipv4.tcp_fin_timeout。 | |
| Sysctl 设置 net.ipv4.tcp_keepalive_probes。 | |
| Sysctl 设置 net.ipv4.tcp_keepalive_time。 | |
| Sysctl 设置 net.ipv4.tcp_max_syn_backlog。 | |
| Sysctl 设置 net.ipv4.tcp_max_tw_buckets。 | |
| Sysctl 设置 net.ipv4.tcp_tw_reuse。 选项 
 | |
| Sysctl 设置 net.ipv4.tcp_keepalive_intvl。 | |
| Sysctl 设置 net.netfilter.nf_conntrack_buckets。 | |
| sysctl 设置 net.netfilter.nf_conntrack_max。 | |
| Sysctl 设置 vm.max_map_count。 | |
| Sysctl 设置 vm.swappiness。 | |
| Sysctl 设置 vm.vfs_cache_pressure。 | |
| 节点代理池透明大页碎片整理。 默认值为  选项 
 | |
| 节点代理池透明大页。 默认值为  选项 
 | |
| 父参数。 | |
| 父参数。 | |
| 自动缩放的最大节点数。 | |
| 可以在节点上运行的最大 Pod 数。 | |
| 自动缩放的最小节点数。 | |
| AgentPoolMode 表示代理池的模式。 选项 
 | |
| 节点代理池的名称。 | |
| 要跨代理池中的所有节点持久化的代理池节点标签。 | |
| Azure 公共 IP 前缀的 ID。 | |
| 在节点池创建和缩放期间添加到新节点的污点。 例如,值:NoSchedule'。 | |
| 创建托管群集时指定的 Orchestrator 版本。 | |
| OS 磁盘大小(以 GB 为单位),用于指定此主/代理池中每台计算机的磁盘大小。 | |
| 指定 OS SKU。 如果 OSType 为 Windows,则不能指定此值。 os_sku=CBLMariner 已弃用。Microsoft 建议新部署选择“AzureLinux”代替。 选项 
 | |
| OsType 用于指定操作系统类型。 选项 
 | |
| Active Directory 用户密码。当使用 Active Directory 用户而不是服务主体进行身份验证时使用。 | |
| 首次创建代理池时,它最初处于  可以通过将此字段设置为  已停止的代理池会停止其所有虚拟机,并且不会产生计费费用。 只有当代理池处于运行状态且预配状态为 Succeeded 时,才能停止代理池。 | |
| 指示群集是  选项 
 | |
| 在 ~/.azure/credentials 文件中找到的安全配置文件。 | |
| 接近放置组的 ID。 | |
| 资源组的名称。 | |
| 这也会影响群集自动缩放器的行为。 如果未指定,则默认为  选项 
 | |
| 除非 scale_set_priority=Spot,否则不能指定此项。 如果未指定,则默认值为  选项 
 | |
| 虚拟机规模集优先级。 如果未指定,则默认为  选项 
 | |
| Azure 客户端密钥。当使用服务主体进行身份验证时使用。 | |
| 代理池的安全设置。 | |
| 是否禁用或启用安全启动。 选项 
 | |
| 是否禁用或启用 vTPM。 选项 
 | |
| 可能的值为大于零的任何十进制值或 -1。 表示愿意支付任何按需价格。 | |
| 自动化 Runbook 的状态。使用  选项 
 | |
| 您的 Azure 订阅 ID。 | |
| 要作为元数据分配给对象的字符串:字符串对的字典。 对象上的元数据标记将使用任何提供的值进行更新。 要删除标记,请将 append_tags 选项设置为 false。 目前,Azure DNS 区域和流量管理器服务也不允许在标记中使用空格。 Azure 前门不支持使用 Azure 自动化和 Azure CDN 仅支持资源上的 15 个标记。 | |
| Azure 租户 ID。在使用服务主体进行身份验证时使用。 | |
| x509_certificate_path 中指定的私钥的指纹。 在使用服务主体进行身份验证时使用。 如果定义了 x509_certificate_path,则为必需。 | |
| AgentPoolType 表示代理池的类型。 选项 
 | |
| 用于升级代理池的设置。 | |
| 这可以设置为整数,例如  如果指定了百分比,则它是升级时代理池总大小的百分比。 对于百分比,小数节点会向上舍入。 如果未指定,则默认值为  | |
| 代理 VM 的大小 | |
| VNet SubnetID 指定 VNet 的子网标识符。 | |
| 确定节点可以运行的工作负载类型。 选项 
 | |
| 用于以 PEM 格式创建服务主体的 X509 证书的路径。 证书必须附加到私钥。 在使用服务主体进行身份验证时使用。 | 
注释
注意
- 要使用 Azure 进行身份验证,您可以传递参数,设置环境变量,使用存储在 ~/.azure/credentials 中的配置文件,或者在使用 - az login运行任务或 playbook 之前登录。
- 也可以使用服务主体或 Active Directory 用户进行身份验证。 
- 要通过服务主体进行身份验证,请传递 subscription_id、client_id、secret 和 tenant,或设置环境变量 AZURE_SUBSCRIPTION_ID、AZURE_CLIENT_ID、AZURE_SECRET 和 AZURE_TENANT。 
- 要通过 Active Directory 用户进行身份验证,请传递 ad_user 和 password,或者在环境中设置 AZURE_AD_USER 和 AZURE_PASSWORD。 
- 或者,凭据可以存储在 ~/.azure/credentials 中。这是一个 ini 文件,其中包含 [default] 部分和以下键:subscription_id、client_id、secret 和 tenant 或 subscription_id、ad_user 和 password。也可以添加其他配置文件。通过传递 profile 或在环境中设置 AZURE_PROFILE 来指定配置文件。 
另请参阅
另请参阅
- 使用 Azure CLI 登录
- 如何使用 - az login命令进行身份验证。
示例
- name: Add new node agent pool
  azure_rm_aksagentpool:
    resource_group: "{{ resource_group }}"
    cluster_name: aksfred01
    name: default-new
    count: 2
    vm_size: Standard_B2s
    type_properties_type: VirtualMachineScaleSets
    mode: System
    node_labels: {"release":"stable"}
    max_pods: 42
    orchestrator_version: 1.23.5
    availability_zones:
      - 1
      - 2
- name: Create a node agent pool with custom config
  azure_rm_aksagentpool:
    resource_group: "{{ resource_group }}"
    cluster_name: "min{{ rpfx }}"
    name: default-new2
    count: 1
    vm_size: Standard_B2s
    type_properties_type: VirtualMachineScaleSets
    mode: System
    node_labels: {"release":"stable"}
    max_pods: 42
    enable_auto_scaling: true
    min_count: 1
    max_count: 10
    orchestrator_version: 1.23.5
    availability_zones:
      - 1
    kubelet_config:
      cpu_manager_policy: static
      cpu_cfs_quota: true
      fail_swap_on: false
    linux_os_config:
      transparent_huge_page_enabled: madvise
      swap_file_size_mb: 1500
      transparent_huge_page_defrag: defer+madvise
- name: Delete node agent pool
  azure_rm_aksagentpool:
    resource_group: "{{ resource_group }}"
    cluster_name: aksfred01
    name: default-new
返回值
常见返回值记录在此处,以下是此模块特有的字段
| 键 | 描述 | 
|---|---|
| 托管 Kubernetes 集群中节点池的详细信息。 返回: 总是 | |
| 节点的可用区。必须使用 VirtualMachineScaleSets AgentPoolType。 返回: 总是 示例:  | |
| 集群名称。 返回: 总是 示例:  | |
| 用于托管 Docker 容器的代理(虚拟机)的数量。 返回: 总是 示例:  | |
| 是否启用自动缩放。 返回: 总是 | |
| 这仅在某些 VM 大小和某些 Azure 区域中受支持。 返回: 总是 示例:  | |
| 为节点启用公共 IP。 返回: 总是 示例:  | |
| 是否启用 FIPS 节点池。 返回: 总是 示例:  | |
| GPUInstanceProfile 用于为受支持的 GPU VM SKU 指定 GPU MIG 实例配置文件。 返回: 总是 示例:  | |
| 资源 ID。 返回: 总是 示例:  | |
| 代理池节点上的 Kubelet 配置。 返回: 总是 示例:  | |
| 确定 emptyDir 卷、容器运行时数据根和 Kubelet 临时存储的放置位置。 返回: 总是 示例:  | |
| Linux 代理节点的操作系统配置。 返回: 总是 示例:  | |
| 自动缩放的最大节点数。 返回: 总是 示例:  | |
| 可以在节点上运行的最大 Pod 数。 返回: 总是 示例:  | |
| 自动缩放的最小节点数。 返回: 总是 示例:  | |
| AgentPoolMode 表示代理池的模式。 返回: 总是 示例:  | |
| 资源名称。 返回: 总是 示例:  | |
| 节点映像的版本。 返回: 总是 示例:  | |
| 要跨代理池中的所有节点持久化的代理池节点标签。 返回: 总是 示例:  | |
| Azure 公共 IP 前缀的 ID。 返回: 总是 | |
| 在节点池创建和缩放期间添加到新节点的污点。 返回: 总是 示例:  | |
| 创建托管群集时指定的 Orchestrator 版本。 返回: 总是 示例:  | |
| OS 磁盘大小(以 GB 为单位),用于指定此主/代理池中每台计算机的磁盘大小。 返回: 总是 示例:  | |
| 节点代理池的 SKU。 返回: 总是 示例:  | |
| OsType 用于指定操作系统类型。 返回: 总是 示例:  | |
| 代理池的电源状态。 返回: 总是 示例:  | |
| 当前部署或预配状态,仅出现在响应中。 返回: 总是 示例:  | |
| 接近放置组的 ID。 返回: 总是 示例:  | |
| 资源组名称。 返回: 总是 示例:  | |
| 这也会影响群集自动缩放器的行为。 返回: 总是 示例:  | |
| ScaleSetEvictionPolicy,用于指定 Spot 虚拟机规模集的驱逐策略。 返回: 总是 | |
| caleSetPriority,用于指定虚拟机规模集优先级。 返回: 总是 | |
| 代理池的安全设置。 返回: 成功 | |
| 安全启动已禁用或启用。 返回: 总是 示例:  | |
| vTPM 已启用或禁用。 返回: 总是 示例:  | |
| SpotMaxPrice,用于指定您愿意支付的最高美元价格。 返回: 总是 | |
| 节点代理池的标记。 返回: 总是 示例:  | |
| 资源类型。 返回: 总是 示例:  | |
| AgentPoolType 表示代理池的类型。 返回: 总是 示例:  | |
| 用于升级代理池的设置。 返回: 总是 | |
| 代理 VM 的大小。 返回: 总是 示例:  | |
| VNet SubnetID 指定 VNet 的子网标识符。 返回: 总是 | |
| 确定节点可以运行的工作负载类型。 返回: 总是 示例:  | 
