共用方式為


使用受控應用程式範例參考 Azure 應用程式中的 Kubernetes 應用程式

本文提供技術資源和建議,協助您使用受控應用程式範例參考 Azure 應用程式中的 Kubernetes 應用程式。

限制

受控應用程式供應專案不適用於現有的叢集。 供應項目必須建立新的叢集,並在叢集上安裝應用程式,否則供應專案將無法部署。

必要條件

您必須在 Azure Marketplace 中設定 Kubernetes 供應專案,以在受控應用程式供應項目中參考。 您可以參閱 開始使用指南 來建立 Kubernetes 供應專案。

此供應專案中的UI定義和ARM樣本可能非常簡單,因為您將擴充受控應用程式供應專案中的UI定義和ARM範本。

在此範例中,我們從 k8s-offer-azure-vote 資料夾開始,為基底 Kubernetes 供應專案建立 CNAB 套件組合。

發行供應專案並在預覽階段於 Azure Marketplace 中提供之後,您就可以開始建立受控應用程式供應專案。

顯示顯示受控應用程式供應專案的預覽鏈接螢幕快照。

受控應用程式供應專案

從 mainTemplate 開始,並在此資料夾中建立UIDefinition 檔案。

首先,更新 variables 區段:

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

若要直接從 Kubernetes 供應專案擷取值,請遵循指南: 使用 ARM 範本部署 Azure Kubernetes 應用程式。

準備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.jsoncreateUiDefinition.json 新增至 zip 檔案。

建立受控應用程式供應專案

既然您需要成品,您可以遵循指南: 在 Azure Marketplace 中建立 Azure 應用程式供應專案,以建立受控應用程式供應專案。