azure.azcollection.azure_rm_aksagentpool 模块 – 管理 Kubernetes 集群中的节点池
注意
此模块是 azure.azcollection 集合(版本 3.1.0)的一部分。
如果您正在使用 ansible
包,则可能已经安装了此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install azure.azcollection
。您需要进一步的要求才能使用此模块,有关详细信息,请参阅要求。
要在剧本中使用它,请指定: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。 当为规范时,在 tags 参数中未找到的任何 tags 将从对象的元数据中删除。 选项
|
|
控制用于身份验证的凭据的来源。 也可以通过 当设置为 当设置为 当设置为 当设置为 当设置为
选项
|
|
节点的可用性区域。必须使用 VirtualMachineScaleSets AgentPoolType。 选项
|
|
控制 Azure 端点的证书验证行为。默认情况下,所有模块都将验证服务器证书,但是当使用 HTTPS 代理时,或者针对 Azure Stack,可能需要通过传递 选项
|
|
Azure 客户端 ID。当使用服务主体或托管标识 (msi) 进行身份验证时使用。 也可以通过 |
|
对于美国公共云之外的云环境,需要指定环境名称(由 Azure Python SDK 定义,例如 默认值: |
|
Kubernetes 集群的名称。 |
|
用于托管 Docker 容器的代理(虚拟机)数量。 |
|
确定在尝试身份验证时是否执行实例发现。将其设置为 true 将完全禁用实例发现和授权验证。此功能旨在用于无法访问元数据端点的情况,例如私有云或 Azure Stack。实例发现的过程包括从 https://login.microsoft.com/ 检索授权元数据以验证授权。通过将此设置为 **True**,将禁用授权验证。因此,至关重要的是确保配置的授权主机有效且可信。 通过凭据文件配置文件或 选项
|
|
是否启用自动缩放器。 选项
|
|
此功能仅在某些虚拟机大小和某些 Azure 区域中受支持。 选项
|
|
是否启用 FIPS 节点池。 选项
|
|
某些场景可能需要节点池中的节点接收其自己的专用公共 IP 地址。 一个常见的场景是游戏工作负载,其中控制台需要与云虚拟机建立直接连接,以最大程度地减少跃点。 选项
|
|
是否启用 UltraSSD。 选项
|
|
用于为受支持的 GPU VM SKU 指定 GPU MIG 实例配置文件的 GPUInstanceProfile。 选项
|
|
代理池节点上的 Kubelet 配置。 |
|
允许的不安全 sysctl 或不安全 sysctl 模式列表。 |
|
一个容器可以存在的最大容器日志文件数。该数字必须 ≥ 2。 |
|
容器日志文件轮换前的最大大小。 |
|
默认值为 选项
|
|
默认值为 有效值是带有可选分数和小数位和单位后缀的十进制数字序列。 默认值: |
|
Kubernetes CPU 管理策略。 默认值为 选项
|
|
如果设置为 true,则如果节点上启用了交换,则 Kubelet 将无法启动。 选项
|
|
要禁用图像垃圾回收,请设置为 默认值为 默认值: |
|
此值不能高于 imageGcHighThreshold。 默认值为 默认值: |
|
每个 pod 的最大进程数。 |
|
Kubernetes 拓扑管理器策略。 默认值为 选项
|
|
确定 emptyDir 卷、容器运行时数据根目录和 Kubelet 临时存储的放置位置。 选项
|
|
Linux 代理节点的 OS 配置。 |
|
每个节点上将创建的交换文件的大小(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'。 |
|
创建托管群集时指定的业务流程协调程序版本。 |
|
用于指定此主/代理池中每台计算机的磁盘大小的操作系统磁盘大小(GB)。 |
|
指定操作系统 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 Front Door 不支持使用 Azure Automation 和 Azure CDN 仅支持资源上的 15 个标签。 |
|
Azure 租户 ID。 使用服务主体进行身份验证时使用。 |
|
x509_certificate_path 中指定的私钥的指纹。 使用服务主体进行身份验证时使用。 如果定义了 *x509_certificate_path*,则为必需项。 |
|
AgentPoolType 表示代理池的类型。 选项
|
|
用于升级代理池的设置。 |
|
这可以设置为整数,例如 如果指定了百分比,则它是升级时代理池总大小的百分比。 对于百分比,小数节点将向上舍入。 如果未指定,则默认为 |
|
代理虚拟机的大小 |
|
VNet SubnetID 指定 VNet 的子网标识符。 |
|
确定节点可以运行的工作负载类型。 选项
|
|
用于以 PEM 格式创建服务主体的 X509 证书的路径。 证书必须附加到私钥。 使用服务主体进行身份验证时使用。 |
Notes(注释)
注意
对于 Azure 的身份验证,您可以传递参数,设置环境变量,使用存储在 ~/.azure/credentials 中的配置文件,或者在使用
az login
运行任务或剧本之前登录。也可以使用服务主体或 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 中。 这是一个包含 [default] 部分和以下键的 ini 文件:subscription_id、client_id、secret 和 tenant 或 subscription_id、ad_user 和 password。 也可以添加其他配置文件。 通过传递 profile 或在环境中设置 AZURE_PROFILE 来指定配置文件。
See Also(另请参阅)
另请参阅
- 使用 Azure CLI 登录
如何使用
az login
命令进行身份验证。
Examples(示例)
- 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
Return Values(返回值)
通用返回值记录在此处,以下是此模块独有的字段
Key(键) |
描述 |
---|---|
托管 Kubernetes 集群中节点池的详细信息。 Returned: always(总是返回) |
|
节点的可用性区域。必须使用 VirtualMachineScaleSets AgentPoolType。 Returned: always(总是返回) Sample: |
|
群集名称。 Returned: always(总是返回) Sample: |
|
用于托管 Docker 容器的代理(虚拟机)数量。 Returned: always(总是返回) Sample: |
|
是否启用自动缩放器。 Returned: always(总是返回) |
|
此功能仅在某些虚拟机大小和某些 Azure 区域中受支持。 Returned: always(总是返回) Sample: |
|
为节点启用公共 IP。 Returned: always(总是返回) Sample: |
|
是否启用 FIPS 节点池。 Returned: always(总是返回) Sample: |
|
用于为受支持的 GPU VM SKU 指定 GPU MIG 实例配置文件的 GPUInstanceProfile。 Returned: always(总是返回) Sample: |
|
资源 ID。 Returned: always(总是返回) Sample: |
|
代理池节点上的 Kubelet 配置。 Returned: always(总是返回) Sample: |
|
确定 emptyDir 卷、容器运行时数据根目录和 Kubelet 临时存储的放置位置。 Returned: always(总是返回) Sample: |
|
Linux 代理节点的 OS 配置。 Returned: always(总是返回) Sample: |
|
自动缩放的最大节点数。 Returned: always(总是返回) Sample: |
|
可以在节点上运行的最大 Pod 数。 Returned: always(总是返回) Sample: |
|
自动缩放的最小节点数。 Returned: always(总是返回) Sample: |
|
AgentPoolMode 表示代理池的模式。 Returned: always(总是返回) Sample: |
|
资源名称。 Returned: always(总是返回) Sample: |
|
节点映像的版本。 Returned: always(总是返回) Sample: |
|
代理池节点标签,在代理池中的所有节点之间保持不变。 Returned: always(总是返回) Sample: |
|
Azure 公共 IP 前缀的 ID。 Returned: always(总是返回) |
|
在节点池创建和缩放期间添加到新节点的污点。 Returned: always(总是返回) Sample: |
|
创建托管群集时指定的业务流程协调程序版本。 Returned: always(总是返回) Sample: |
|
用于指定此主/代理池中每台计算机的磁盘大小的操作系统磁盘大小(GB)。 Returned: always(总是返回) Sample: |
|
节点代理池的 SKU。 Returned: always(总是返回) Sample: |
|
用于指定操作系统类型的 OsType。 Returned: always(总是返回) Sample: |
|
代理池的电源状态。 Returned: always(总是返回) Sample: |
|
当前部署或预配状态,仅显示在响应中。 Returned: always(总是返回) Sample: |
|
邻近放置组的 ID。 Returned: always(总是返回) Sample: |
|
资源组名称。 Returned: always(总是返回) Sample: |
|
这也会影响群集自动缩放器的行为。 Returned: always(总是返回) Sample: |
|
用于指定现成虚拟机规模集驱逐策略的 ScaleSetEvictionPolicy。 Returned: always(总是返回) |
|
用于指定虚拟机规模集优先级的 caleSetPriority。 Returned: always(总是返回) |
|
代理池的安全设置。 Returned: success(成功返回) |
|
是否禁用或启用安全启动。 Returned: always(总是返回) Sample: |
|
是否启用或禁用 vTPM。 Returned: always(总是返回) Sample: |
|
用于指定您愿意支付的最高美元价格的 SpotMaxPrice。 Returned: always(总是返回) |
|
节点代理池的标签。 Returned: always(总是返回) Sample: |
|
资源类型。 Returned: always(总是返回) Sample: |
|
AgentPoolType 表示代理池的类型。 Returned: always(总是返回) Sample: |
|
用于升级代理池的设置。 Returned: always(总是返回) |
|
代理虚拟机的大小。 Returned: always(总是返回) Sample: |
|
VNet SubnetID 指定 VNet 的子网标识符。 Returned: always(总是返回) |
|
确定节点可以运行的工作负载类型。 Returned: always(总是返回) 示例: |