Delen via


De Open Service Mesh-invoegtoepassing implementeren met Bicep in Azure Kubernetes Service (AKS)

In dit artikel leest u hoe u de invoegtoepassing Open Service Mesh (OSM) implementeert in Azure Kubernetes Service (AKS) met behulp van een Bicep-sjabloon .

Notitie

Met de buitengebruikstelling van Open Service Mesh (OSM) door de Cloud Native Computing Foundation (CNCF) raden we u aan om uw OSM-configuraties te identificeren en te migreren naar een equivalente Istio-configuratie. Zie Migratierichtlijnen voor Open Service Mesh-configuraties (OSM) naar Istio voor meer informatie over het migreren van OSM naar Istio.

Belangrijk

Op basis van de versie van Kubernetes wordt uw cluster uitgevoerd, installeert de OSM-invoegtoepassing een andere versie van OSM.

Kubernetes-versie OSM-versie geïnstalleerd
1.24.0 of hoger 1.2.5
Tussen 1.23.5 en 1.24.0 1.1.3
Onder 1.23.5 1.0.0

Oudere versies van OSM zijn mogelijk niet beschikbaar voor installatie of worden actief ondersteund als de bijbehorende AKS-versie het einde van de levensduur heeft bereikt. U kunt de AKS Kubernetes-releasekalender controleren op informatie over ondersteuningsvensters voor AKS-versies.

Bicep is een domeinspecifieke taal die declaratieve syntaxis gebruikt om Azure-resources te implementeren. U kunt Bicep gebruiken in plaats van Azure Resource Manager-sjablonen te maken om uw Azure-resources met infrastructuur als code te implementeren.

Voordat u begint

Voordat u begint, moet u ervoor zorgen dat u aan de volgende vereisten voldoet:

De OSM-invoegtoepassing voor een nieuw AKS-cluster installeren met Bicep

Voor de implementatie van een nieuw AKS-cluster schakelt u de OSM-invoegtoepassing in bij het maken van een cluster. In de volgende instructies wordt een algemene Bicep-sjabloon gebruikt waarmee een AKS-cluster wordt geïmplementeerd met behulp van tijdelijke schijven en de kubenet containernetwerkinterface. Vervolgens wordt de OSM-invoegtoepassing ingeschakeld. Zie Wat is Bicep voor meer geavanceerde implementatiescenario's?

Een brongroep maken

  • Maak een resourcegroep met behulp van de az group create opdracht.

    az group create --name <my-osm-bicep-aks-cluster-rg> --location <azure-region>
    

De belangrijkste bestanden en parameters Bicep-bestanden maken

  1. Maak een map om de benodigde Bicep-implementatiebestanden op te slaan. In het volgende voorbeeld wordt een map gemaakt met de naam bicep-osm-aks-addon en wijzigingen in de map:

    mkdir bicep-osm-aks-addon
    cd bicep-osm-aks-addon
    
  2. Maak het hoofdbestand en het parameterbestand.

    touch osm.aks.bicep && touch osm.aks.parameters.json
    
  3. Open het bestand osm.aks.bicep en kopieer het in de volgende inhoud:

    // https://learn.microsoft.com/azure/aks/troubleshooting#what-naming-restrictions-are-enforced-for-aks-resources-and-parameters
    @minLength(3)
    @maxLength(63)
    @description('Provide a name for the AKS cluster. The only allowed characters are letters, numbers, dashes, and underscore. The first and last character must be a letter or a number.')
    param clusterName string
    @minLength(3)
    @maxLength(54)
    @description('Provide a name for the AKS dnsPrefix. Valid characters include alphanumeric values and hyphens (-). The dnsPrefix can\'t include special characters such as a period (.)')
    param clusterDNSPrefix string
    param k8Version string
    param sshPubKey string
    param location string
    param adminUsername string
    
    
    resource aksCluster 'Microsoft.ContainerService/managedClusters@2021-03-01' = {
      name: clusterName
      location: location
      identity: {
        type: 'SystemAssigned'
      }
      properties: {
        kubernetesVersion: k8Version
        dnsPrefix: clusterDNSPrefix
        enableRBAC: true
        agentPoolProfiles: [
          {
            name: 'agentpool'
            count: 3
            vmSize: 'Standard_DS2_v2'
            osDiskSizeGB: 30
            osDiskType: 'Ephemeral'
            osType: 'Linux'
            mode: 'System'
          }
        ]
        linuxProfile: {
          adminUsername: adminUserName
          ssh: {
            publicKeys: [
              {
                keyData: sshPubKey
              }
            ]
          }
        }
        addonProfiles: {
            openServiceMesh: {
                enabled: true
                config: {}
          }
        }
      }
    }
    
  4. Open het osm.aks.parameters.json-bestand en kopieer het in de volgende inhoud. Zorg ervoor dat u de waarden van de implementatieparameter vervangt door uw eigen waarden.

    Notitie

    Het bestand osm.aks.parameters.json is een voorbeeld van een sjabloonparametersbestand dat nodig is voor de Bicep-implementatie. Werk de parameters specifiek voor uw implementatieomgeving bij. De parameters waarvoor u waarden moet toevoegen, zijn onder andere: clusterName, clusterDNSPrefix, k8Version, sshPubKey, , locationen adminUsername. Gebruik de az aks get-versions --location <region> opdracht om een lijst met ondersteunde Kubernetes-versies in uw regio te vinden.

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "clusterName": {
          "value": "<YOUR CLUSTER NAME HERE>"
        },
        "clusterDNSPrefix": {
          "value": "<YOUR CLUSTER DNS PREFIX HERE>"
        },
        "k8Version": {
          "value": "<YOUR SUPPORTED KUBERNETES VERSION HERE>"
        },
        "sshPubKey": {
          "value": "<YOUR SSH KEY HERE>"
        },
        "location": {
          "value": "<YOUR AZURE REGION HERE>"
        },
        "adminUsername": {
          "value": "<YOUR ADMIN USERNAME HERE>"
        }
      }
    }
    

