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
- Una sottoscrizione di Azure. Se non hai una sottoscrizione Azure, crea un account gratuito.
- L'interfaccia della riga di comando di Azure installata.
Installare il componente aggiuntivo OSM nel cluster
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
Creare un nuovo cluster del servizio Azure Kubernetes con il componente aggiuntivo OSM installato usando il comando
az aks create
e specificareopen-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, inaddonProfiles
, il valoreenabled
deve essere visualizzato cometrue
peropenServiceMesh
.az aks show --resource-group myResourceGroup --name myAKSCluster --query 'addonProfiles.openServiceMesh.enabled'
Verificare che la mesh OSM sia in esecuzione nel cluster
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
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 serviziapp.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 esempioPending
, 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.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.
Azure Kubernetes Service