azure.azcollection.azure_rm_aks 模块 – 管理托管的 Azure 容器服务 (AKS) 实例
注意
此模块是 azure.azcollection 集合(版本 3.1.0)的一部分。
如果您使用的是 ansible
包,则可能已经安装了此集合。 它不包含在 ansible-core
中。 要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install azure.azcollection
。 您需要更多要求才能使用此模块,请参阅 要求 以了解详细信息。
要在 playbook 中使用它,请指定:azure.azcollection.azure_rm_aks
。
azure.azcollection 0.1.2 中的新增功能
概要
创建、更新和删除托管的 Azure 容器服务 (AKS) 实例。
您只能指定
identity
或service_principal
,不能同时指定两者。 如果您没有指定任何一个,它将默认为 identity->type->SystemAssigned。
要求
执行此模块的主机上需要以下要求。
python >= 2.7
执行此模块的主机必须通过 galaxy 安装 azure.azcollection 集合
必须通过 pip 在执行来自 azure.azcollection 的模块的主机上安装集合的 requirements.txt 中列出的所有 python 包
完整的安装说明可以在 https://galaxy.ansible.com/azure/azcollection 中找到
参数
参数 |
注释 |
---|---|
Azure Active Directory 配置的配置文件。 |
|
将具有群集管理员角色的 AAD 组对象 ID。 |
|
客户端 AAD 应用程序 ID。 |
|
是否为 Kubernetes 授权启用 Azure RBAC。 选择
|
|
是否启用托管 AAD。 选择
|
|
服务器 AAD 应用程序 ID。 |
|
服务器 AAD 应用程序密钥。 |
|
用于身份验证的 AAD 租户 ID。 如果未指定,将使用部署订阅的租户。 |
|
Active Directory 用户名。 使用 Active Directory 用户而不是服务主体进行身份验证时使用。 |
|
托管群集插件的配置文件。 键可以是 值必须是一个包含布尔变量 |
|
HTTP 应用程序路由解决方案使您可以轻松访问部署到群集中的应用程序。 |
|
是否启用该解决方案。 选择
|
|
它通过从控制器、节点和容器收集 Kubernetes 中通过指标 API 提供的内存和处理器指标,为您提供性能可见性。 |
|
是否启用该解决方案。 选择
|
|
在哪里存储容器指标。 |
|
使用虚拟节点,您可以快速配置 Pod,并且只需按秒支付其执行时间。 您无需等待 Kubernetes 群集自动缩放器部署 VM 计算节点来运行其他 Pod。 |
|
是否启用该解决方案。 选择
|
|
与群集关联的子网。 |
|
Azure AD 授权 URL。当使用用户名/密码进行身份验证,并且具有自己的 ADFS 授权时使用。 |
|
代理池配置文件子选项。 |
|
节点的可用性区域。必须使用 VirtualMachineScaleSets AgentPoolType。 选择
|
|
用于托管 Docker 容器的代理(虚拟机)数量。 允许的值必须在 |
|
创建托管群集时指定的 DNS 前缀。 |
|
启用自动缩放。 选择
|
|
自动缩放的最大节点数。 如果 enable_auto_scaling=True,则为必需。 |
|
节点上可调度的最大 Pod 数。 |
|
自动缩放的最小节点数。 如果 enable_auto_scaling=True,则为必需。 |
|
AgentPoolMode 表示代理池的模式。 可能的值包括 System AgentPoolMode 要求最小虚拟机 SKU 至少为 2 个 vCPU 和 4GB 内存。 选择
|
|
在订阅和资源组的上下文中,代理池配置文件的唯一名称。 |
|
在代理池中所有节点上持久化的代理池节点标签。 |
|
在节点池上运行的 Kubernetes 版本。 |
|
操作系统磁盘的大小。 |
|
操作系统 SKU。 选择
|
|
操作系统类型。 选择
|
|
代理池的端口列表。 |
|
代理池的安全设置。 |
|
是否禁用或启用安全启动。 选择
|
|
是否禁用或启用 vTPM。 选择
|
|
存储配置文件指定使用的存储类型。 选择
|
|
要在代理池虚拟机规模集上持久化的标签。 |
|
AgentPoolType 表示代理池的类型。 可能的值包括 选择
|
|
每个代理池虚拟机的虚拟机大小(例如, |
|
指定 VNet 的子网标识符。 |
|
选择与 Azure 服务通信时使用的 API 配置文件。默认值 默认值: |
|
API 访问配置文件的配置。 |
|
授权访问 Kubernetes API 服务器的 IP 范围。 使用私有群集时无法启用 |
|
是否将群集创建为私有群集。 对于现有群集,无法更改此项。 选择
|
|
用于控制 tags 字段是规范的还是仅附加到现有标签。 当为规范时,在 tags 参数中未找到的任何标签将从对象的元数据中删除。 选择
|
|
控制用于身份验证的凭据来源。 也可以通过 设置为 设置为 设置为 设置为 设置为
选择
|
|
托管群集的自动升级配置文件。 |
|
节点上的操作系统更新的方式。 选择
|
|
设置 AKS 群集自动升级通道。 选择
|
|
控制 Azure 端点的证书验证行为。默认情况下,所有模块都会验证服务器证书,但是当使用 HTTPS 代理或针对 Azure Stack 时,可能需要通过传递 选择
|
|
Azure 客户端 ID。使用服务主体或托管标识 (msi) 进行身份验证时使用。 也可以通过 |
|
对于美国公有云以外的云环境,环境名称(由 Azure Python SDK 定义,例如, 默认值: |
|
确定在尝试身份验证时是否执行实例发现。将此设置为 true 将完全禁用实例发现和授权验证。此功能旨在用于无法访问元数据端点的情况,例如在私有云或 Azure Stack 中。实例发现的过程包括从 https://login.microsoft.com/ 检索授权元数据以验证授权。通过将此设置为 **True**,将禁用授权验证。因此,确保配置的授权主机有效且值得信赖至关重要。 通过凭据文件配置文件或 选择
|
|
如果设置为 true,则将禁用此群集的静态凭据的获取。 此功能只能在启用 AAD 的托管群集上使用。 选择
|
|
创建托管群集时指定的 DNS 前缀。 |
|
启用 RBAC。 现有未启用 RBAC 的 AKS 群集目前无法更新以供 RBAC 使用。 选择
|
|
服务器的身份。 |
|
托管标识的类型 选择
|
|
用户分配的托管标识 |
|
创建托管群集时指定的 Kubernetes 版本。 |
|
Linux 配置文件子选项。 可选,如果您需要对群集节点进行 SSH 访问,请提供此选项。 |
|
群集的管理员用户名。 |
|
用于访问群集的公共 SSH 密钥。 |
|
有效的 Azure 位置。默认为资源组的位置。 |
|
父参数。 |
|
父参数。 |
|
托管 Azure 容器服务 (AKS) 实例的名称。 |
|
网络配置文件的配置。 |
|
分配给 Kubernetes DNS 服务的 IP 地址。 它必须在 serviceCidr 中指定的 Kubernetes 服务地址范围内。 |
|
托管群集的负载均衡器 SKU。 选择
|
|
用于构建 Kubernetes 网络的网络插件。 此属性不能更改。 使用 AKS 功能(例如虚拟节点或网络策略)不支持
选择
|
|
用于构建 Kubernetes 网络的网络插件模式。 选择
|
|
用于构建 Kubernetes 网络的网络策略。 选择
|
|
如何为群集配置出站流量。 选择
|
|
当使用 network_plugin=kubenet 时,从中分配 Pod IP 的 CIDR 表示法 IP 范围。 它应该是您网络环境中其他地方未使用的较大地址空间。 此地址范围必须足够大,以容纳您预期扩展的节点数量。 |
|
用于分配服务集群 IP 的 CIDR 表示法的 IP 范围。 它不能与任何子网 IP 范围重叠。 它应该是您的服务 IP 地址范围的 *.10 地址。 |
|
包含代理池节点的资源组的名称。 无法更新。 |
|
Active Directory 用户密码。当使用 Active Directory 用户而不是服务主体进行身份验证时使用。 |
|
在托管 Kubernetes 集群中配置 Pod 标识。 |
|
是否将 Kubenet 网络插件与 AAD Pod 标识一起使用。 选择
|
|
是否启用 Pod 标识插件。 选择
|
|
要在集群中使用的 Pod 标识。 |
|
用于 AzureIdentityBinding 资源的绑定选择器。 |
|
用户分配的标识详细信息。 |
|
用户分配的标识的客户端 ID。 |
|
用户分配的标识的对象 ID。 |
|
用户分配的标识的资源 ID。 |
|
Pod 标识的名称。 |
|
Pod 标识的命名空间。 |
|
在 ~/.azure/credentials 文件中找到的安全配置文件。 |
|
托管 Azure 容器服务 (AKS) 存在或将要创建的资源组的名称。 |
|
Azure 客户端密钥。当使用服务主体进行身份验证时使用。 |
|
容器服务集群的安全配置文件。 |
|
Azure 密钥保管库。 有关安全配置文件,请参阅 https://kubernetes.ac.cn/docs/tasks/administer-cluster/kms-provider/ 设置。 |
|
是否启用 Azure 密钥保管库密钥管理服务。默认值为 选择
|
|
Azure 密钥保管库密钥的标识符。 |
|
密钥保管库的网络访问。 选择
|
|
密钥保管库的资源 ID。 当 *key_vault_network_acces=Private* 时,此字段是必需的,并且必须是有效的资源 ID。 当 *key_vault_network_acces=Public* 时,请将该字段留空。 |
|
安全配置文件的 Microsoft Defender 设置。 |
|
要与 Microsoft Defender 关联的 Log Analytics 工作区的资源 ID。 启用 Microsoft Defender 后,此字段是必需的,并且必须是有效的工作区资源 ID。 禁用 Microsoft Defender 后,请将此字段留空。 |
|
安全配置文件的 Microsoft Defender 云威胁检测设置。 |
|
是否启用 Defender 威胁检测。 选择
|
|
安全配置文件的 Image Cleaner 设置。 |
|
是否在 AKS 集群上启用 Image Cleaner。 选择
|
|
Image Cleaner 扫描间隔(以小时为单位)。 |
|
安全配置文件的 workload identity 设置。 工作负载标识使 Kubernetes 应用程序能够通过 Azure AD 安全地访问 Azure 云资源。 有关更多详细信息,请参阅 https://aka.ms/aks/wi。 |
|
是否启用工作负载标识。 选择
|
|
服务主体的子选项。 |
|
服务主体的 ID。 |
|
与服务主体关联的密码。 |
|
断言 AKS 的状态。使用 选择
|
|
您的 Azure 订阅 ID。 |
|
要作为元数据分配给对象的字符串:字符串对的字典。 对象上的元数据标记将使用任何提供的值进行更新。 要删除标记,请将 append_tags 选项设置为 false。 目前,Azure DNS 区域和流量管理器服务也不允许在标记中使用空格。 Azure 前门不支持使用 Azure 自动化和 Azure CDN 仅支持资源上的 15 个标记。 |
|
Azure 租户 ID。当使用服务主体进行身份验证时使用。 |
|
在 *x509_certificate_path* 中指定的私钥的指纹。 当使用服务主体进行身份验证时使用。 如果定义了 *x509_certificate_path*,则为必需。 |
|
Windows 配置文件的子选项。 |
|
集群的管理员密码。 |
|
群集的管理员用户名。 |
|
用于以 PEM 格式创建服务主体的 X509 证书的路径。 证书必须附加到私钥。 当使用服务主体进行身份验证时使用。 |
注释
注意
为了使用 Azure 进行身份验证,您可以传递参数、设置环境变量、使用存储在 ~/.azure/credentials 中的配置文件,或者在运行任务或 playbook 之前使用
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 中。这是一个 ini 文件,其中包含一个 [default] 部分和以下键:subscription_id、client_id、secret 和 tenant,或者 subscription_id、ad_user 和 password。也可以添加其他配置文件。通过传递 profile 或在环境中设置 AZURE_PROFILE 来指定配置文件。
另请参阅
另请参阅
- 使用 Azure CLI 登录
如何使用
az login
命令进行身份验证。
示例
- name: Create an AKS instance With A System Node Pool & A User Node Pool
azure_rm_aks:
name: myAKS
resource_group: myResourceGroup
location: eastus
dns_prefix: akstest
kubernetes_version: 1.14.6
linux_profile:
admin_username: azureuser
ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA...
service_principal:
client_id: "cf72ca99-f6b9-4004-b0e0-bee10c521948"
client_secret: "Password1234!"
agent_pool_profiles:
- name: default
count: 1
vm_size: Standard_B2s
enable_auto_scaling: true
type: VirtualMachineScaleSets
mode: System
max_count: 3
min_count: 1
enable_rbac: true
tags:
key1: value1
- name: user
count: 1
vm_size: Standard_D2_v2
enable_auto_scaling: true
type: VirtualMachineScaleSets
mode: User
max_count: 3
min_count: 1
enable_rbac: true
- name: Create a managed Azure Container Services (AKS) instance
azure_rm_aks:
name: myAKS
location: eastus
resource_group: myResourceGroup
dns_prefix: akstest
kubernetes_version: 1.14.6
linux_profile:
admin_username: azureuser
ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA...
service_principal:
client_id: "cf72ca99-f6b9-4004-b0e0-bee10c521948"
client_secret: "Password123!"
agent_pool_profiles:
- name: default
count: 5
mode: System
vm_size: Standard_B2s
tags:
Environment: Production
- name: Use minimal parameters and system-assigned identity
azure_rm_aks:
name: myMinimalCluster
location: eastus
resource_group: myExistingResourceGroup
dns_prefix: akstest
agent_pool_profiles:
- name: default
count: 1
vm_size: Standard_D2_v2
- name: Create AKS with userDefinedRouting "Link:https://docs.microsoft.com/en-us/azure/aks/limit-egress-traffic#add-a-dnat-rule-to-azure-firewall"
azure_rm_aks:
name: "minimal{{ rpfx }}"
location: eastus
resource_group: "{{ resource_group }}"
kubernetes_version: "{{ versions.azure_aks_versions[0] }}"
dns_prefix: "aks{{ rpfx }}"
service_principal:
client_id: "{{ client_id }}"
client_secret: "{{ client_secret }}"
network_profile:
network_plugin: azure
load_balancer_sku: standard
outbound_type: userDefinedRouting
service_cidr: "10.41.0.0/16"
dns_service_ip: "10.41.0.10"
api_server_access_profile:
authorized_ip_ranges:
- "20.106.246.252/32"
enable_private_cluster: false
agent_pool_profiles:
- name: default
count: 1
vm_size: Standard_B2s
mode: System
vnet_subnet_id: "{{ output.subnets[0].id }}"
type: VirtualMachineScaleSets
enable_auto_scaling: false
- name: Create an AKS instance wit pod_identity_profile settings
azure_rm_aks:
name: "aks{{ rpfx }}"
resource_group: "{{ resource_group }}"
location: eastus
dns_prefix: "aks{{ rpfx }}"
kubernetes_version: "{{ versions.azure_aks_versions[0] }}"
service_principal:
client_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
client_secret: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
linux_profile:
admin_username: azureuser
ssh_key: ssh-rsa AAAAB3Ip6***************
agent_pool_profiles:
- name: default
count: 1
vm_size: Standard_B2s
type: VirtualMachineScaleSets
mode: System
node_labels: {"release":"stable"}
max_pods: 42
availability_zones:
- 1
- 2
node_resource_group: "node{{ noderpfx }}"
enable_rbac: true
network_profile:
load_balancer_sku: standard
pod_identity_profile:
enabled: false
allow_network_plugin_kubenet: false
user_assigned_identities:
- name: fredtest
namespace: fredtest
binding_selector: test
identity:
client_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
object_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- name: Create a kubernet service with I(os_type=Windows)
azure_rm_aks:
name: myaks02
location: eastus
resource_group: "{{ resource_group }}"
kubernetes_version: "{{ versions }}"
dns_prefix: "aks_dns"
enable_rbac: true
windows_profile:
admin_username: azureuser
admin_password: Password@0329
aad_profile:
managed: true
agent_pool_profiles:
- name: default
count: 1
vm_size: Standard_D8ds_v5
mode: System
os_type: Linux
os_sku: Ubuntu
- name: def
count: 1
vm_size: Standard_D2as_v4
mode: User
os_type: Windows
os_sku: Windows2022
api_server_access_profile:
authorized_ip_ranges:
- "192.0.2.0"
- "198.51.100.0"
- "203.0.113.0"
enable_private_cluster: false
network_profile:
load_balancer_sku: standard
network_plugin: azure
outbound_type: loadBalancer
- name: Remove a managed Azure Container Services (AKS) instance
azure_rm_aks:
name: myAKS
resource_group: myResourceGroup
state: absent
返回值
常见返回值记录在此处,以下是此模块独有的字段
Key |
描述 |
---|---|
Azure 容器服务 (AKS) 的当前状态。 返回: 始终 示例: |