Activer les fonctionnalités facultatives

Lorsque vous installez Anthos Service Mesh, vous spécifiez un profil de configuration. Les profils de configuration sont des fichiers YAML qui définissent et configurent les fonctionnalités installées avec Anthos Service Mesh. 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 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.

Vous pouvez remplacer le profil de configuration et activer les fonctionnalités facultatives compatibles à l'aide de l'API IstioOperator. Spécifiez la configuration IstioOperator dans un fichier YAML, par exemple feature.yaml. (Le nom du fichier YAML n'a pas d'importance.)

Bien que vous puissiez modifier la configuration en modifiant le profil ou en spécifiant des paramètres de configuration dans la ligne de commande à l'aide de l'option --set, nous vous recommandons d'utiliser un fichier YAML de configuration IstioOperator pour pouvoir stocker le fichier dans votre système de contrôle des versions avec vos autres fichiers de configuration de ressources. Lorsque vous activez des fonctionnalités facultatives, vous pouvez spécifier plusieurs fichiers dans la ligne de commande.

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 et le fichier YAML de la fonctionnalité que vous souhaitez activer. Dans ces exemples, nous partons du principe que vous avez complété toutes les étapes du guide d'installation ou de mise à niveau que vous suivez jusqu'au moment de l'installation d'Anthos Service Mesh.

Activer une passerelle de sortie

Cet exemple montre comment activer une passerelle de sortie sur GKE sur VMware.

  1. Copiez le code YAML suivant dans un fichier feature.yaml et enregistrez-le :

    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      components:
        egressGateways:
          - name: istio-egressgateway
            enabled: true
  2. Pour installer Anthos Service Mesh sur GKE sur VMware, dans la ligne de commande suivante, remplacez REVISION par la version exacte d'Anthos Service Mesh que vous installez, par exemple : asm-1614-2

    istioctl install \
      --set profile=asm-multicloud \
      --set revision=REVISION \
      -f feature.yaml

Activer le traçage

Cet exemple montre comment activer Cloud Trace sur GKE.

Pour les installations et les mises à niveau sur GKE sur Google Cloud, vous devez préparer le fichier istio-operator.yaml, qui contient des informations sur votre projet et votre cluster. Lorsque vous configurez istio-operator.yaml, vous définissez le profil que vous souhaitez utiliser (asm-gcp ou asm-gcp-multiproject). Étant donné que le profil est configuré dans istio-operator.yaml, vous n'avez pas besoin de le spécifier sur la ligne de commande dans ce cas, même si vous souhaiterez peut-être l'indiquer par souci de clarté.

  1. Copiez le code YAML suivant dans un fichier feature.yaml et enregistrez-le :

    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      meshConfig:
        enableTracing: true
      values:
        global:
           proxy:
             tracer: stackdriver
  2. Pour installer Anthos Service Mesh sur GKE, dans la ligne de commande suivante :

    • Remplacez PROFILE par le profil que vous utilisez : asm-gcp ou asm-gcp-multiproject.
    • Remplacez REVISION par la version exacte d'Anthos Service Mesh que vous installez, par exemple : asm-1614-2.
    istioctl install \
     -f asm/cluster/istio-operator.yaml \
     --set profile=PROFILE \
     --set revision=REVISION \
     -f feature.yaml

Format YAML pour les fonctionnalités facultatives

Les sections suivantes fournissent le code YAML permettant d'activer les fonctionnalités facultatives compatibles. Lorsque vous activez une fonctionnalité facultative, vous devez inclure à la fois le profil et le fichier YAML de la fonctionnalité que vous souhaitez activer dans la ligne de commande. Pour GKE, le profil est configuré dans istio-operator.yaml.

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 traceSampling. 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
  values:
    pilot:
      traceSampling: 100
    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.

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

Pour GKE sur VMware, ajoutez gke-system à excludeNamespaces et values.cni.cniBinDir. est /opt/cni/bin :

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. Dans le code YAML suivant, remplacez PROFILE par le profil que vous utilisez (asm-gcp ou asm-gcp-multiproject).

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  profile: PROFILE
  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
              - name: https
                port: 443

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.