Delen via


Verwijzen naar Kubernetes-apps in de Azure-toepassing met behulp van een voorbeeld van een beheerde app

In dit artikel vindt u technische resources en aanbevelingen om te verwijzen naar Kubernetes-apps in de Azure-toepassing met behulp van een voorbeeld van een beheerde app.

Beperkingen

De aanbieding voor beheerde apps werkt niet voor een bestaand cluster. De aanbieding moet een nieuw cluster maken en de toepassing installeren op het cluster, anders kan de aanbieding niet worden geïmplementeerd.

Vereisten

U moet een Kubernetes-aanbieding instellen in Azure Marketplace waarnaar u wilt verwijzen in uw aanbieding voor beheerde apps. Raadpleeg de handleiding Aan de slag om een Kubernetes-aanbieding te maken.

Uw UI-definitie en ARM-sjabloon in deze aanbieding kunnen heel eenvoudig zijn, omdat u dat in uw aanbieding voor beheerde apps gaat uitbreiden.

In dit voorbeeld beginnen we vanuit de map k8s-offer-azure-vote om de CNAB-bundel te maken voor het basis-Kubernetes-aanbod.

Zodra uw aanbieding is gepubliceerd en beschikbaar is in Azure Marketplace in de preview-fase, kunt u beginnen met het maken van uw aanbieding voor beheerde apps.

Schermopname van de preview-koppeling om de aanbieding voor beheerde apps weer te geven.

Aanbieding voor beheerde apps

Begin met de mainTemplate - en createUIDefinition-bestanden in deze map.

Werk eerst de sectie variabelen bij:

"variables": {
    "plan-name": "DONOTMODIFY",
    "plan-publisher": "DONOTMODIFY",
    "plan-offerID": "DONOTMODIFY",
    "releaseTrain": "DONOTMODIFY",
    "clusterExtensionTypeName": "DONOTMODIFY"
},

Als u de waarde rechtstreeks wilt ophalen uit de Kubernetes-aanbieding, volgt u de handleiding: Een Azure Kubernetes-toepassing implementeren met behulp van een ARM-sjabloon.

MainTemplate.json voorbereiden

In dit voorbeeld mainTemplate hebben we extra onderdelen toegevoegd om te laten zien hoe u meer onderdelen toevoegt aan de aanbieding voor beheerde apps.

Door de gebruiker toegewezen identiteit:

{
    "type": "Microsoft.ManagedIdentity/userAssignedIdentities",
    "name": "[concat(parameters('clusterResourceName'), '-identity')]",
    "apiVersion": "2023-01-31",
    "location": "[resourceGroup().location]"
},
  • Sleutelkluis, toegangsbeleid en geheim:
{
    "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'))]"
    ]
}
  • De identiteit toewijzen aan het knooppunt van het cluster en is afhankelijk van:
"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

In dit voorbeeld createUiDefinition hebben we extra onderdelen verwijderd die niet van toepassing zijn op de aanbieding voor beheerde apps.

De bestanden verpakken

Voeg de twee bestanden mainTemplate.json toe en createUiDefinition.json aan een zip-bestand.

De aanbieding voor beheerde apps maken

Nu u de vereiste artefacten hebt, kunt u de handleiding volgen: Een Azure-toepassingsaanbieding maken in Azure Marketplace om de aanbieding voor beheerde apps te maken.