Activer les fonctionnalités facultatives

Lorsque vous installez Anthos Service Mesh, suivant votre environnement, vous spécifiez soit un profil de configuration, soit un fichier superposé qui définit le profil pour vous. Les profils de configuration sont des fichiers YAML qui utilisent l'API IstioOperator. Les profils définissent et configurent les fonctionnalités installées avec Anthos Service Mesh. Les profils Anthos Service Mesh sont des superpositions du profil empty (ce qui se traduit par "aucun paramètre") ou du profil Istio default. Les profils suivants sont fournis avec Anthos Service Mesh :

  • asm-gcp : utilisez ce profil si tous vos clusters GKE se trouvent dans le même projet. Lorsque vous installez Anthos Service Mesh avec ce profil, les fonctionnalités suivantes sont activées :

  • asm-gcp-multiproject : utilisez ce profil si votre cluster GKE se trouve dans un cloud privé virtuel partagé et que vous souhaitez ajouter des clusters de différents projets à Anthos Service Mesh. Lorsque vous installez Anthos Service Mesh à l'aide du profil asm-gcp-multiproject :

    • Les tableaux de bord Anthos Service Mesh de la console Google Cloud ne sont actuellement pas disponibles. Toutefois, vous pouvez toujours consulter les journaux dans Cloud Logging et les métriques dans Cloud Monitoring pour chaque projet.

    • Les fonctionnalités compatibles par défaut répertoriées sur la page Fonctionnalités compatibles pour le profil de configuration asm-gcp-multiproject sont activées.

  • asm-multicloud: utilisez ce profil pour les clusters situés dans d'autres environnements compatibles : GKE sur VMware, GKE sur AWS, Amazon Elastic Kubernetes Service (Amazon EKS) et Microsoft Azure Kubernetes Service (Microsoft AKS). Lorsque vous installez Anthos Service Mesh à l'aide du profil asm-multicloud.yaml, cela active les fonctionnalités compatibles par défaut répertoriées sur la page Fonctionnalités compatibles pour le profil de configuration asm-multicloud.

Les profils se trouvent dans le sous-répertoire manifests/profiles du répertoire racine de l'installation d'Anthos Service Mesh.

Fichiers superposés

Un fichier de superposition est un fichier YAML contenant une ressource personnalisée IstioOperator que vous utilisez pour configurer le plan de contrôle. Vous pouvez ignorer la configuration par défaut et activer les fonctionnalités facultatives compatibles dans un fichier de superposition. Vous pouvez effectuer plusieurs couches de superposition. Chaque fichier de superposition remplace la configuration dans les couches précédentes.

Lorsque vous installez ou mettez à niveau Anthos Service Mesh à l'aide de la commande istioctl install, vous pouvez spécifier un ou plusieurs fichiers de superposition sur la ligne de commande avec l'option de ligne de commande -f.

N'incluez pas plusieurs RP dans un même fichier YAML. Créer des fichiers YAML distincts pour chaque RP
plusieurs RP dans un fichier YAML des fichiers YAML distincts pour chaque ressource personnalisée

Bien que vous puissiez modifier la configuration en spécifiant des paramètres de configuration sur la ligne de commande à l'aide de l'option --set pour istioctl install, nous vous recommandons d'utiliser un fichier de superposition afin de stocker le fichier dans votre système de contrôle des versions avec vos autres fichiers de définition de ressources. Vous devez conserver ces fichiers lors de la mise à niveau d'Anthos Service Mesh afin que votre maillage de services ait la même configuration après la mise à niveau.

Les fichiers de superposition utilisés sur cette page se trouvent dans le package asm sur GitHub. Ces fichiers contiennent des personnalisations de profil courantes. Vous pouvez utiliser ces fichiers tels quels ou vous pouvez apporter des modifications supplémentaires si nécessaire. Vous pouvez également créer vos propres fichiers de superposition, comme décrit dans la section Personnaliser la configuration.

Lorsque vous installez Anthos Service Mesh à l'aide du script install_asm fourni par Google, vous pouvez spécifier un ou plusieurs fichiers de superposition à l'aide des options --option ou --custom_overlay. Si vous n'avez pas besoin de modifier les fichiers, vous pouvez utiliser --option. Le script récupère alors le fichier à partir de GitHub. Sinon, vous pouvez apporter des modifications au fichier de superposition, puis utiliser l'option --custom_overlay pour le transmettre au script install_asm. Pour des exemples d'utilisation de ces deux options, consultez les exemples install_asm.

