我创建了运行不同az aks create命令的shell脚本。
我有很多变量,但是现在我只修改了while循环的集群名称。
shell脚本的结构是:
cnt=1
while [ $cnt -lt 3 ]
do
aksName=AKS0$cnt
# more AKS VARs
# and then CLI command:
az aks create --name $aksName #--<MORE AKS CREATE SWITCHES>
cnt=`expr $cnt + 1`
done它确实创建了2个AKS集群,但1由1串联,有没有办法创建多个集群并行,可能是使用ansible,如果是这样,请让我知道如何?
谢谢
发布于 2021-10-09 12:12:24
我建议使用像Pulumi或Terraform这样的IaC工具来创建AKS集群,而不是Ansible。这是创建2个AKS集群的Terraform代码。如果你想要更多,只需更新计数值,Terraform也会并行创建这些集群:
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "=2.80.0"
}
}
required_version = "=1.0.5"
}
provider "azurerm" {
features {}
}
data "azurerm_client_config" "current" {
}
locals {
rg_name = "demo"
location = "westeurope"
name = "demo"
common_tags = {
env = "demo"
managedBy = data.azurerm_client_config.current.client_id
}
}
resource "azurerm_resource_group" "demo" {
name = local.rg_name
location = local.location
}
resource "azurerm_kubernetes_cluster" "aks" {
count = 2
name = "${local.name}-${count.index}"
location = azurerm_resource_group.demo.location
resource_group_name = azurerm_resource_group.demo.name
dns_prefix = "${local.name}-${count.index}"
tags = local.common_tags
identity {
type = "SystemAssigned"
}
default_node_pool {
name = "default"
node_count = 3
vm_size = "Standard_D2_v2"
}
}发布于 2021-10-09 16:17:47
我同意@philip-welz。可以解决依赖关系并实现基础设施的并行配置的IaaC工具将是最佳选择。
以防万一,你想坚持使用Azure CLI:对于使用Azure CLI的异步操作,许多命令都提供了一个--no-wait参数,它允许在从Azure资源管理器返回响应之前运行其他命令。[Reference]
az aks create命令允许使用--no-wait选项。因此,您可以修改shell脚本,如下所示:
cnt=1
while [ $cnt -lt 3 ]
do
aksName=AKS0$cnt
# more AKS VARs
# and then CLI command:
az aks create --no-wait --name $aksName #--<MORE AKS CREATE SWITCHES>
echo Creation of cluster $aksName initiated
cnt=`expr $cnt + 1`
done这将启动特定序列中的AKS集群的创建,但每次迭代都不会在移动到下一次迭代之前等待该迭代中的集群被创建。从而实现了仅使用Azure CLI和shell脚本创建多个AKS集群的伪并行工作流。
https://stackoverflow.com/questions/69502828
复制相似问题