Maison  >  Article  >  développement back-end  >  Comment sécuriser le déploiement cloud PHP à l'aide du service mesh Istio ?

Comment sécuriser le déploiement cloud PHP à l'aide du service mesh Istio ?

WBOY
WBOYoriginal
2024-05-06 17:12:011016parcourir

En utilisant le maillage de services Istio, vous pouvez fournir les fonctionnalités de protection suivantes pour les déploiements cloud PHP : Sécurité : protégez les applications contre les menaces en proxyant le trafic et en appliquant l'autorisation. Résilience : augmentez la disponibilité des applications grâce à l'équilibrage de charge, au basculement et aux tentatives automatiques. Observabilité : fournissez des informations approfondies sur l’état des applications grâce à la journalisation, aux métriques et au traçage distribué.

如何使用 Istio 服务网格保护 PHP 云端部署?

Comment sécuriser les déploiements PHP Cloud avec Istio Service Mesh

Introduction

Istio est un maillage de services open source qui offre sécurité, résilience et observabilité pour les applications cloud natives. Ce tutoriel vous expliquera comment sécuriser votre déploiement cloud PHP sur Kubernetes à l'aide d'Istio.

Configuration

  1. Installez Istio
    Installez Istio en suivant les instructions de la documentation officielle d'Istio.
  2. Créez un cluster Kubernetes
    Créez ou utilisez un cluster Kubernetes existant.

Créer une application PHP

  1. Créer une image Docker
    Créer une image Docker contenant une application PHP.
  2. Poussez l'image vers le registre
    Poussez l'image vers le registre d'images Docker.

Déployer des applications sur Kubernetes

  1. Créer un manifeste de déploiement
    Créer un manifeste de déploiement Kubernetes (déploiement), qui spécifie l'image et les informations de port de l'application PHP.
  2. Déployez l'application
    Utilisez la commande kubectl pour appliquer le manifeste de déploiement au cluster Kubernetes. kubectl 命令将部署清单应用到 Kubernetes 集群。

将 Istio Sidecar 注入到 Pod 中

为每个 Pod 注入 Istio sidecar 容器,它将在应用程序流量和外部世界之间进行代理。为此:

  1. 启用 Istio 注入
    使用 Istio 提供的 istioctl 工具启用 Istio 注入:

    istioctl manifest apply --set profile=default -f istio.yaml
  2. 重新部署应用
    重新部署应用程序以启用 Istio sidecar 注入。

实战案例:流量控制

Istio 能够提供各种流量控制功能。以下实战案例展示如何使用 Istio 限制对 PHP 应用的并发请求:

  1. 创建 VirtualService
    创建一个 VirtualService 对象来定义流量控制规则:

    apiVersion: networking.istio.io/v1alpha3
    kind: VirtualService
    metadata:
      name: php-app-vs
    spec:
      gateways:
        - php-app-gateway
      hosts:
        - php-app.default.svc.cluster.local
      http:
        - route:
            - destination:
                host: php-app
                port:
                  number: 80
            - weight: 100
            match:
              - requestType: SIMPLE
            request_timeout: 50ms
            retries:
              attempts: 3
              perTryInterval: 500ms
            virtualCluster:
              mesh: cluster-local
  2. 应用 VirtualService
    使用 kubectl

Injecter Istio Sidecar dans les Pods

Injectez un conteneur side-car Istio pour chaque Pod, qui servira de proxy entre le trafic des applications et le monde extérieur. Pour ce faire :

🎜🎜Activer l'injection Istio 🎜🎜Utilisez l'outil istioctl fourni par Istio pour activer l'injection Istio : 🎜
kubectl apply -f php-app-vs.yaml
🎜🎜🎜Redéployer l'application🎜🎜Redéployer l'application pour activer le side-car Istio injection. 🎜🎜🎜🎜Cas pratique : contrôle de flux🎜🎜🎜Istio peut fournir diverses fonctions de contrôle de flux. Le cas pratique suivant montre comment utiliser Istio pour limiter les requêtes concurrentes vers une application PHP : 🎜🎜🎜🎜🎜 Créer un VirtualService 🎜🎜Créer un objet VirtualService pour définir des règles de contrôle de flux : 🎜rrreee🎜🎜🎜🎜Appliquer VirtualService🎜🎜Utiliser kubectl Appliquer VirtualService : 🎜rrreee🎜🎜🎜🎜Conclusion🎜🎜🎜En intégrant Istio dans votre déploiement cloud PHP, vous bénéficiez de puissantes fonctionnalités de sécurité, de résilience et d'observabilité. Ce tutoriel explique comment configurer Istio et illustre ses capacités à l'aide d'exemples pratiques tels que le contrôle de flux. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn