У нас есть кластер kubernetes, работающий в нашей среде, я использовал опцию шаблона экспорта и получил файл json.
Но шаблон непригоден для использования, так как он имеет жестко закодированные значения идентификаторов подписки и ресурса.
Кто-нибудь может подсказать, как сделать его пригодным для использования.
Я совершенно не знаком с шаблонами Azure ARM.
Мой шаблон:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"Версия содержания": "1.0.0.0",
"параметры": {
"имя_ресурса": {
"тип": "строка",
"метаданные": {
"description": "Имя ресурса управляемого кластера."
}
},
"место расположения": {
"тип": "строка",
"метаданные": {
"description": "Расположение ресурса AKS."
}
},
"dnsPrefix": {
"тип": "строка",
"метаданные": {
"description": "Необязательный префикс DNS для использования с полным доменным именем размещенного сервера API Kubernetes."
}
},
"osDiskSizeGB": {
"тип": "инт",
"значение по умолчанию": 0,
"метаданные": {
"description": "Размер диска (в гигабайтах) для предоставления каждому из узлов пула агентов. Это значение находится в диапазоне от 0 до 1023. Указание 0 применит размер диска по умолчанию для этого AgentVMSize."
},
"минимальное значение": 0,
"максимальное значение": 1023
},
"кубернетеверсион": {
"тип": "строка",
"значение по умолчанию": "1.7.7",
"метаданные": {
"description": "Версия Kubernetes."
}
},
"сетевой плагин": {
"тип": "строка",
"разрешенные значения": [
"лазурь",
"кубенет"
],
"метаданные": {
"description": "Сетевой плагин, используемый для построения сети Kubernetes."
}
},
"включитьRBAC": {
"тип": "логическое",
"значение по умолчанию": правда,
"метаданные": {
"description": "Логический флаг для включения и выключения RBAC."
}
},
"vmssNodePool": {
"тип": "логическое",
"значение по умолчанию": ложь,
"метаданные": {
"description": "Логический флаг для включения и выключения масштабируемых наборов виртуальных машин"
}
},
"виндовспрофиле": {
"тип": "логическое",
"значение по умолчанию": ложь,
"метаданные": {
"description": "Логический флаг для включения и выключения масштабируемых наборов виртуальных машин"
}
},
"enablePrivateCluster": {
"тип": "логическое",
"значение по умолчанию": ложь,
"метаданные": {
"description": "Включить частный сетевой доступ к кластеру Kubernetes."
}
},
"enableHttpApplicationRouting": {
"тип": "логическое",
"значение по умолчанию": правда,
"метаданные": {
"description": "Логический флаг для включения и выключения маршрутизации HTTP-приложений."
}
},
"enableAzurePolicy": {
"тип": "логическое",
"значение по умолчанию": ложь,
"метаданные": {
"description": "Логический флаг для включения и выключения надстройки политики Azure."
}
},
"enableOmsAgent": {
"тип": "логическое",
"значение по умолчанию": правда,
"метаданные": {
"description": "Логический флаг для включения и выключения аддона omsagent."
}
},
"Регион рабочей области": {
"тип": "строка",
"defaultValue": "Восток США",
"метаданные": {
"description": "Укажите регион для вашей рабочей области OMS."
}
},
"имя_рабочей области": {
"тип": "строка",
"метаданные": {
"description": "Укажите имя рабочей области OMS."
}
},
"omsWorkspaceId": {
"тип": "строка",
"метаданные": {
"description": "Укажите идентификатор ресурса рабочей области OMS."
}
},
"омску": {
"тип": "строка",
"defaultValue": "автономный",
"разрешенные значения": [
"бесплатно",
"автономный",
"перноде"
],
"метаданные": {
"description": "Выберите артикул для вашей рабочей области."
}
},
"сетевая политика": {
"тип": "строка",
"метаданные": {
"description": "Сетевая политика, используемая для построения сети Kubernetes."
}
},
"vnetSubnetID": {
"тип": "строка",
"метаданные": {
"description": "Идентификатор ресурса подсети виртуальной сети, используемой для назначения IP-адресов узлам и/или модулям."
}
},
"сервисСидр": {
"тип": "строка",
"метаданные": {
"description": "Диапазон IP-адресов нотации CIDR, из которого назначаются IP-адреса сервисного кластера."
}
},
"DNSServiceIP": {
"тип": "строка",
"метаданные": {
"description": "IP-адрес DNS-сервера контейнеров."
}
},
"докербриджсидр": {
"тип": "строка",
"метаданные": {
"description": "IP-адрес нотации CIDR для моста Docker."
}
}
},
"Ресурсы": [
{
"apiVersion": "2021-02-01",
"зависит от": [
"[concat('Microsoft.Resources/deployments/', 'WorkspaceDeployment-20211130231648')]",
"Microsoft.Network/virtualNetworks/trst-vnet"
],
"type": "Microsoft.ContainerService/managedClusters",
"местоположение": "[параметры('местоположение')]",
"имя": "[параметры('resourceName')]",
"характеристики": {
"kubernetesVersion": "[параметры('kubernetesVersion')]",
"enableRBAC": "[параметры('enableRBAC')]",
"dnsPrefix": "[параметры('dnsPrefix')]",
«Агентпулпрофилс»: [
{
"имя": "пул агентов",
"osDiskSizeGB": "[параметры('osDiskSizeGB')]",
"количество": 1,
"enableAutoScaling": правда,
"minCount": 1,
"maxCount": 2,
"vmSize": "Стандарт_B4ms",
"osType": "Линукс",
"storageProfile": "Управляемые диски",
"type": "Виртуальные машиныScaleSets",
"режим": "Система",
"максПодс": 110,
"зоны доступности": [
"1",
"2",
"3"
],
"vnetSubnetID": "[параметры('vnetSubnetID')]"
}
],
"сетевой профиль": {
"loadBalancerSku": "стандартный",
"networkPlugin": "[параметры('networkPlugin')]",
"networkPolicy": "[параметры('networkPolicy')]",
"serviceCidr": "[параметры('serviceCidr')]",
"dnsServiceIP": "[параметры('dnsServiceIP')]",
"dockerBridgeCidr": "[параметры('dockerBridgeCidr')]"
},
"аписерверакцесспрофиле": {
"enablePrivateCluster": "[параметры('enablePrivateCluster')]"
},
"профили дополнений": {
"httpApplicationRouting": {
"enabled": "[параметры('enableHttpApplicationRouting')]"
},
"лазурная политика": {
"enabled": "[параметры('enableAzurePolicy')]"
},
"омсагент": {
"включено": "[параметры('enableOmsAgent')]",
"конфигурация": {
"logAnalyticsWorkspaceResourceID": "[параметры('omsWorkspaceId')]"
}
}
}
},
"теги": {
«Владелец»: «[email protected]»,
"цель": "автоматизация маркет-сервера"
},
"личность": {
"тип": "Система назначена"
}
},
{
"type": "Microsoft.Ресурсы/развертывания",
"name": "SolutionDeployment-20211130231648",
"apiVersion": "2017-05-10",
"resourceGroup": "[разделить(параметры('omsWorkspaceId'),'/')[4]]",
"subscriptionId": "[разделить(параметры('omsWorkspaceId'),'/')[2]]",
"характеристики": {
"режим": "Инкрементный",
"шаблон": {
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"Версия содержания": "1.0.0.0",
"параметры": {},
"переменные": {},
"Ресурсы": [
{
"apiVersion": "2015-11-01-предварительная версия",
"type": "Microsoft.OperationsManagement/решения",
"location": "[параметры('workspaceRegion')]",
"name": "[concat('ContainerInsights', '(', split(parameters('omsWorkspaceId'),'/')[8], ')')]",
"характеристики": {
"workspaceResourceId": "[параметры('omsWorkspaceId')]"
},
"строить планы": {
"name": "[concat('ContainerInsights', '(', split(parameters('omsWorkspaceId'),'/')[8], ')')]",
"product": "[concat('OMSGallery/', 'ContainerInsights')]",
"Промо-Код": "",
"издатель": "Майкрософт"
}
}
]
}
},
"зависит от": [
"[concat('Microsoft.Resources/deployments/', 'WorkspaceDeployment-20211130231648')]"
]
},
{
"type": "Microsoft.Ресурсы/развертывания",
"name": "WorkspaceDeployment-20211130231648",
"apiVersion": "2017-05-10",
"resourceGroup": "[разделить(параметры('omsWorkspaceId'),'/')[4]]",
"subscriptionId": "[разделить(параметры('omsWorkspaceId'),'/')[2]]",
"характеристики": {
"режим": "Инкрементный",
"шаблон": {
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"Версия содержания": "1.0.0.0",
"параметры": {},
"переменные": {},
"Ресурсы": [
{
"apiVersion": "2015-11-01-предварительная версия",
"type": "Microsoft.OperationalInsights/рабочие области",
"location": "[параметры('workspaceRegion')]",
"name": "[параметры('workspaceName')]",
"характеристики": {
"арт": {
"имя": "[параметры('omsSku')]"
}
}
}
]
}
}
},
{
"type": "Microsoft.Ресурсы/развертывания",
"name": "ClusterMonitoringMetricPulisherRoleAssignmentDepl-20211130231648",
"apiVersion": "2017-05-10",
"resourceGroup": "трст",
"subscriptionId": "ae642de8-dea6-4c85-887e-6b6c2ea9a2db",
"характеристики": {
"режим": "Инкрементный",
"шаблон": {
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"Версия содержания": "1.0.0.0",
"параметры": {},
"переменные": {},
"Ресурсы": [
{
"type": "Microsoft.ContainerService/managedClusters/providers/roleAssignments",
"apiVersion": "2018-01-01-превью",
"name": "trstcluster/Microsoft.Authorization/8d6b2f7b-830e-4a4d-a644-084673fbee7a",
"характеристики": {
"roleDefinitionId": "[concat('/подписки/', подписка().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', '3913510d-42f4-4e42-8a64-420c390055eb')]",
"principalId": "[ссылка(параметры('resourceName')).addonProfiles.omsAgent.identity.objectId]",
"scope": "/subscriptions/ae642de8-dea6-4c85-887e-6b6c2ea9a2db/resourceGroups/trst/providers/Microsoft.ContainerService/managedClusters/trstcluster"
}
}
]
}
},
"зависит от": [
"/subscriptions/ae642de8-dea6-4c85-887e-6b6c2ea9a2db/resourceGroups/trst/providers/Microsoft.ContainerService/managedClusters/trstcluster"
]
},
{
"apiVersion": "2020-11-01",
"имя": "trst-vnet",
"type": "Microsoft.Network/virtualNetworks",
"местоположение": "центральная Индия",
"характеристики": {
"подсети": [
{
"имя": "по умолчанию",
"id": "/subscriptions/ae642de8-dea6-4c85-887e-6b6c2ea9a2db/resourceGroups/trst/providers/Microsoft.Network/virtualNetworks/trst-vnet/subnets/default",
"характеристики": {
"addressPrefix": "10.240.0.0/16"
}
}
],
"адресное пространство": {
"префиксы адресов": [
«10.0.0.0/8»
]
}
},
"теги": {}
},
{
"type": "Microsoft.Ресурсы/развертывания",
"name": "ClusterSubnetRoleAssignmentDeployment-20211130231648",
"apiVersion": "2017-05-10",
"resourceGroup": "трст",
"subscriptionId": "ae642de8-dea6-4c85-887e-6b6c2ea9a2db",
"характеристики": {
"режим": "Инкрементный",
"шаблон": {
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"Версия содержания": "1.0.0.0",
"параметры": {},
"переменные": {},
"Ресурсы": [
{
"type": "Microsoft.Network/virtualNetworks/subnets/providers/roleAssignments",
"apiVersion": "2018-09-01-превью",
"name": "trst-vnet/default/Microsoft.Authorization/47b6d7b9-cf3c-4b8c-890f-6e938f052be9",
"характеристики": {
"roleDefinitionId": "[concat('/подписки/', подписка().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', '4d97b98b-1d4f-4787-a291-c67834d212e7')]",
"principalId": "[ссылка(параметры('resourceName'),'2021-02-01','Full').identity.principalId]",
"scope": "/subscriptions/ae642de8-dea6-4c85-887e-6b6c2ea9a2db/resourceGroups/trst/providers/Microsoft.Network/virtualNetworks/trst-vnet/subnets/default"
}
}
]
}
},
"зависит от": [
"Microsoft.Network/virtualNetworks/trst-vnet"
]
}
],
"выход": {
"controlPlaneFQDN": {
"тип": "строка",
"value": "[ссылка (concat ('Microsoft.ContainerService/managedClusters/', параметры ('resourceName'))).fqdn]"
}
}
}