Share via


Rövid útmutató: Kubernetes-fürt üzembe helyezése Azure Resource Manager-sablonnal

A következőkre vonatkozik: Azure Stack HCI, 23H2-es verzió

Ez a rövid útmutató bemutatja, hogyan helyezhet üzembe Kubernetes-fürtöt az AKS Arcban egy Azure Resource Manager-sablonnal. Az Azure Arc bárhol kiterjeszti az Azure felügyeleti képességeit a Kubernetes-fürtökre, és egységes megközelítést biztosít a különböző környezetek kezeléséhez.

Előkészületek

Ez a cikk a Kubernetes alapfogalmait feltételezi.

Egy Resource Manager-sablon üzembe helyezéséhez írási hozzáférésre van szükség az üzembe helyezni kívánt erőforrásokhoz, és hozzá kell férnie a Microsoft.Resources/deployments erőforrástípus összes műveletéhez. Egy virtuális gép üzembe helyezéséhez például Microsoft.Compute/virtualMachines/write és Microsoft.Resources/deployments/* engedélyre van szükség. A szerepkörök és engedélyek listáját megtalálja a Beépített Azure-szerepkörök című cikkben.

Előfeltételek

  • Egy Azure-fiók, aktív előfizetéssel.
  • Egy Azure Stack HCI 23H2-fürt.
  • Az Azure CLI legújabb verziója.

1. lépés: Az Azure-fiók előkészítése

  1. Jelentkezzen be az Azure-ba: nyissa meg a terminált vagy a parancssort, és jelentkezzen be az Azure-fiókjába az Azure CLI használatával:

    az login
    
  2. Állítsa be az előfizetését: cserélje le a elemet <your-subscription-id> az előfizetés-azonosítóra:

    az account set --subscription "<your-subscription-id>"
    

2. lépés: SSH-kulcspár létrehozása az Azure CLI használatával

az sshkey create --name "mySSHKey" --resource-group "myResourceGroup"

vagy hozzon létre egy SSH-kulcspárt az ssh-keygen használatával:

ssh-keygen -t rsa -b 4096

A sablon üzembe helyezéséhez meg kell adnia a nyilvános kulcsot az SSH-párból. A nyilvános kulcs lekéréséhez használja a az sshkey show következő parancsot:

az sshkey show --name "mySSHKey" --resource-group "myResourceGroup" --query "publicKey"

Alapértelmezés szerint az SSH-kulcsfájlok a ~/.ssh könyvtárban jönnek létre. Futtassa a vagy ssh-keygen a az sshkey create parancsot a meglévő SSH-kulcspárok felülírásához ugyanazzal a névvel.

További információ az SSH-kulcsok létrehozásáról: SSH-kulcsok létrehozása és kezelése hitelesítéshez az Azure-ban.

3. lépés: A sablon áttekintése

Az ebben a rövid útmutatóban használt sablon az Azure Gyorsindítási sablonok adattárából származik:

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
      "provisionedClusterName": {
          "type": "string",
          "defaultValue": "aksarc-armcluster",
          "metadata": {
              "description": "The name of the AKS Arc Cluster resource."
          }
      },
      "location": {
          "type": "string",
          "defaultValue": "eastus",
          "metadata": {
              "description": "The location of the AKS Arc Cluster resource."
          }
      },
      "resourceTags": {
            "type": "object",
            "defaultValue": {}
        },
      "sshRSAPublicKey": {
          "type": "string",
          "metadata": {
              "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH '"
          }
      },
       "enableAHUB": {
            "type": "string",
            "defaultValue": "NotApplicable",
            "metadata": {
                "description": "Azure Hybrid Benefit for Windows Server licenses. NotApplicable, True, False."
            }
        },
       "agentName": {
              "type": "string",
              "defaultValue": "nodepool",
              "metadata": {
                  "description": "The name of the node pool."
              }
          },
        "agentVMSize": {
            "type": "string",
            "defaultValue": "Standard_A4_v2",
            "metadata": {
                  "description": "The VM size for node pools."
            }
        },
        "agentCount": {
              "type": "int",
              "defaultValue": 1,
              "minValue": 1,
              "maxValue": 50,
              "metadata": {
                  "description": "The number of nodes for the cluster."
              }
          },
          "agentOsType": {
              "type": "string",
              "defaultValue": "Linux",
              "metadata": {
                  "description": "The OS Type for the agent pool. Values are Linux and Windows."
              }
          },
         "loadBalancerCount": {
            "type": "int",
            "defaultValue": 0,
            "metadata": {
                "description": "The number of load balancers."
            }
        },
          "kubernetesVersion": {
              "type": "string",
              "metadata": {
                  "description": "The version of Kubernetes."
              }
          },
          "controlPlaneNodeCount": {
              "type": "int",
              "defaultValue": 1,
              "minValue": 1,
              "maxValue": 5,
              "metadata": {
                  "description": "The number of control plane nodes for the cluster."
              }
          },
          "controlPlaneIp": {
            "type": "string",
            "defaultValue": "<default_value>",
              "metadata": {
                  "description": "Control plane IP address."
              }
         },
          "controlPlaneVMSize": {
              "type": "string",
              "defaultValue": "Standard_A4_v2",
              "metadata": {
                  "description": "The VM size for control plane."
              }
          },
          "vnetSubnetIds": {
              "type": "array",
              "metadata": {
                  "description": "List of subnet Ids for the AKS cluster."
              }
          },
          "podCidr": {
            "type": "string",
            "defaultValue": "10.244.0.0/16",
            "metadata": {
                  "description": "The VM size for control plane."
              }
          },
          "networkPolicy": {
            "type": "string",
            "defaultValue": "calico",
            "metadata": {
                  "description": "Network policy to use for Kubernetes pods. Only options supported is calico."
              }
          },
          "customLocation": {
            "type": "string",
            "metadata": {
                  "description": "Fully qualified custom location resource Id."
              }
          }
      },
      "resources": [
      {
          "apiVersion": "2024-01-01",
          "type": "Microsoft.Kubernetes/ConnectedClusters",
          "kind": "ProvisionedCluster",
          "location": "[parameters('location')]",
          "name": "[parameters('provisionedClusterName')]",
          "tags": "[parameters('resourceTags')]",
          "identity": {
              "type": "SystemAssigned"
          },
          "properties": {
              "agentPublicKeyCertificate":"" ,
              "aadProfile": {
                  "enableAzureRBAC": false
              }
          }
      },
      {
          "apiVersion": "2024-01-01",
          "type": "microsoft.hybridcontainerservice/provisionedclusterinstances",
          "name": "default",
          "scope": "[concat('Microsoft.Kubernetes/ConnectedClusters', '/', parameters('provisionedClusterName'))]",
          "dependsOn": [
              "[resourceId('Microsoft.Kubernetes/ConnectedClusters', parameters('provisionedClusterName'))]"
          ],
          "properties": {
          "agentPoolProfiles": [
            {
              "count": "[parameters('agentCount')]",
              "name":"[parameters('agentName')]",
              "osType": "[parameters('agentOsType')]",
              "vmSize": "[parameters('agentVMSize')]"
            }
          ],
          "cloudProviderProfile": {
            "infraNetworkProfile": {
                  "vnetSubnetIds": "[parameters('vnetSubnetIds')]"
            }
          },
          "controlPlane": {
            "count": "[parameters('controlPlaneNodeCount')]",
            "controlPlaneEndpoint": {
                        "hostIP": "[parameters('controlPlaneIp')]"
                    },
            "vmSize": "[parameters('controlPlaneVMSize')]"
          },
         "licenseProfile": {
            "azureHybridBenefit": "[parameters('enableAHUB')]"
         },
          "kubernetesVersion": "[parameters('kubernetesVersion')]",
          "linuxProfile": {
            "ssh": {
              "publicKeys": [
                {
                  "keyData": "[parameters('sshRSAPublicKey')]"
                }
              ]
            }
          },
        "networkProfile": {
          "loadBalancerProfile": {
            "count": "[parameters('loadBalancerCount')]"
          },
          "networkPolicy": "[parameters('networkPolicy')]",
          "podCidr": "[parameters('podCidr')]"
        },
        "storageProfile": {
          "nfsCsiDriver": {
            "enabled": false
          },
          "smbCsiDriver": {
            "enabled": false
          }
        }
        },
        "extendedLocation": {
            "name": "[parameters('customLocation')]",
            "type": "CustomLocation"
        }
      }
    ]
  }

4. lépés: A sablon üzembe helyezése

A sablon üzembe helyezéséhez futtassa a következő parancsot a Kubernetes-fürt üzembe helyezéséhez:

az deployment group create \
--name "<deployment-name>" \
--resource-group "<resource-group-name>" \
--template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.kubernetes/aks-arc/azuredeploy.json" \
--parameters provisionedClusterName="<cluster-name> location="eastus" sshRSApublicKey="" etc..."

A fürt létrehozása néhány percet vesz igénybe. Várja meg a fürt sikeres üzembe helyezését, mielőtt továbblép a következő lépésre.

5. lépés: Az üzembe helyezés ellenőrzése

Az üzembe helyezés befejezése után az alábbi paranccsal ellenőrizze, hogy a Kubernetes-fürt működik-e:

az aksarc show --resource-group "<resource-group-name>" --name "<cluster-name>" --output table

6. lépés: Csatlakozás a fürthöz

  1. A fürthöz való csatlakozáshoz futtassa az az connectedk8s proxy parancsot. A parancs letölt és futtat egy proxy bináris fájlt az ügyfélszámítógépen, és lekéri a fürthöz társított kubeconfig fájlt:

    az connectedk8s proxy --name <cluster name> -g <resource group>
    

    Vagy használja a Kubernetes parancssori ügyfelet, a kubectl-t. Az Azure Cloud Shell használata esetén a kubectl már telepítve van. A kubectl helyi telepítéséhez és futtatásához futtassa a az aksarc install-cli parancsot.

    Konfigurálja a kubectl-et a Kubernetes-fürthöz való csatlakozáshoz a az aksarc get-credentials paranccsal. Ez a parancs letölti a hitelesítő adatokat, és konfigurálja a Kubernetes parancssori felületét a használatukhoz:

    az aksarc get-credentials --resource-group "<resource-group-name>" --name "<cluster-name>"
    
  2. Ellenőrizze a fürthöz való csatlakozást a kubectl get paranccsal. Ez a parancs a fürtcsomópontok listáját adja vissza:

    kubectl get nodes -A --kubeconfig .\<path to kubecofig> 
    

    Az alábbi példakimenet az előző lépésekben létrehozott három csomópontot mutatja be. Győződjön meg arról, hogy a csomópont állapota Kész:

    NAME                                STATUS   ROLES   AGE   VERSION
    aks-agentpool-27442051-vmss000000   Ready    agent   10m   v1.27.7
    aks-agentpool-27442051-vmss000001   Ready    agent   10m   v1.27.7
    aks-agentpool-27442051-vmss000002   Ready    agent   11m   v1.27.7
    

Sablonerőforrások

connectedClusters

Név Leírás Érték
type Az erőforrás típusa. Microsoft.Kubernetes/ConnectedClusters
apiVersion Az erőforrás API-verziója. 2024-01-01
name Az erőforrás neve. Sztring (kötelező)
Karakterkorlát: 1-63
Érvényes karakterek: Alfanumerikus karakterek, aláhúzásjelek és kötőjelek.
Kezdés és befejezés alfanumerikussal.
location Az a földrajzi hely, ahol az erőforrás él. Sztring (kötelező).
tags Erőforráscímkék. Címkenevek és -értékek szótára. Lásd: Címkék sablonokban.
extendedLocation A virtuális gép kiterjesztett helye. ExtendedLocation
identity A csatlakoztatott fürt identitása, ha konfigurálva van.
properties Csatlakoztatott fürt tulajdonságai.

ProvisionedClusterInstances

Név Leírás Érték
type Az erőforrás típusa microsoft.hybridcontainerservice/provisionedclusterinstances
apiVersion Az erőforrás API-verziója 2024-01-01
name Az erőforrás neve Sztring (kötelező). Ne módosítsa ezt az alapértelmezett értékről.
properties Csatlakoztatott fürt tulajdonságai.
extendedLocation A fürt kiterjesztett helye. ExtendedLocation

ExtendedLocation

Név Leírás Érték
name A kiterjesztett hely azonosítója. sztring
type A kiterjesztett hely típusa. CustomLocation

Következő lépések

Az AKS Arc áttekintése