Справочник по приложениям Kubernetes в приложении Azure с помощью примера управляемого приложения
В этой статье содержатся технические ресурсы и рекомендации, которые помогут вам ссылаться на приложения Kubernetes в приложении Azure с помощью примера управляемого приложения.
Ограничения
Предложение управляемого приложения не будет работать в существующем кластере. Предложение должно создать новый кластер и установить приложение в кластере, в противном случае предложение не будет развернуто.
Необходимые компоненты
Необходимо настроить предложение Kubernetes в Azure Marketplace, на которое вы хотите ссылаться в предложении управляемого приложения. Вы можете ознакомиться с руководством по началу работы, чтобы создать предложение Kubernetes.
Определение пользовательского интерфейса и шаблон ARM в этом предложении могут быть очень простыми, так как вы добавите это в предложении управляемого приложения.
В этом примере мы начнем с папки k8s-offer-azure-vote , чтобы создать пакет CNAB для базового предложения Kubernetes.
После публикации и доступности предложения в Azure Marketplace на этапе предварительной версии можно приступить к созданию предложения управляемого приложения.
Предложение управляемого приложения
Начните с файлов mainTemplate и createUIDefinition в этой папке.
Сначала обновите раздел переменных:
"variables": {
"plan-name": "DONOTMODIFY",
"plan-publisher": "DONOTMODIFY",
"plan-offerID": "DONOTMODIFY",
"releaseTrain": "DONOTMODIFY",
"clusterExtensionTypeName": "DONOTMODIFY"
},
Чтобы получить значение непосредственно из предложения Kubernetes, выполните инструкции. Разверните приложение Azure Kubernetes с помощью шаблона ARM.
Подготовка mainTemplate.json
В этом примере mainTemplate мы добавили дополнительные компоненты для демонстрации добавления дополнительных компонентов в предложение управляемого приложения.
Назначаемое пользователем удостоверение:
{
"type": "Microsoft.ManagedIdentity/userAssignedIdentities",
"name": "[concat(parameters('clusterResourceName'), '-identity')]",
"apiVersion": "2023-01-31",
"location": "[resourceGroup().location]"
},
- Keyvault, политика доступа и секрет:
{
"name": "[uniqueString(resourceGroup().id, resourceGroup().location, 'keyvault')]",
"type": "Microsoft.KeyVault/vaults",
"apiVersion": "2019-09-01",
"location": "[resourceGroup().location]",
"tags": {
"displayName": "keyVault1"
},
"properties": {
"enabledForDeployment": true,
"enabledForTemplateDeployment": true,
"enabledForDiskEncryption": true,
"tenantId": "[subscription().tenantId]",
"accessPolicies": [
{
"tenantId": "[subscription().tenantId]",
"objectId": "[reference(resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', concat(parameters('clusterResourceName'), '-identity')), '2023-01-31').principalId]",
"permissions": {
"keys": [
"Get"
],
"secrets": [
"List",
"Get",
"Set"
]
}
}
],
"sku": {
"name": "standard",
"family": "A"
}
},
"resources": [
{
"type": "secrets",
"name": "secretExample1",
"apiVersion": "2016-10-01",
"dependsOn": [
"[resourceId('Microsoft.KeyVault/vaults', uniqueString(resourceGroup().id, resourceGroup().location, 'keyvault'))]"
],
"properties": {
"value": "secretValue"
}
}
],
"dependsOn": [
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', concat(parameters('clusterResourceName'), '-identity'))]"
]
}
- Назначение удостоверения узлу кластера и зависит от:
"type": "Microsoft.ContainerService/managedClusters",
"apiVersion": "2022-11-01",
"name": "[parameters('clusterResourceName')]",
"location": "[parameters('location')]",
"dependsOn": [
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', concat(parameters('clusterResourceName'), '-identity'))]"
],
"tags": {},
"sku": {
"name": "Basic",
"tier": "Free"
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', concat(parameters('clusterResourceName'), '-identity'))]": {}
}
},
UIDefinition
В этом примере createUiDefinition мы удалили дополнительные компоненты, которые не применимы для предложения управляемого приложения.
Упаковка файлов
Добавьте два файла mainTemplate.json
и createUiDefinition.json
в ZIP-файл.
Создание предложения управляемого приложения
Теперь, когда у вас есть необходимые артефакты, вы можете следовать руководству. Создайте предложение приложения Azure в Azure Marketplace для создания предложения управляемого приложения.