Activer Ingress avec Anthos Service Mesh

Cet article explique comment installer Anthos Service Mesh, qui est préinstallé avec une passerelle d'entrée. Avec Anthos Service Mesh, vous pouvez configurer une ressource d'entrée Kubernetes pour vos déploiements si vous avez besoin d'un contrôleur d'entrée. Cet article fournit un exemple qui vous montre comment configurer un exemple de déploiement et une ressource d'entrée.

L'installation d'Anthos Service Mesh comprend deux parties principales :

  1. Installer une version spécifique du plan de contrôle géré par le client pour Anthos Service Mesh et la passerelle Ingress
  2. Attribuer un libellé de révision aux espaces de noms et redéployer les charges de travail pour injecter un proxy side-car

Si vous avez uniquement besoin d'utiliser un objet Ingress à l'aide d'un contrôleur Ingress, vous n'avez pas besoin d'injecter un proxy side-car dans vos pods de charge de travail. En revanche, si vous souhaitez bénéficier des avantages en matière de sécurité offerts par Anthos Service Mesh et utiliser les fonctionnalités de routage du trafic, vous devez injecter les proxys side-car.

Avant de commencer

Avant de commencer à utiliser Anthos clusters on AWS, assurez-vous d'avoir effectué les tâches suivantes :

  • Installez un service de gestion.
  • Créez un cluster d'utilisateur.
  • Enregistrez votre cluster avec Connect en suivant les étapes décrites dans la section Se connecter au cluster avec Cloud Console.
  • Configurez votre cluster pour utiliser Workload Identity avec Google Cloud.
  • Si vos clusters d'utilisateur disposent d'un accès sortant limité à Internet, autorisez l'accès aux domaines de dépôt de conteneurs suivants :

    • docker.io
    • quay.io
  • À partir de votre répertoire anthos-aws, utilisez anthos-gke pour basculer vers le contexte de votre cluster d'utilisateur.

    cd anthos-aws
    env HTTPS_PROXY=http://localhost:8118 \
      anthos-gke aws clusters get-credentials CLUSTER_NAME
    Remplacez CLUSTER_NAME par le nom de votre cluster d'utilisateur.

Installer Anthos Service Mesh

Suivez les étapes de la page Installer Anthos Service Mesh.

Créer un exemple de déploiement

Dans cette section, vous installez un exemple d'application et créez un point de terminaison d'entrée pour celui-ci.

  1. Créez un déploiement de hello-app et un ClusterIP pour le déploiement. Copiez le fichier YAML suivant dans un fichier nommé hello-app.yaml.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: hello-app
      name: hello-app
    spec:
      selector:
        matchLabels:
          app: hello-app
      replicas: 3
      template:
        metadata:
          labels:
            app: hello-app
        spec:
          containers:
          - name: hello
            image: "gcr.io/google-samples/hello-app:2.0"
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: hello-app
      name: hello-app
    spec:
      type: ClusterIP
      selector:
        app: hello-app
      ports:
      - protocol: TCP
        port: 8080
        targetPort: 8080
    
  2. Appliquez le fichier YAML à votre cluster avec kubectl apply.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f hello-app.yaml
    
  3. Créez une entrée Kubernetes pour l'exemple d'application. Copiez le fichier YAML suivant dans un fichier nommé hello-app-ingress.yaml.

    apiVersion: networking.k8s.io/v1beta1
    kind: Ingress
    metadata:
      annotations:
        kubernetes.io/ingress.class: istio
      labels:
        app: hello-app
      name: hello-app
    spec:
      rules:
      - host:
        http:
          paths:
          - backend:
              serviceName: hello-app
              servicePort: 8080
    
  4. Créez l'entrée en appliquant la configuration avec kubectl apply.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f hello-app-ingress.yaml
    
  5. Vérifiez l'état de votre passerelle à l'aide de kubectl get svc.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get ingress hello-app
    

    Le champ ADDRESS doit comporter un nom de domaine ELB. Si le champ ADDRESS reste en attente (pending), confirmez les libellés de VPC et de sous-réseau.

  6. Vous pouvez vérifier l'URL de la passerelle d'entrée en composant l'hôte et le port. Pour obtenir l'URL de votre passerelle, exécutez les commandes suivantes :

    export INGRESS_URL=$(env HTTPS_PROXY=http://localhost:8118 \
    kubectl get ingress hello-app -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
    echo "Your hello-app Ingress URL is: http://"$INGRESS_URL
    

    La dernière commande imprime le point de terminaison de votre entrée.

  7. Si vous avez créé une entrée publique, vous pouvez afficher la page Web par défaut hello-app dans curl en accédant à http://$INGRESS_URL/.

    curl $INGRESS_URL/
    

Nettoyer

Vous supprimez les composants hello-app avec la commande kubectl delete.

env HTTPS_PROXY=http://localhost:8118 \
  kubectl delete -f hello-app.yaml &&\
  kubectl delete -f hello-app-ingress.yaml

Si vous souhaitez supprimer Anthos Service Mesh, consultez la page Désinstaller Anthos Service Mesh.

Étapes suivantes

En savoir plus :