Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come distribuire il componente aggiuntivo Open Service Mesh (OSM) nel servizio Azure Kubernetes usando un modello Bicep .
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 il supporto attivo se la versione corrispondente del servizio Azure Kubernetes 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 .
Bicep è un linguaggio specifico di dominio che usa la sintassi dichiarativa per distribuire le risorse di Azure. È possibile usare Bicep al posto della creazione di modelli di Azure Resource Manager per distribuire le risorse di Azure di infrastruttura come codice.
Operazioni preliminari
Prima di iniziare, verificare di aver soddisfatto i prerequisiti seguenti:
- interfaccia della riga di comando di Azure versione 2.20.0 o versione successiva. Eseguire
az --versionper trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure. - Una chiave pubblica SSH usata per distribuire AKS. Per altre informazioni, vedere Creare chiavi SSH utilizzando l'interfaccia della riga di comando di Azure.
- Visual Studio Code con un terminale Bash.
- L’estensione Bicep di Visual Studio Code.
Installare il componente aggiuntivo OSM per un nuovo cluster AKS usando Bicep
Per distribuire un nuovo cluster AKS, si abilita il componente aggiuntivo OSM durante la creazione del cluster. Le istruzioni seguenti utilizzano un modello Bicep generico che distribuisce un cluster AKS usando dischi effimeri e l'interfaccia di rete dei contenitori kubenet, quindi abilitano il componente aggiuntivo OSM. Per scenari di distribuzione più avanzati, vedere Che cos'è Bicep?
Creare un gruppo di risorse
Creare un gruppo di risorse usando il comando
az group create.az group create --name <my-osm-bicep-aks-cluster-rg> --location <azure-region>
Creare i file Bicep principali e dei parametri
Creare una directory per archiviare i file di distribuzione Bicep necessari. L'esempio seguente crea una directory denominata bicep-osm-aks-addon e passa alla directory:
mkdir bicep-osm-aks-addon cd bicep-osm-aks-addonCreare il file principale e il file parametri.
touch osm.aks.bicep && touch osm.aks.parameters.jsonAprire il file osm.aks.bicep e copiarlo nel contenuto seguente:
// 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: {} } } } }Aprire il file osm.aks.parameters.json e copiarlo nel contenuto seguente. Assicurarsi di sostituire i valori dei parametri di distribuzione con i propri valori.
Nota
Il file osm.aks.parameters.json è un file di parametri modello di esempio necessario per la distribuzione Bicep. Aggiornare i parametri in modo specifico per l'ambiente di distribuzione. I parametri per cui è necessario aggiungere valori includono:
clusterName,clusterDNSPrefix,k8VersionsshPubKey,location, eadminUsername. Per trovare un elenco delle versioni di Kubernetes supportate nell'area, usare il comandoaz aks get-versions --location <region>.{ "$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>" } } }
Distribuire i file Bicep
Aprire un terminale ed eseguire l'autenticazione all'account Azure per l'interfaccia della riga di comando di Azure usando il comando
az login.Distribuisci i file Bicep con il comando
az deployment group create.az deployment group create \ --name OSMBicepDeployment \ --resource-group osm-bicep-test \ --template-file osm.aks.bicep \ --parameters @osm.aks.parameters.json
Convalidare l'installazione del componente aggiuntivo OSM
Eseguire una query sui profili del componente aggiuntivo del cluster per controllare lo stato abilitato dei componenti aggiuntivi installati. Il comando seguente deve restituire
true:az aks list -g <my-osm-aks-cluster-rg> -o json | jq -r '.[].addonProfiles.openServiceMesh.enabled'Ottenere lo stato di osm-controller usando i comandi seguenti
kubectl.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
Accedere alla configurazione del componente aggiuntivo OSM
È possibile configurare il controller OSM usando la risorsa MeshConfig OSM ed è possibile visualizzare le impostazioni di configurazione del controller OSM usando l'interfaccia della riga di comando di Azure.
Visualizzare le impostazioni di configurazione del controller OSM usando il comando
kubectl get.kubectl get meshconfig osm-mesh-config -n kube-system -o yamlEcco un esempio di output di 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: falseSi noti che
enablePermissiveTrafficPolicyModeè configurato pertrue. In OSM la modalità dei criteri di traffico permissiva ignora l'applicazione dei criteri di traffico SMI. In questa modalità, OSM individua automaticamente i servizi che fanno parte di mesh di servizi. I servizi individuati avranno regole di criteri di traffico programmate su ogni sidecar del proxy Envoy per consentire le comunicazioni tra questi servizi.Avviso
Prima di procedere, verificare che la modalità della policy di traffico permissiva sia impostata su
true. Se così non fosse, impostalo sutruecon il comando seguente:kubectl patch meshconfig osm-mesh-config -n kube-system -p '{"spec":{"traffic":{"enablePermissiveTrafficPolicyMode":true}}}' --type=merge
Pulire le risorse
Quando le risorse di Azure non sono più necessarie, eliminare il gruppo di risorse di test della distribuzione usando il comando
az group delete.az group delete --name osm-bicep-testIn 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.