Sdílet prostřednictvím


Vytváření clusterů Kubernetes pomocí Bicep

Tento článek popisuje, jak vytvořit clustery Kubernetes v Azure Local pomocí Bicep. Pracovní postup je následující:

  1. Vytvoření páru klíčů SSH
  2. Vytvořte cluster Kubernetes v Místním Azure verze 23H2 pomocí Bicep. Ve výchozím nastavení je cluster připojený ke službě Azure Arc.
  3. Ověřte nasazení a připojte se ke clusteru.

Než začnete

Než začnete, ujistěte se, že máte následující požadavky:

  1. Od místního správce infrastruktury získejte následující podrobnosti:

    • ID předplatného Azure: ID předplatného Azure, které k nasazení a registraci používá Azure Local.
    • Název nebo ID vlastního umístění: ID Azure Resource Manageru vlastního umístění. Vlastní umístění se konfiguruje během nasazení místního clusteru Azure. Správce infrastruktury by vám měl poskytnout ID Resource Manageru vlastního umístění. Tento parametr se vyžaduje k vytváření clusterů Kubernetes. ID Resource Manageru můžete získat také pomocí az customlocation show --name "<custom location name>" --resource-group <azure resource group> --query "id" -o tsv, pokud správce infrastruktury poskytne název vlastního umístění a název skupiny prostředků.
    • Název nebo ID logické sítě: ID Azure Resource Manageru místní logické sítě Azure, která byla vytvořena pomocí následujících kroků. Správce by vám měl dát ID logické sítě. Tento parametr se vyžaduje k vytváření clusterů Kubernetes. ID Azure Resource Manageru můžete získat také v az stack-hci-vm network lnet show --name "<lnet name>" --resource-group <azure resource group> --query "id" -o tsv případě, že znáte skupinu prostředků, ve které byla logická síť vytvořena.
  2. Ujistěte se, že máte na vývojovém počítači nejnovější verzi Azure CLI . Verzi Azure CLI můžete upgradovat také pomocí az upgrade.

  3. Stáhněte a nainstalujte kubectl na vývojovém počítači. Nástroj příkazového řádku Kubernetes kubectl umožňuje spouštět příkazy pro clustery Kubernetes. Pomocí kubectl můžete nasazovat aplikace, kontrolovat a spravovat prostředky clusteru a zobrazovat protokoly.

Vytvoření páru klíčů SSH

Pokud chcete vytvořit pár klíčů SSH (stejný jako Azure AKS), použijte následující postup:

  1. Otevřete relaci Cloud Shellu v prohlížeči.

  2. Vytvořte pár klíčů SSH pomocí az sshkey create příkazu Azure CLI nebo ssh-keygen příkazu:

    # Create an SSH key pair using Azure CLI
    az sshkey create --name "mySSHKey" --resource-group "myResourceGroup"
    

    Nebo vytvořte pár klíčů SSH pomocí ssh-keygen:

    ssh-keygen -t rsa -b 4096
    

Další informace o vytváření klíčů SSH najdete v tématu Vytvoření a správa klíčů SSH pro ověřování v Azure.

Aktualizace a kontrola skriptů Bicep

Tato část ukazuje parametry Bicep a soubory šablon. Tyto soubory jsou k dispozici také v šabloně Rychlého startu Azure.

Soubor parametrů Bicep: aksarc.bicepparam

using 'main.bicep'
param aksClusterName = 'aksarc-bicep-new'
param aksControlPlaneIP = 'x.x.x.x'
param sshPublicKey = 'ssh_public_key'
param hciLogicalNetworkName = 'lnet_name'
param hciCustomLocationName = 'cl_name'
param aksNodePoolOSType = 'Linux'
param aksNodePoolNodeCount = 1

Soubor šablony Bicep: main.bicep

@description('The name of AKS Arc cluster resource')
param aksClusterName string
param location string = 'eastus'