De Bicep-bestanden implementeren

  1. Open een terminal en verifieer uw Azure-account voor de Azure CLI met behulp van de az login opdracht.

  2. Implementeer de Bicep-bestanden met behulp van de az deployment group create opdracht.

    az deployment group create \
      --name OSMBicepDeployment \
      --resource-group osm-bicep-test \
      --template-file osm.aks.bicep \
      --parameters @osm.aks.parameters.json
    

De installatie van de OSM-invoegtoepassing valideren

  1. Voer een query uit op de invoegtoepassingsprofielen van het cluster om de ingeschakelde status van de geïnstalleerde invoegtoepassingen te controleren. De volgende opdracht moet worden geretourneerd true:

    az aks list -g <my-osm-aks-cluster-rg> -o json | jq -r '.[].addonProfiles.openServiceMesh.enabled'
    
  2. Haal de status van de osm-controller op met behulp van de volgende kubectl opdrachten.

    kubectl get deployments -n kube-system --selector app=osm-controller
    kubectl get pods -n kube-system --selector app=osm-controller
    kubectl get services -n kube-system --selector app=osm-controller
    

Toegang tot de configuratie van de OSM-invoegtoepassing

U kunt de OSM-controller configureren met behulp van de OSM MeshConfig-resource en u kunt de configuratie-instellingen van de OSM-controller weergeven met behulp van de Azure CLI.

  • Bekijk de configuratie-instellingen van de OSM-controller met behulp van de kubectl get opdracht.

    kubectl get meshconfig osm-mesh-config -n kube-system -o yaml
    

    Hier volgt een voorbeeld van de uitvoer van MeshConfig:

    apiVersion: config.openservicemesh.io/v1alpha1
    kind: MeshConfig
    metadata:
      creationTimestamp: "0000-00-00A00:00:00A"
      generation: 1
      name: osm-mesh-config
      namespace: kube-system
      resourceVersion: "2494"
      uid: 6c4d67f3-c241-4aeb-bf4f-b029b08faa31
    spec:
      certificate:
        serviceCertValidityDuration: 24h
      featureFlags:
        enableEgressPolicy: true
        enableMulticlusterMode: false
        enableWASMStats: true
      observability:
        enableDebugServer: true
        osmLogLevel: info
        tracing:
          address: jaeger.osm-system.svc.cluster.local
          enable: false
          endpoint: /api/v2/spans
          port: 9411
      sidecar:
        configResyncInterval: 0s
        enablePrivilegedInitContainer: false
        envoyImage: mcr.microsoft.com/oss/envoyproxy/envoy:v1.18.3
        initContainerImage: mcr.microsoft.com/oss/openservicemesh/init:v0.9.1
        logLevel: error
        maxDataPlaneConnections: 0
        resources: {}
      traffic:
        enableEgress: true
        enablePermissiveTrafficPolicyMode: true
        inboundExternalAuthorization:
          enable: false
          failureModeAllow: false
          statPrefix: inboundExtAuthz
          timeout: 1s
        useHTTPSIngress: false
    

    U ziet dat enablePermissiveTrafficPolicyMode is geconfigureerd voor true. In OSM wordt de SMI-verkeersbeleidsmodus omzeild door het afdwingen van SMI-verkeersbeleid . In deze modus detecteert OSM automatisch services die deel uitmaken van de service-mesh. De gedetecteerde services hebben regels voor verkeersbeleid geprogrammeerd op elke Envoy-proxy-sidecar om communicatie tussen deze services mogelijk te maken.

    Waarschuwing

    Voordat u verdergaat, controleert u of uw missieve verkeersbeleidsmodus is ingesteld op true. Als dit niet het is, wijzigt u deze in true de volgende opdracht:

    kubectl patch meshconfig osm-mesh-config -n kube-system -p '{"spec":{"traffic":{"enablePermissiveTrafficPolicyMode":true}}}' --type=merge
    

Resources opschonen

Volgende stappen

In dit artikel hebt u gezien hoe u de OSM-invoegtoepassing op een AKS-cluster installeert en controleert of deze is geïnstalleerd en wordt uitgevoerd. Als de OSM-invoegtoepassing op uw cluster is geïnstalleerd, kunt u een voorbeeldtoepassing implementeren of een bestaande toepassing onboarden om met uw OSM mesh te werken.