Installare il componente aggiuntivo Open Service Mesh (OSM) usando l'interfaccia della riga di comando di Azure

Questo articolo illustra come installare il componente aggiuntivo Open Service Mesh (OSM) in un cluster del servizio Azure Kubernetes. Il componente aggiuntivo OSM installa la mesh OSM nel cluster. La mesh OSM è una mesh di servizi che fornisce la gestione del traffico, l'imposizione dei criteri e la raccolta di dati di telemetria per le applicazioni. Per altre informazioni sulla mesh OSM, vedere Open Service Mesh.

Importante

A partire dal 30 settembre 2027, il servizio Azure Kubernetes non supporta più il componente aggiuntivo Open Service Mesh (OSM). Il progetto Open Service Mesh upstream è stato ritirato.

Se il cluster usa il componente aggiuntivo OSM, eseguire la migrazione al componente aggiuntivo Istio prima della data di fine del supporto. Questo avviso di ritiro si applica solo al componente aggiuntivo OSM gestito e non riguarda le installazioni open source o autogestite della mesh di servizi. Per la procedura di migrazione, vedere Indicazioni sulla migrazione dal componente aggiuntivo OSM al componente aggiuntivo Istio. Per rimanere aggiornati sugli annunci e gli aggiornamenti di AKS, vedi le note sulla versione di AKS.

Importante

In base alla versione di Kubernetes in esecuzione, il componente aggiuntivo OSM installa una versione diversa di OSM.

Versione di Kubernetes Versione di OSM installata
1.24.0 o versione successiva 1.2.5
Tra 1.23.5 e 1.24.0 1.1.3
Inferiore a 1.23.5 1.0.0

Le versioni precedenti di OSM potrebbero non essere disponibili per l'installazione o essere supportate attivamente se la versione del servizio Azure Kubernetes corrispondente ha raggiunto la fine del ciclo di vita. Per informazioni sulle finestre di supporto della versione del servizio Azure Kubernetes, vedere il calendario della versione del servizio Azure Kubernetes .

Prerequisiti

Installare il componente aggiuntivo OSM nel cluster

  1. Se non ne è già disponibile uno, creare un gruppo di risorse di Azure usando il comando az group create.

    az group create --name myResourceGroup --location eastus
    
  2. Crea un nuovo cluster AKS con il componente aggiuntivo OSM installato utilizzando il comando az aks create e specifica open-service-mesh per il parametro --enable-addons.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --enable-addons open-service-mesh \
        --generate-ssh-keys
    

Importante

Non è possibile abilitare il componente aggiuntivo OSM in un cluster esistente se una mesh OSM si trova già nel cluster. Disinstallare tutte le mesh OSM esistenti nel cluster prima di abilitare il componente aggiuntivo OSM.

Quando si esegue l'installazione in un cluster esistente, usare il comando az aks enable-addons. Il codice seguente visualizza un esempio:

az aks enable-addons \
 --resource-group myResourceGroup \
 --name myAKSCluster \
 --addons open-service-mesh

Ottenere le credenziali per il cluster

  • Ottieni le credenziali per il tuo cluster AKS tramite il comando az aks get-credentials.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    

Verificare che il componente aggiuntivo OSM sia installato nel cluster

  • Verificare che il componente aggiuntivo OSM sia installato nel cluster usando il comando az aks show con e specificare 'addonProfiles.openServiceMesh.enabled' per il parametro --query. Nell'output, in addonProfiles, il valore enabled deve essere visualizzato come true per openServiceMesh.

    az aks show --resource-group myResourceGroup --name myAKSCluster  --query 'addonProfiles.openServiceMesh.enabled'
    

Verificare che la mesh OSM sia in esecuzione nel cluster

  1. Verificare la versione, lo stato e la configurazione della mesh OSM in esecuzione nel cluster usando il comando kubectl get deployment, e visualizzare la versione dell'immagine della distribuzione osm-controller.

    kubectl get deployment -n kube-system osm-controller -o=jsonpath='{$.spec.template.spec.containers[:1].image}'
    

    L'output di esempio seguente mostra la versione 0.11.1 della mesh OSM:

    mcr.microsoft.com/oss/openservicemesh/osm-controller:v0.11.1
    
  2. Verificare lo stato dei componenti OSM in esecuzione nel cluster usando i comandi kubectl seguenti per visualizzare lo stato delle distribuzioni, dei pod e dei servizi app.kubernetes.io/name=openservicemesh.io.

    kubectl get deployments -n kube-system --selector app.kubernetes.io/name=openservicemesh.io
    kubectl get pods -n kube-system --selector app.kubernetes.io/name=openservicemesh.io
    kubectl get services -n kube-system --selector app.kubernetes.io/name=openservicemesh.io
    

    Importante

    Se uno stato di qualsiasi pod è diverso da Running, ad esempio Pending, il cluster potrebbe non avere risorse sufficienti per eseguire OSM. Esaminare il ridimensionamento per il cluster, ad esempio il numero di nodi e lo SKU della macchina virtuale, prima di continuare a usare OSM nel cluster.

  3. Verificare la configurazione della mesh OSM usando il comando kubectl get meshconfig.

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

    L'output di esempio seguente mostra la configurazione di una mesh OSM:

    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
    

    L'output di esempio mostra enablePermissiveTrafficPolicyMode: true, il che significa che in OSM è abilitata la modalità dei criteri di traffico permissiva. Con questa modalità abilitata nella mesh OSM:

    • L'applicazione dei criteri di traffico SMI viene ignorata.
    • OSM individua automaticamente i servizi che fanno parte della mesh di servizi.
    • OSM crea regole dei criteri di traffico in ogni sidecar proxy Envoy per poter comunicare con questi servizi.

Elimina il cluster

  • Quando il cluster non è più necessario, è possibile eliminarlo usando il comando az group delete, che rimuove il gruppo di risorse, il cluster e tutte le risorse correlate.

    az group delete --name myResourceGroup --yes --no-wait
    

Nota

In alternativa, è possibile disinstallare il componente aggiuntivo OSM e le risorse correlate dal cluster. Per altre informazioni, vedi Disinstalla il componente aggiuntivo Open Service Mesh dal cluster AKS.

Passaggi successivi

Questo articolo ha illustrato come installare il componente aggiuntivo OSM in un cluster del servizio Azure Kubernetes e verificare che sia installato e in esecuzione. Con il componente aggiuntivo OSM installato nel cluster, è possibile distribuire un'applicazione di esempio o eseguire l'onboarding di un'applicazione esistente per lavorare con la mesh OSM.