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 的子网标识符。 返回: 总是 |
|
确定节点可以运行的工作负载类型。 返回: 总是 示例: |