Déployer le module complémentaire Open Service Mesh à l’aide de Bicep dans Azure Kubernetes Service (AKS)
Cet article montre comment déployer le module complémentaire OSM (Open Service Mesh) sur AKS (Azure Kubernetes Service) à l’aide d’un modèle Bicep.
Notes
Avec la mise hors service d’OSM (Open Service Mesh ) par la CNCF (Cloud Native Computing Foundation), nous vous recommandons d’identifier vos configurations OSM et de les migrer vers une configuration Istio équivalente. Pour plus d'informations sur la migration d'OSM vers Istio, consultez les conseils de migration des configurations Open Service Mesh (OSM) vers Istio.
Important
En fonction de la version de Kubernetes exécutée par votre cluster, le module complémentaire OSM installe une autre version d’OSM.
Version de Kubernetes | Version d’OSM installée |
---|---|
1.24.0 ou version ultérieure | 1.2.5 |
Entre 1.23.5 et 1.24.0 | 1.1.3 |
Antérieure à la version 1.23.5 | 1.0.0 |
Les versions antérieures d’OSM peuvent ne pas être disponibles pour l’installation ou être activement prises en charge, si la version AKS correspondante a atteint sa fin de vie. Vous pouvez consulter le Calendrier des versions d’AKS Kubernetes pour plus d’informations sur les fenêtres de prise en charge des versions d’AKS.
Bicep est un langage spécifique à un domaine qui utilise la syntaxe déclarative pour déployer des ressources Azure. Vous pouvez utiliser Bicep au lieu de créer des modèles Azure Resource Manager pour déployer vos ressources Azure d’infrastructure en tant que code.
Avant de commencer, vérifiez que les conditions préalables suivantes sont en place :
- Azure CLI version 2.20.0 ou ultérieure. Exécutez
az --version
pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI. - Une clé publique SSH utilisée pour le déploiement d’AKS. Pour plus d’informations, consultez Créer des clés SSH à l’aide d’Azure CLI.
- Visual Studio Code avec un terminal Bash.
- Extension Bicep de Visual Studio Code.
Pour le déploiement d’un nouveau cluster AKS, vous activez le module complémentaire OSM lors de la création du cluster. Les instructions suivantes utilisent un modèle Bicep générique qui déploie un cluster AKS à l’aide de disques éphémères et de l’interface réseau du conteneur kubenet
, puis active le module complémentaire OSM. Pour des scénarios de déploiement plus avancés, consultez Qu’est-ce que Bicep ?
Créez un groupe de ressources avec la commande
az group create
.az group create --name <my-osm-bicep-aks-cluster-rg> --location <azure-region>
Créez un répertoire pour stocker les fichiers de déploiement Bicep nécessaires. L’exemple suivant crée un répertoire nommé bicep-osm-aks-addon et apporte des modifications au répertoire :
mkdir bicep-osm-aks-addon cd bicep-osm-aks-addon
Créez le fichier principal et le fichier de paramètres.
touch osm.aks.bicep && touch osm.aks.parameters.json
Ouvrez le fichier osm.aks.bicep et copiez le contenu suivant :
// 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: {} } } } }
Ouvrez le fichier osm.aks.parameters.json et copiez le contenu suivant. Assurez-vous de remplacer les valeurs de paramètre de déploiement par vos propres valeurs.
Notes
Le fichier osm.aks.parameters.json est un exemple de fichier de paramètres de modèle nécessaire pour le déploiement Bicep. Mettez à jour les paramètres spécifiquement pour votre environnement de déploiement. Les paramètres dont vous avez besoin pour ajouter des valeurs afin d’inclure :
clusterName
,clusterDNSPrefix
,k8Version
,sshPubKey
,location
etadminUsername
. Pour obtenir la liste des versions Kubernetes prises en charge dans votre région, utilisez la commandeaz 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>" } } }
Ouvrez un terminal et authentifiez-vous auprès de votre compte Azure pour Azure CLI à l’aide de la commande
az login
.Déployez les fichiers Bicep à l’aide de la commande
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
Interrogez les profils de module complémentaire du cluster pour vérifier l’état activé des modules complémentaires installés. La commande suivante doit retourner
true
:az aks list -g <my-osm-aks-cluster-rg> -o json | jq -r '.[].addonProfiles.openServiceMesh.enabled'
Obtenez l’état d’osm-controller à l’aide des commandes
kubectl
suivantes.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
Vous pouvez configurer le contrôleur OSM à l’aide de la ressource OSM MeshConfig et afficher les paramètres de configuration du contrôleur OSM à l’aide d’Azure CLI.
Affichez les paramètres de configuration du contrôleur OSM à l’aide de la commande
kubectl get
.kubectl get meshconfig osm-mesh-config -n kube-system -o yaml
Voici un exemple de sortie de 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
Notez que
enablePermissiveTrafficPolicyMode
a la valeurtrue
. Dans OSM, le mode de stratégie de trafic permissive ignore l’application de la stratégie de trafic SMI. Dans ce mode, OSM découvre automatiquement les services qui font partie du maillage de services. Les services découverts auront des règles de stratégie de trafic programmées sur chaque side-car de proxy Envoy pour permettre les communications entre ces services.Avertissement
Avant de continuer, vérifiez que votre mode de stratégie de trafic permissive est défini sur
true
. Si ce n’est pas le cas, passez ce mode àtrue
à l’aide de la commande suivante :kubectl patch meshconfig osm-mesh-config -n kube-system -p '{"spec":{"traffic":{"enablePermissiveTrafficPolicyMode":true}}}' --type=merge
Lorsque vous n’avez plus besoin des ressources Azure, supprimez le groupe de ressources test du déploiement à l’aide de la commande
az group delete
.az group delete --name osm-bicep-test
Vous pouvez également désinstaller le module complémentaire OSM et les ressources associées de votre cluster. Pour plus d’informations, consultez Désinstaller le module complémentaire Open Service Mesh de votre cluster AKS.
Cet article vous a montré comment installer le module complémentaire OSM sur un cluster AKS, puis comment vérifier qu’il est installé et en cours d’exécution. Avec le module complémentaire OSM installé sur votre cluster, vous pouvez déployer un exemple d’application ou intégrer une application existante pour utiliser votre maillage OSM.
Commentaires sur Azure Kubernetes Service
Azure Kubernetes Service est un projet open source. Sélectionnez un lien pour fournir des commentaires :