我想用资源组和特定Orchestrator Kubernetes集群的集群创建azure容器。
我知道使用CLI是可能的,但是我想使用Azure Rest API来为此处给出的链接提供容器服务
docs.microsoft.com/en-us/rest/api/container-service/containerservices/createorupdate
在AAD注册了我的应用并提供了所需的权限。
获取访问令牌并根据链接向api发出请求
PUT management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/containerServices/{containerServiceName}?api-version=2017-01-31 但我收到错误
{
"error": {
"code": "InvalidResource"
"message": "The resource definition is invalid."
}
}
我知道当请求正文中没有任何内容时,我们会收到此错误。
所以我真正的问题是,如果我想使用API请求创建包含资源组和集群的容器服务。
请求正文
{
"id": "myCluster",
"name": "myCluster",
"type": "Microsoft.ContainerService/containerServices",
"location": "southindia",
"tags": {
"tag": "test"
},
"properties": {
"orchestratorProfile": {
"orchestratorType": "Kubernetes"
},
"servicePrincipalProfile": {
"clientId": "<clientid>,
"secret": "<secret>"
},
"masterProfile": {
"count": 1,
"dnsPrefix": "testabc"
},
"agentPoolProfiles": {
"name": "agentPool1234",
"count": 2,
"vmSize": "Standard_A1",
"dnsPrefix": "testabcagents"
},
"linuxProfile": {
"adminUsername": "kubeadmin",
"ssh": {
"publicKeys": [
{
"keyData": "sshkey"
}
]
}
}
}
}
回应
{
"code": "BadRequest",
"message": "An error has occurred in subscription <subscriptionid>, resourceGroup: tobeDeletedResourceGroup request: OrchestratorType has unknown orchestrator: ."
}
请帮我解决这个问题
答案 0 :(得分:1)
Azure REST API文档中缺少两件事。 1)它需要带orchestratorType的orchestratorRelease版本,如下所示。 “orchestratorProfile”:{ “orchestratorType”:“Kubernetes”, “orchestratorRelease”:“1.7” } 强> 2)下一个错误我在Properties.MasterProfile.VMSize中缺少vmSize。 所以我在json中添加了以下更新
“masterProfile”:{ “数”:1, “dnsPrefix”:“testabc”, “vmSize”:“Standard_D2_v2” } 强>
令人惊讶和恼人的是,文档缺少这两个重要的json参数。
答案 1 :(得分:0)
agentPoolProfiles应该是json对象的数组。我从azure-cli's mock unit tests中提取了此示例,以帮助您提供参考框架。
https://gist.github.com/bacongobbler/470b8d139536144edf91174916ec4036