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
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
Á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
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>"
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 |