Mereferensikan aplikasi Kubernetes di aplikasi Azure menggunakan sampel aplikasi terkelola
Artikel ini memberikan sumber daya teknis dan rekomendasi untuk membantu Anda mereferensikan aplikasi Kubernetes di aplikasi Azure menggunakan sampel aplikasi terkelola.
Batasan
Penawaran aplikasi terkelola tidak akan berfungsi terhadap kluster yang ada. Penawaran perlu membuat kluster baru dan menginstal aplikasi pada kluster, jika tidak, penawaran akan gagal disebarkan.
Prasyarat
Anda perlu menyiapkan penawaran Kubernetes di Marketplace Azure yang ingin Anda referensikan dalam penawaran aplikasi terkelola Anda. Anda dapat merujuk ke panduan Memulai untuk membuat penawaran Kubernetes.
Definisi UI dan templat ARM Anda dalam penawaran ini bisa sangat sederhana, karena Anda akan memperluasnya dalam penawaran aplikasi terkelola Anda.
Dalam contoh ini, kita mulai dari folder k8s-offer-azure-vote untuk membuat bundel CNAB untuk penawaran Kubernetes dasar.
Setelah penawaran Anda diterbitkan dan tersedia di Marketplace Azure dalam tahap pratinjau, Anda dapat mulai membuat penawaran aplikasi terkelola.
Penawaran aplikasi terkelola
Mulailah dengan file mainTemplate dan createUIDefinition di folder ini.
Pertama, perbarui bagian variabel:
"variables": {
"plan-name": "DONOTMODIFY",
"plan-publisher": "DONOTMODIFY",
"plan-offerID": "DONOTMODIFY",
"releaseTrain": "DONOTMODIFY",
"clusterExtensionTypeName": "DONOTMODIFY"
},
Untuk mengambil nilai langsung dari penawaran Kubernetes, ikuti panduan: Sebarkan aplikasi Azure Kubernetes dengan menggunakan templat ARM.
Menyiapkan mainTemplate.json
Dalam contoh mainTemplate ini, kami telah menambahkan komponen tambahan untuk menunjukkan cara menambahkan lebih banyak komponen ke penawaran aplikasi terkelola.
Identitas yang ditetapkan pengguna:
{
"type": "Microsoft.ManagedIdentity/userAssignedIdentities",
"name": "[concat(parameters('clusterResourceName'), '-identity')]",
"apiVersion": "2023-01-31",
"location": "[resourceGroup().location]"
},
- Keyvault, kebijakan akses, dan rahasia:
{
"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'))]"
]
}
- Menetapkan identitas ke node kluster dan bergantung pada:
"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
Dalam sampel createUiDefinition ini, kami telah menghapus komponen tambahan yang tidak berlaku untuk penawaran aplikasi terkelola.
Membuat paket file
Tambahkan dua file mainTemplate.json
dan createUiDefinition.json
ke file zip.
Membuat penawaran aplikasi terkelola
Sekarang setelah Anda memiliki artefak yang diperlukan, Anda dapat mengikuti panduan: Membuat penawaran aplikasi Azure di Marketplace Azure untuk membuat penawaran aplikasi terkelola.