Pour télécharger le package asm, procédez comme suit :

Les étapes suivantes utilisent kpt pour télécharger le package asm à partir du dépôt GitHub. Si vous préférez, vous pouvez utiliser à la place git clone.

  1. Si ce n'est pas déjà fait, installez kpt :

    gcloud components install kpt
    
  2. Téléchargez le package contenant les fichiers :

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.7-asm asm
    

Examples

Pour activer une fonctionnalité lors de l'installation ou de la mise à niveau d'Anthos Service Mesh, vous devez inclure à la fois le profil ou le fichier de superposition qui définit le profil, et le fichier correspondant à la fonctionnalité que vous souhaitez activer. La commande exacte diffère légèrement suivant votre environnement et selon que vous utilisez le script install_asm ou la commande istioctl install.

Toutes les commandes suivantes définissent un libellé de révision sur istiod. Un libellé de révision est au format istio.io/rev=asm-178-10. Le libellé de révision est utilisé par le webhook d'injecteur side-car automatique pour associer les side-cars injectés à une révision istiod particulière. Pour activer l'injection side-car automatique sur un espace de noms, vous devez lui attribuer un libellé associé à une révision correspondant au libellé de révision sur istiod.

Activer une passerelle de sortie sur GKE On-Prem

Cet exemple part du principe que vous avez suivi les étapes décrites dans le guide Installer Anthos Service Mesh sur site jusqu'au point de l'installation d'Anthos Service Mesh, et que le package asm se trouve dans votre répertoire de travail actuel. Le fichier egressgateways.yaml contient la configuration permettant d'activer une passerelle de sortie.

  1. Installez Anthos Service Mesh sur GKE sur VMware:

    istioctl install \
      --set profile=asm-multicloud \
      -f asm/istio/options/egressgateways.yaml \
      --set revision=asm-178-10
    
  2. Veillez à revenir au guide d'installation de GKE sur VMware pour configurer le webhook de validation, qui est nécessaire pour les nouvelles installations.

Activer une passerelle de sortie sur GKE sur Google Cloud

Nous vous recommandons d'utiliser le script install_asm pour configurer des clusters autonomes ou plusieurs clusters dans le même projet. Le script utilise le profil asm-gcp et définit un libellé de révision sur istiod. Cet exemple part du principe que vous avez suivi le guide Installer Anthos Service Mesh sur GKE pour télécharger la version du script install_asm sur la branche release-1.7-asm qui installe Anthos Service Mesh 1.7.8.

Pour utiliser le script install_asm afin d'installer une passerelle de sortie, procédez comme suit :

./install_asm \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --mode install \
  --enable_apis \
  --option egressgateways

