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 Azure CLI versie 2.20.0 of hoger. Voer
az --version
uit om de versie te bekijken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren. - Een openbare SSH-sleutel die wordt gebruikt voor het implementeren van AKS. Zie SSH-sleutels maken met behulp van de Azure CLI voor meer informatie.
- Visual Studio Code met een Bash-terminal.
- De Visual Studio Code Bicep-extensie.
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
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
Maak het hoofdbestand en het parameterbestand.
touch osm.aks.bicep && touch osm.aks.parameters.json
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: {} } } } }
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
, ,location
enadminUsername
. Gebruik deaz 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
Open een terminal en verifieer uw Azure-account voor de Azure CLI met behulp van de
az login
opdracht.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
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'
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 voortrue
. 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 intrue
de volgende opdracht:kubectl patch meshconfig osm-mesh-config -n kube-system -p '{"spec":{"traffic":{"enablePermissiveTrafficPolicyMode":true}}}' --type=merge
Resources opschonen
Wanneer u de Azure-resources niet meer nodig hebt, verwijdert u de testresourcegroep van de implementatie met behulp van de
az group delete
opdracht.az group delete --name osm-bicep-test
U kunt ook de OSM-invoegtoepassing en de gerelateerde resources uit uw cluster verwijderen. Zie De Open Service Mesh-invoegtoepassing verwijderen uit uw AKS-cluster voor meer informatie.
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.
Azure Kubernetes Service