Intégrations avec Open service Mesh sur Azure Kubernetes Service (AKS)
Le module complémentaire Open service Mesh (OSM) s’intègre aux fonctionnalités fournies par Azure ainsi qu’à quelques projets open source.
Remarque
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
Les intégrations avec des projets open source ne sont pas couvertes par la stratégie de support AKS.
Entrée
L’entrée permet de router le trafic externe au maillage vers des services au sein du maillage. Avec OSM, vous pouvez configurer la plupart des solutions d’entrée pour fonctionner avec votre maillage, mais OSM fonctionne mieux avec l’une des solutions suivantes :
Notes
À ce stade, le contrôleur d’entrée de passerelle Azure (AGIC) fonctionne uniquement pour les back-ends HTTP. Si vous configurez OSM pour utiliser AGIC, AGIC ne sera pas utilisé pour d’autres back-ends tels que HTTPS et mTLS.
Utilisez le contrôleur d’entrée Azure Gateway (AGIC) avec le module complémentaire OSM pour l’entrée HTTP
Important
Vous ne pouvez pas configurer Azure Gateway Ingress Controller (AGIC) pour les entrées HTTPS.
Créez un espace de noms et déployer le service d’application
Installation du contrôleur d’entrée AGIC.
Créez un espace de noms pour le service d’application à l’aide de la commande
kubectl create ns
.kubectl create ns httpbin
Ajoutez l’espace de noms au maillage à l’aide de la
osm namespace add
commande CLI OSM.osm namespace add httpbin
Déployez le service d’application dans l’espace de noms à l’aide de la commande
kubectl apply
.export RELEASE_BRANCH=release-v1.2 kubectl apply -f https://raw.githubusercontent.com/openservicemesh/osm-docs/$RELEASE_BRANCH/manifests/samples/httpbin/httpbin.yaml -n httpbin
Vérifiez que les pods sont opérationnels et que le sidecar envoyé est injecté à l’aide de la commande
kubectl get pods
.kubectl get pods -n httpbin
Vous devez obtenir un résultat semblable à l’exemple de sortie qui suit :
NAME READY STATUS RESTARTS AGE httpbin-7c6464475-9wrr8 2/2 Running 0 6d20h
Répertoriez les détails du service à l’aide de la commande
kubectl get svc
.kubectl get svc -n httpbin
Vous devez obtenir un résultat semblable à l’exemple de sortie qui suit :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE httpbin ClusterIP 10.0.92.135 <none> 14001/TCP 6d20h
Déployez les configurations d’entrée et vérifier l’accès au service d’application
Ensuite, déployez les configurations
Ingress
etIngressBackend
suivantes pour permettre aux clients externes d’accéder au servicehttpbin
sur le port14001
à l’aide de la commandekubectl apply
.kubectl apply -f <<EOF apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: httpbin namespace: httpbin annotations: kubernetes.io/ingress.class: azure/application-gateway spec: rules: - http: paths: - path: / pathType: Prefix backend: service: name: httpbin port: number: 14001 --- kind: IngressBackend apiVersion: policy.openservicemesh.io/v1alpha1 metadata: name: httpbin namespace: httpbin spec: backends: - name: httpbin port: number: 14001 # targetPort of httpbin service protocol: http sources: - kind: IPRange name: 10.0.0.0/8 EOF
Vérifiez que l’objet
Ingress
a été correctement déployé à l’aide de la commandekubectl get ingress
et notez l’adresse IP externe.kubectl get ingress -n httpbin
Vous devez obtenir un résultat semblable à l’exemple de sortie qui suit :
NAME CLASS HOSTS ADDRESS PORTS AGE httpbin <none> * 20.85.173.179 80 6d20h
Vérifiez que l’objet
IngressBackend
a été déployé avec succès à l’aide de la commandekubectl get ingressbackend
.kubectl get ingressbackend -n httpbin
Vous devez obtenir un résultat semblable à l’exemple de sortie qui suit :
NAME STATUS httpbin committed
Vérifiez que vous pouvez accéder au service
httpbin
à l’aide de l’adresse IP externe du service d’entrée et de la commandecurl
.curl -sI http://<external-ip>/get
Vérifiez que vous recevez une réponse avec
status 200
.
Observation des métriques
L’observation des indicateurs de performance vous permet d’afficher les mesures de votre maillage et les déploiements de votre maillage. Avec OSM, vous pouvez utiliser Prometheus et Grafana pour l’observation des métriques, mais ces intégrations ne sont pas couvertes par la stratégie de support AKS.
Vous pouvez également effectuer une intégration OSM à Azure Monitor.
Avant de pouvoir activer les indicateurs de performance sur votre maillage à intégrer à Azure Monitor, vérifiez que vous disposez des conditions préalables suivantes :
- Activez Azure Monitor sur votre cluster.
- Activez le module complémentaire OSM sur votre cluster AKS.
- Intégrez vos espaces de noms d'application dans le maillage.
Activez les indicateurs de performance pour un espace de noms dans le maillage à l’aide de la commande
osm metrics enable
.osm metrics enable --namespace myappnamespace
Créez un Configmap dans l'espace de noms
kube-system
qui permet à Azure Monitor de surveiller vos espaces de noms. Par exemple, créez unmonitor-configmap.yaml
avec les éléments suivants pour surveillermyappnamespace
:kind: ConfigMap apiVersion: v1 data: schema-version: v1 config-version: ver1 osm-metric-collection-configuration: |- # OSM metric collection settings [osm_metric_collection_configuration] [osm_metric_collection_configuration.settings] # Namespaces to monitor monitor_namespaces = ["myappnamespace"] metadata: name: container-azm-ms-osmconfig namespace: kube-system
Appliquez la ConfigMap avec la commande
kubectl apply
.kubectl apply -f monitor-configmap.yaml
Accédez au portail Microsoft Azure et sélectionnez votre cluster AKS.
Sous Supervision, sélectionnez Journaux d’activité.
Dans la section Surveillance, interrogez le tableau
InsightsMetrics
pour afficher les indicateurs de performance dans les espaces de noms activés. Par exemple, la requête suivante affiche les métriques d'envoyé pour l'espace de noms par défaut :InsightsMetrics | where Name contains "envoy" | extend t=parse_json(Tags) | where t.namespace == "default"
Outils d’automatisation et de développement
OSM peut s’intégrer à certains projets d’automatisation et outils de développement pour aider les opérateurs et les développeurs à créer et à publier des applications. Par exemple, OSM s’intègre à l'indicateur pour la livraison progressive et DAPR pour la création d’applications. L’intégration d’OSM avec Flagger et Dapr n’est pas couverte par la politique de prise en charge AKS.
Autorisation externe
L’autorisation externe vous permet de décharger l’autorisation des requêtes HTTP vers un service externe. OSM peut utiliser l’autorisation externe en s’intégrant à Open Policy Agent (OPA), mais cette intégration n’est pas couverte par la stratégie de support AKS.
Gestion des certificats
OSM possède plusieurs types de certificats qu’il utilise pour fonctionner sur votre cluster AKS. OSM comprend son propre gestionnaire de certificats appelé Tresor, qui est utilisé par défaut. En guise d’alternative, OSM vous permet de procéder à une intégration avec Hashicorp Vault et cert-manager, mais ces intégrations ne sont pas couvertes par la stratégie de support AKS.
Étapes suivantes
Cette article montre les intégrations du module complémentaire Open service Mesh (OSM) avec les fonctionnalités fournies par Azure ainsi qu’à quelques projets open source. Pour en savoir plus sur OSM, consultez À propos d’OSM dans AKS.
Azure Kubernetes Service