// Default to 1 node CP
@description('The name of AKS Arc cluster control plane IP, provide this parameter during deployment')
param aksControlPlaneIP string
param aksControlPlaneNodeSize string = 'Standard_A4_v2'
param aksControlPlaneNodeCount int = 1

// Default to 1 node NP
param aksNodePoolName string = 'nodepool1'
param aksNodePoolNodeSize string = 'Standard_A4_v2'
param aksNodePoolNodeCount int = 1
@allowed(['Linux', 'Windows'])
param aksNodePoolOSType string = 'Linux'

@description('SSH public key used for cluster creation, provide this parameter during deployment')
param sshPublicKey string

// Build LNet ID from LNet name
@description('The name of LNet resource, provide this parameter during deployment')
param hciLogicalNetworkName string
resource logicalNetwork 'Microsoft.AzureStackHCI/logicalNetworks@2023-09-01-preview' existing = {
  name: hciLogicalNetworkName
}

// Build custom location ID from custom location name
@description('The name of custom location resource, provide this parameter during deployment')
param hciCustomLocationName string
var customLocationId = resourceId('Microsoft.ExtendedLocation/customLocations', hciCustomLocationName) 

// Create the connected cluster. This is the Arc representation of the AKS cluster, used to create a Managed Identity for the provisioned cluster.
resource connectedCluster 'Microsoft.Kubernetes/ConnectedClusters@2024-01-01' = {
  location: location
  name: aksClusterName
  identity: {
    type: 'SystemAssigned'
  }
  kind: 'ProvisionedCluster'
  properties: {
    agentPublicKeyCertificate: ''
    aadProfile: {
      enableAzureRBAC: false
    }
  }
}

// Create the provisioned cluster instance. This is the actual AKS cluster and provisioned on your Azure Local cluster via the Arc Resource Bridge.
resource provisionedClusterInstance 'Microsoft.HybridContainerService/provisionedClusterInstances@2024-01-01' = {
  name: 'default'
  scope: connectedCluster
  extendedLocation: {
    type: 'CustomLocation'
    name: customLocationId
  }
  properties: {
    linuxProfile: {
      ssh: {
        publicKeys: [
          {
            keyData: sshPublicKey
          }
        ]
      }
    }
    controlPlane: {
      count: aksControlPlaneNodeCount
      controlPlaneEndpoint: {
        hostIP: aksControlPlaneIP
      }
      vmSize: aksControlPlaneNodeSize
    }
    networkProfile: {
      loadBalancerProfile: {
        count: 0
      }
      networkPolicy: 'calico'
    }
    agentPoolProfiles: [
      {
        name: aksNodePoolName
        count: aksNodePoolNodeCount
        vmSize: aksNodePoolNodeSize
        osType: aksNodePoolOSType
      }
    ]
    cloudProviderProfile: {
      infraNetworkProfile: {
        vnetSubnetIds: [
          logicalNetwork.id
        ]
      }
    }
    storageProfile: {
      nfsCsiDriver: {
        enabled: true
      }
      smbCsiDriver: {
        enabled: true
      }
    }
  }
}

Prostředek Microsoft.HybridContainerService/provisionedClusterInstances je definován v souboru Bicep. Pokud chcete prozkoumat další vlastnosti, projděte si referenční informace k rozhraní API.

Nasazení souboru Bicep

  1. Uložte soubor Bicep jako main.bicep do místního počítače.

  2. Aktualizujte parametry definované v aksarc.bicepparam a uložte je do místního počítače.

  3. Nasazení souboru Bicep pomocí Azure CLI:

    az deployment group create --name BicepDeployment --resource-group myResourceGroupName --template-file main.bicep –-parameters aksarc.bicepparam
    

Ověřte nasazení Bicep a připojte se ke clusteru.

Ke svému clusteru Kubernetes se teď můžete připojit spuštěním az connectedk8s proxy příkazu z vývojového počítače. Stav uzlu a podu můžete zobrazit také pomocí kubectl . Postupujte stejně jako v části Připojení ke clusteru Kubernetes.

Další kroky

Vytváření clusterů Kubernetes pomocí Azure CLI