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.

Nota

Con il ritiro di Open Service Mesh (OSM) dalla Cloud Native Computing Foundation (CNF), è consigliabile identificare le configurazioni OSM e eseguirne la migrazione a una configurazione Istio equivalente. Per informazioni sulla migrazione da OSM a Istio, vedere Indicazioni sulla migrazione per le configurazioni Open Service Mesh (OSM) a Istio.

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. È possibile controllare il calendario della versione del servizio Azure Kubernetes per informazioni sulle finestre di supporto 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. Creare un nuovo cluster del servizio Azure Kubernetes con il componente aggiuntivo OSM installato usando il comando az aks create e specificare 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

  • Ottenere le credenziali per il cluster del servizio Azure Kubernetes usando 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 OSM ha abilitato la modalità dei criteri del traffico permissivo. 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.

Eliminare 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, vedere Disinstallare il componente aggiuntivo Open Service Mesh dal cluster del servizio Azure Kubernetes.

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.