Distribuera Open Service Mesh-tillägget med Bicep i Azure Kubernetes Service (AKS)
Den här artikeln visar hur du distribuerar tillägget Open Service Mesh (OSM) till Azure Kubernetes Service (AKS) med hjälp av en Bicep-mall .
Kommentar
Med tillbakadragandet av Open Service Mesh (OSM) av Cloud Native Computing Foundation (CNCF) rekommenderar vi att du identifierar dina OSM-konfigurationer och migrerar dem till en motsvarande Istio-konfiguration. Information om hur du migrerar från OSM till Istio finns i Migreringsvägledning för OSM-konfigurationer (Open Service Mesh) till Istio.
Viktigt!
Baserat på vilken version av Kubernetes klustret körs installerar OSM-tillägget en annan version av OSM.
Kubernetes-version | OSM-version installerad |
---|---|
1.24.0 eller senare | 1.2.5 |
Mellan 1.23.5 och 1.24.0 | 1.1.3 |
Under 1.23.5 | 1.0.0 |
Äldre versioner av OSM kanske inte är tillgängliga för installation eller stöds aktivt om motsvarande AKS-version har nått slutet av livslängden. Du kan kontrollera AKS Kubernetes-versionskalendern för information om AKS-versionssupportfönster.
Bicep är ett domänspecifikt språk som använder deklarativ syntax för att distribuera Azure-resurser. Du kan använda Bicep i stället för att skapa Azure Resource Manager-mallar för att distribuera dina Azure-resurser med infrastruktur som kod.
Innan du börjar
Innan du börjar kontrollerar du att du har följande förutsättningar:
- Azure CLI version 2.20.0 eller senare. Kör
az --version
för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI. - En offentlig SSH-nyckel som används för att distribuera AKS. Mer information finns i Skapa SSH-nycklar med hjälp av Azure CLI.
- Visual Studio Code med en Bash-terminal.
- Visual Studio Code Bicep-tillägget.
Installera OSM-tillägget för ett nytt AKS-kluster med hjälp av Bicep
För distribution av ett nytt AKS-kluster aktiverar du OSM-tillägget när klustret skapas. Följande instruktioner använder en allmän Bicep-mall som distribuerar ett AKS-kluster med hjälp av tillfälliga diskar och kubenet
containernätverksgränssnittet och aktiverar sedan OSM-tillägget. Mer avancerade distributionsscenarier finns i Vad är Bicep?
Skapa en resursgrupp
Skapa en resursgrupp med kommandot
az group create
.az group create --name <my-osm-bicep-aks-cluster-rg> --location <azure-region>
Skapa huvud- och parametrarna Bicep-filer
Skapa en katalog för att lagra nödvändiga Bicep-distributionsfiler. I följande exempel skapas en katalog med namnet bicep-osm-aks-addon och ändringar i katalogen:
mkdir bicep-osm-aks-addon cd bicep-osm-aks-addon
Skapa huvudfilen och parameterfilen.
touch osm.aks.bicep && touch osm.aks.parameters.json
Öppna filen osm.aks.bicep och kopiera i följande innehåll:
// 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: {} } } } }
Öppna filen osm.aks.parameters.json och kopiera i följande innehåll. Se till att du ersätter värdena för distributionsparametern med dina egna värden.
Kommentar
Filen osm.aks.parameters.json är ett exempel på mallparametrar som behövs för Bicep-distributionen. Uppdatera parametrarna specifikt för distributionsmiljön. De parametrar som du behöver lägga till värden för är:
clusterName
,clusterDNSPrefix
,k8Version
,sshPubKey
,location
ochadminUsername
. Om du vill hitta en lista över Kubernetes-versioner som stöds i din region använder duaz aks get-versions --location <region>
kommandot .{ "$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>" } } }
Distribuera Bicep-filerna
Öppna en terminal och autentisera till ditt Azure-konto för Azure CLI med hjälp av
az login
kommandot .Distribuera Bicep-filerna med kommandot
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
Verifiera installationen av OSM-tillägget
Fråga tilläggsprofilerna i klustret för att kontrollera det aktiverade tillståndet för de installerade tilläggen. Följande kommando bör returnera
true
:az aks list -g <my-osm-aks-cluster-rg> -o json | jq -r '.[].addonProfiles.openServiceMesh.enabled'
Hämta status för osm-controllern med hjälp av följande
kubectl
kommandon.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
Få åtkomst till OSM-tilläggskonfigurationen
Du kan konfigurera OSM-styrenheten med hjälp av OSM MeshConfig-resursen och du kan visa OSM-styrenhetens konfigurationsinställningar med hjälp av Azure CLI.
Visa OSM-kontrollantens konfigurationsinställningar med kommandot
kubectl get
.kubectl get meshconfig osm-mesh-config -n kube-system -o yaml
Här är ett exempel på utdata från 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
Observera att
enablePermissiveTrafficPolicyMode
är konfigurerad förtrue
. I OSM kringgår tillåtande trafikprincipläge SMI-trafikprinciptvingande . I det här läget identifierar OSM automatiskt tjänster som ingår i tjänstnätet. De identifierade tjänsterna kommer att ha trafikprincipregler programmerade på varje envoyproxy-sidovagn för att tillåta kommunikation mellan dessa tjänster.Varning
Innan du fortsätter kontrollerar du att ditt tillåtande trafikprincipläge är inställt på
true
. Om det inte är det ändrar du det tilltrue
med hjälp av följande kommando:kubectl patch meshconfig osm-mesh-config -n kube-system -p '{"spec":{"traffic":{"enablePermissiveTrafficPolicyMode":true}}}' --type=merge
Rensa resurser
När du inte längre behöver Azure-resurserna tar du bort distributionens testresursgrupp med kommandot
az group delete
.az group delete --name osm-bicep-test
Du kan också avinstallera OSM-tillägget och relaterade resurser från klustret. Mer information finns i Avinstallera open service mesh-tillägget från ditt AKS-kluster.
Nästa steg
Den här artikeln visar hur du installerar OSM-tillägget i ett AKS-kluster och kontrollerar att det är installerat och körs. Med OSM-tillägget installerat i klustret kan du distribuera ett exempelprogram eller registrera ett befintligt program för att arbeta med ditt OSM-nät.
Azure Kubernetes Service