Bereitstellen des Open Service Mesh-Add-ons mit Bicep in Azure Kubernetes Service (AKS)
In diesem Artikel erfahren Sie, wie Sie das OSM-Add-On (Open Service Mesh) mithilfe einer Bicep-Vorlage in AKS (Azure Kubernetes Service) bereitstellen.
Hinweis
Mit der Einstellung von Open Service Mesh (OSM) durch die Cloud Native Computing Foundation (CNCF) empfehlen wir, Ihre OSM-Konfigurationen zu identifizieren und zu einer entsprechenden Istio-Konfiguration zu migrieren. Informationen zum Migrieren von OSM zu Istio finden Sie im Migrationsleitfaden für Open Service Mesh (OSM)-Konfigurationen zu Istio.
Wichtig
Je nach der Version von Kubernetes, die Ihr Cluster ausführt, installiert das OSM-Add-On eine andere Version von OSM:
Kubernetes-Version | Installierte OSM-Version |
---|---|
1.24.0 oder höher | 1.2.5 |
Zwischen 1.23.5 und 1.24.0 | 1.1.3 |
Niedriger als 1.23.5 | 1.0.0 |
Ältere Versionen von OSM sind möglicherweise nicht für die Installation verfügbar oder werden u. U. nicht aktiv unterstützt, wenn die entsprechende AKS-Version das Ende der Lebensdauer erreicht hat. Informationen zu Supportfenstern für AKS-Versionen finden Sie im Releasekalender für AKS Kubernetes.
Bicep ist eine domänenspezifische Sprache, die eine deklarative Syntax zur Bereitstellung von Azure-Ressourcen verwendet. Sie können Bicep verwenden, statt Azure Resource Manager-Vorlagen zu erstellen, um Ihre Azure-Ressourcen mit Infrastructure-as-Code bereitzustellen.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind:
- Azure CLI-Version 2.20.0 oder höher. Führen Sie
az --version
aus, um die Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI. - Ein öffentlicher SSH-Schlüssel, der für die Bereitstellung von AKS verwendet wird. Weitere Informationen finden Sie unter Erstellen von SSH-Schlüsseln mithilfe der Azure CLI.
- Visual Studio Code mit einem Bash-Terminal.
- Die Bicep-Erweiterung für Visual Studio Code.
Installieren des OSM-Add-Ons für einen neuen AKS-Cluster mit Bicep
Zur Bereitstellung eines neuen AKS-Clusters aktivieren Sie das OSM-Add-On bei der Clustererstellung. In den folgenden Anweisungen wird eine generische Bicep-Vorlage verwendet, die einen AKS-Cluster mithilfe kurzlebiger Datenträger und der Containernetzwerkschnittstelle kubenet
bereitstellt und dann das OSM-Add-On aktiviert. Erweiterte Bereitstellungsszenarien finden Sie unter Was ist Bicep?
Erstellen einer Ressourcengruppe
Erstellen Sie mit dem Befehl
az group create
eine Ressourcengruppe.az group create --name <my-osm-bicep-aks-cluster-rg> --location <azure-region>
Erstellen Sie die Haupt- und Parameter-Bicep-Dateien
Erstellen Sie ein Verzeichnis zum Speichern der erforderlichen Bicep-Bereitstellungsdateien. Das folgende Beispiel erstellt ein Verzeichnis mit dem Namen bicep-osm-aks-addon und wechselt in das Verzeichnis:
mkdir bicep-osm-aks-addon cd bicep-osm-aks-addon
Erstellen Sie die Standard-Datei und die Parameterdatei.
touch osm.aks.bicep && touch osm.aks.parameters.json
Öffnen Sie die Datei osm.aks.bicep und kopieren Sie den folgenden Inhalt in die Datei:
// 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: {} } } } }
Öffnen Sie die Datei osm.aks.parameters.json und kopieren Sie den folgenden Inhalt in die Datei. Ersetzen Sie die Parameterwerte der Bereitstellung durch Ihre eigenen Werte.
Hinweis
Die Datei osm.aks.parameters.json ist eine Beispiel-Parameterdatei, die für die Bereitstellung von Bicep benötigt wird. Aktualisieren Sie die angegebenen Parameter speziell für Ihre Bereitstellungsumgebung. Zu den Parametern, für die Sie Werte hinzufügen müssen, gehören:
clusterName
,clusterDNSPrefix
,k8Version
,sshPubKey
,location
undadminUsername
. Eine Liste der in Ihrer Region unterstützten Kubernetes-Versionen finden Sie mit dem Befehlaz 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>" } } }
Bereitstellen der Bicep-Dateien
Öffnen Sie ein Terminal und authentifizieren Sie sich mit dem Befehl
az login
bei Ihrem Azure-Konto für die Azure-CLI.Stellen Sie die Bicep-Dateien mithilfe des Befehls
az deployment group create
bereit.az deployment group create \ --name OSMBicepDeployment \ --resource-group osm-bicep-test \ --template-file osm.aks.bicep \ --parameters @osm.aks.parameters.json
Überprüfen der Installation des OSM-Add-Ons
Fragen Sie die Add-On-Profile des Clusters ab, um den aktivierten Status der installierten Add-Ons zu überprüfen. Der folgende Befehl sollte
true
zurückgeben:az aks list -g <my-osm-aks-cluster-rg> -o json | jq -r '.[].addonProfiles.openServiceMesh.enabled'
Sie erhalten den Status des OSM-Controllers über die folgenden
kubectl
-Befehle.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
Zugreifen auf die OSM-Add-On-Konfiguration
Sie können den OSM-Controller mithilfe der OSM MeshConfig-Ressource konfigurieren, und Sie können die Konfigurationseinstellungen des OSM-Controllers mithilfe der Azure CLI anzeigen.
Zeigen Sie die Konfigurationseinstellungen des OSM-Controllers mit dem Befehl
kubectl get
an.kubectl get meshconfig osm-mesh-config -n kube-system -o yaml
Hier sehen Sie eine Beispielausgabe von 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
Beachten Sie, dass
enablePermissiveTrafficPolicyMode
alstrue
konfiguriert ist. In OSM wird die Erzwingung von SMI-Datenverkehrsrichtlinien durch den permissiven Richtlinienmodus für den Datenverkehr umgangen. In diesem Modus entdeckt OSM automatisch die Dienste, die Teil des Dienstnetzes sind. Die entdeckten Dienste verfügen über Datenverkehrsrichtlinien, die auf jedem Envoy-Proxy-Sidecar programmiert sind, um die Kommunikation zwischen diesen Diensten zu ermöglichen.Warnung
Bevor Sie fortfahren, überprüfen Sie, ob der permissive Richtlinienmodus für den Datenverkehr auf
true
festgelegt ist. Falls nicht, ändern Sie ihn mithilfe des folgenden Befehls intrue
:kubectl patch meshconfig osm-mesh-config -n kube-system -p '{"spec":{"traffic":{"enablePermissiveTrafficPolicyMode":true}}}' --type=merge
Bereinigen von Ressourcen
Wenn Sie die Azure-Ressourcen nicht mehr benötigen, löschen Sie die Ressourcengruppe für das Testen der Bereitstellung mit dem Befehl
az group delete
.az group delete --name osm-bicep-test
Alternativ können Sie das OSM-Add-On und die zugehörigen Ressourcen aus Ihrem Cluster deinstallieren. Weitere Informationen finden Sie unter Deinstallieren des Open Service Mesh-Add-Ons aus Ihrem AKS-Cluster.
Nächste Schritte
In diesem Artikel konnten Sie erfahren, wie Sie das OSM-Add-On in einem AKS-Cluster installieren und dann überprüfen, ob es installiert wurde und ausgeführt wird. Mit dem installierten OSM-Add-On auf Ihrem Cluster können Sie eine Beispielanwendung bereitstellen oder das Onboarding einer vorhandenen Anwendung durchführen, um mit Ihrem OSM-Mesh zu arbeiten.
Azure Kubernetes Service