Bereitstellen des Open Service Mesh-Add-ons mit Bicep in Azure Kubernetes Service (AKS)
Artikel
In diesem Artikel erfahren Sie, wie Sie das OSM-Add-On (Open Service Mesh) mithilfe einer Bicep-Vorlage in AKS (Azure Kubernetes Service) bereitstellen.
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.
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.
Ö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 und adminUsername. Eine Liste der in Ihrer Region unterstützten Kubernetes-Versionen finden Sie mit dem Befehl az aks get-versions --location <region>.
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:
Beachten Sie, dass enablePermissiveTrafficPolicyMode als truekonfiguriert 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 in true:
Die Quelle für diesen Inhalt finden Sie auf GitHub, wo Sie auch Issues und Pull Requests erstellen und überprüfen können. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.
Feedback zu Azure Kubernetes Service
Azure Kubernetes Service ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben:
Azure Microsoft.ContainerService/managedClusters-Syntax und -Eigenschaften, die in Azure Resource Manager-Vorlagen für die Bereitstellung der Ressource verwendet werden sollen. Neueste API-Version
Erfahren Sie mehr über Zugriff und Identität in Azure Kubernetes Service (AKS), z. B. zu den Bereichen Integration von Microsoft Entra, rollenbasierte Kubernetes-Zugriffssteuerung (Kubernetes RBAC) sowie Rollen und Bindungen.
Erfahren Sie, wie Sie den CustomPrivateDNSZoneMissingPermissionError-Fehler beheben, der auftritt, wenn Sie versuchen, einen Azure Kubernetes Service (AKS)-Cluster zu erstellen oder zu aktualisieren.