Cette commande exécute le script pour une nouvelle installation, définit le profil, asm-gcp, configure votre cluster avec les options requises par Anthos Service Mesh, active Mesh CA (l'autorité de certification par défaut pour les nouvelles installations), permet au script d'activer les API Google requises et récupère le fichier egressgateways.yaml à partir de GitHub.

Activer une passerelle de sortie sur des clusters GKE dans différents projets

Actuellement, le script install_asm ne permet pas d'installer Anthos Service Mesh avec le profil asm-gcp-multiproject, qui est nécessaire pour configurer plusieurs clusters dans différents projets pour Anthos Service Mesh.

La ligne de commande suivante suppose que vous avez suivi toutes les étapes de la section Installation et migration de plusieurs projets jusqu'au point de l'installation d'Anthos Service Mesh, et que le package asm se trouve dans votre répertoire de travail actuel.

  1. Installez Anthos Service Mesh :

    istioctl install \
     -f asm/istio/istio-operator.yaml \
     -f asm/istio/options/multiproject.yaml \
     -f asm/istio/options/multicluster.yaml\
     -f asm/istio/options/egressgateways.yaml \
     --set revision=asm-178-10
    

    Les fichiers suivants superposent les paramètres dans le fichier istio-operator.yaml :

    • Le fichier multiproject.yaml définit le profil asm-gcp-multiproject. Comme ce fichier définit le profil, vous devez le spécifier avant tout autre fichier de superposition.

    • Le fichier multicluster.yaml configure les paramètres dont Anthos Service Mesh a besoin pour une configuration multicluster.

    • Le fichier egressgateways.yaml configure la passerelle de sortie.

  2. Veillez à revenir au guide d'installation sur plusieurs projets pour configurer le webhook de validation, nécessaire pour les nouvelles installations.

Format YAML pour les fonctionnalités facultatives

Les sections suivantes fournissent le code YAML permettant d'activer les fonctionnalités facultatives compatibles.

Mode mTLS STRICT

La configuration global.mtls.enabled a été supprimée pour éviter les problèmes liés aux mises à niveau et fournir une installation plus flexible. Pour activer le mode TLS STRICT, configurez une règle d'authentification des pairs à la place.

Diriger Envoy vers stdout

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    accessLogFile: "/dev/stdout"

Pour en savoir plus, consultez la page Activer la journalisation des accès Envoy.

Cloud Trace

Pour les installations sur GKE, vous pouvez activer Cloud Trace. Pour en savoir plus sur la tarification, consultez la page des tarifs de Cloud Trace.

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    enableTracing: true
  values:
    global:
      proxy:
        tracer: stackdriver

Le taux d'échantillonnage par défaut est de 1 %, mais vous pouvez remplacer la valeur par défaut en spécifiant une valeur tracing.sampling. La valeur doit être comprise entre 0 et 100 avec une précision de 0,01. Par exemple, pour tracer cinq requêtes sur 10 000, spécifiez 0,05.

L'exemple suivant montre un taux d'échantillonnage de 100 % (ce qui n'est destiné qu'à des fins de démonstration ou de dépannage).

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    enableTracing: true
    defaultConfig:
      tracing:
        sampling: 100
  values:
    global:
      proxy:
        tracer: stackdriver

Propagation du contexte de trace

Même si les proxys side-car peuvent envoyer automatiquement des délais de trace, ils ont besoin d'indications pour relier l'intégralité de la trace. Les applications doivent propager les en-têtes HTTP appropriés de sorte que, lorsque les proxys envoient des informations de délais, ceux-ci soient correctement corrélés en une seule trace.

Pour ce faire, une application doit collecter et propager les en-têtes suivants de la requête entrante vers les requêtes sortantes :

  • x-request-id
  • x-b3-traceid
  • x-b3-spanid
  • x-b3-parentspanid
  • x-b3-sampled
  • x-b3-flags
  • x-ot-span-context
  • x-cloud-trace-context
  • traceparent
  • grpc-trace-bin

Pour obtenir des exemples de propagation des en-têtes, consultez la page propagation du contexte de trace.

Créer une trace à partir d'un client avec un ID personnalisé

Pour créer une trace à partir d'un client avec un ID personnalisé, utilisez la commande curl afin de créer une requête avec un client externe et forcez-la à afficher une trace. Exemple :

curl $URL --header "x-client-trace-id: 105445aa7843bc8bf206b12000100000"

Pour plus d'informations sur x-client-trace-id, reportez-vous à la documentation d'Envoy.

Sortie via des passerelles de sortie

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    egressGateways:
    - name: istio-egressgateway
      enabled: true

Pour plus d'informations, consultez la section Passerelles de sortie.

Container Network Interface d'Istio

La procédure d'activation de l'interface CNI (Container Network Interface) d'Istio dépend de l'environnement sur lequel Anthos Service Mesh est installé. Vous devez également activer une règle de réseau.

Activer CNI sur GKE

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    cni:
      enabled: true
      namespace: kube-system
  values:
    cni:
      cniBinDir: /home/kubernetes/bin
      excludeNamespaces:
      - istio-system
      - kube-system

Activer CNI sur GKE sur VMware

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    cni:
      enabled: true
      namespace: kube-system
  values:
    cni:
      cniBinDir: /opt/cni/bin
      excludeNamespaces:
      - istio-system
      - kube-system
      - gke-system

Activer un équilibreur de charge interne

Pour les installations sur GKE, vous pouvez activer un équilibreur de charge interne pour la passerelle d'entrée Istio.

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  components:
    ingressGateways:
    - name: istio-ingressgateway
      enabled: true
      k8s:
        serviceAnnotations:
          cloud.google.com/load-balancer-type: "internal"
        service:
          ports:
          - name: status-port
            port: 15020
          - name: http2
            port: 80
            targetPort: 8080
          - name: https
            port: 443
            targetPort: 8443

Gestion des certificats externes sur la passerelle d'entrée

Pour plus d'informations sur l'activation de la gestion des certificats externes sur la passerelle d'entrée à l'aide d'Envoy SDS, consultez la page Passerelles sécurisées.