Ce document a été traduit à l'aide d'une technologie de traduction automatique. Bien que nous nous efforcions de fournir des traductions exactes, nous ne fournissons aucune garantie quant à l'exhaustivité, l'exactitude ou la fiabilité du contenu traduit. En cas de divergence, la version originale anglaise prévaut et fait foi.

Ajoutez des déploiements et des services avec le sidecar Istio

Rancher-Istio a cessé la prise en charge depuis Rancher v2.12.0 ; tournez-vous vers l’SUSE Application Collection d’Istio pour une sécurité renforcée (incluse dans les abonnements SUSE Rancher Prime). Des informations détaillées peuvent être trouvées dans cette annonce.

Condition préalable :

Pour activer Istio pour une charge de travail, le cluster et l’espace de noms doivent avoir l’appli Istio installée.

Activer Istio dans un espace de noms n’active que l’injection automatique du sidecar pour les nouvelles charges de travail. Pour activer le sidecar Envoy pour les charges de travail existantes, vous devez l’activer manuellement pour chaque charge de travail.

Pour injecter le sidecar Istio sur une charge de travail existante dans l’espace de noms,

  1. Dans le coin supérieur gauche, cliquez sur ☰ > Gestion des clusters.

  2. Sur la page Clusters, allez au cluster où vous souhaitez voir les visualisations et cliquez sur Explorer.

  3. Cliquez sur Charge de travail.

  4. Allez à la charge de travail où vous souhaitez injecter le sidecar Istio et cliquez sur ⋮ > Redeployer. Lorsque la charge de travail est redéployée, elle aura le sidecar Envoy automatiquement injecté.

Attendez quelques minutes pour que la charge de travail soit mise à niveau avec le sidecar Istio. Cliquez dessus et allez à la section Conteneurs. Vous devriez pouvoir voir istio-proxy à côté de votre charge de travail d’origine. Cela signifie que le sidecar Istio est activé pour la charge de travail. Istio s’occupe de tout le câblage pour le sidecar Envoy. Maintenant, Istio peut effectuer toutes les fonctionnalités automatiquement si vous les activez dans le yaml.

Ajoutez des déploiements et des services

Il existe plusieurs façons d’ajouter de nouveaux Déploiements dans votre espace de noms :

  1. Cliquez sur ☰ > Gestion des clusters.

  2. Allez dans le cluster que vous avez créé et cliquez sur Explorer.

  3. Cliquez sur Charge de travail.

  4. Cliquez sur Create.

  5. Cliquez sur Déploiement.

  6. Remplissez le formulaire, ou Modifier en Yaml.

  7. Cliquez sur Create.

Pour ajouter un Service à votre espace de noms :

  1. Cliquez sur ☰ > Gestion des clusters.

  2. Allez au cluster que vous avez créé et cliquez sur Explorer.

  3. Cliquez sur menu:Découverte de service[Services].

  4. Cliquez sur Create.

  5. Sélectionnez le type de service que vous souhaitez.

  6. Remplissez le formulaire, ou Modifier en Yaml.

  7. Cliquez sur Create

Vous pouvez également créer des déploiements et des services en utilisant le kubectl shell

  1. Exécutez kubectl create -f <name of service/deployment file>.yaml si votre fichier est stocké localement dans le cluster

  2. Ou exécutez `cat<< EOF | kubectl apply -f -`, collez le contenu du fichier dans le terminal, puis exécutez EOF pour compléter la commande.

Exemples de déploiements et de services

Ensuite, nous ajoutons les ressources Kubernetes pour les déploiements et services d’exemple pour l’application BookInfo dans la documentation d’Istio.

  1. Cliquez sur ☰ > Gestion des clusters.

  2. Allez au cluster que vous avez créé et cliquez sur Explorer.

  3. Dans la barre de navigation supérieure, ouvrez le shell kubectl.

  4. Exécutez cat<< EOF | kubectl apply -f -

  5. Copiez les ressources ci-dessous dans le shell.

  6. Exécutez EOF

Cela mettra en place les ressources d’exemple suivantes de l’application BookInfo d’Istio :

Détails du service et du déploiement :

  • Un service details

  • Un ServiceAccount pour bookinfo-details

  • Un déploiement details-v1

Service et déploiement des notations :

  • Un service ratings

  • Un ServiceAccount pour bookinfo-ratings

  • Un déploiement ratings-v1

Services et déploiements d’avis (trois versions) :

  • Un service reviews

  • Un ServiceAccount pour bookinfo-reviews

  • Un déploiement reviews-v1

  • Un déploiement reviews-v2

  • Un déploiement reviews-v3

Service et déploiement de la page produit :

Ceci est la page principale de l’appli, qui sera visible depuis un navigateur web. Les autres services seront appelés depuis cette page.

  • Un service productpage

  • Un ServiceAccount pour bookinfo-productpage

  • Un déploiement productpage-v1

YAML de ressource

# Copyright 2017 Istio Authors
#
#   Licensed under the Apache License, Version 2.0 (the "License");
#   you may not use this file except in compliance with the License.
#   You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.

##################################################################################################
# Details service
##################################################################################################
apiVersion: v1
kind: Service
metadata:
  name: details
  labels:
    app: details
    service: details
spec:
  ports:
  - port: 9080
    name: http
  selector:
    app: details
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: bookinfo-details
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: details-v1
  labels:
    app: details
    version: v1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: details
      version: v1
  template:
    metadata:
      labels:
        app: details
        version: v1
    spec:
      serviceAccountName: bookinfo-details
      containers:
      - name: details
        image: docker.io/istio/examples-bookinfo-details-v1:1.15.0
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 9080
---
##################################################################################################
# Ratings service
##################################################################################################
apiVersion: v1
kind: Service
metadata:
  name: ratings
  labels:
    app: ratings
    service: ratings
spec:
  ports:
  - port: 9080
    name: http
  selector:
    app: ratings
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: bookinfo-ratings
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: ratings-v1
  labels:
    app: ratings
    version: v1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: ratings
      version: v1
  template:
    metadata:
      labels:
        app: ratings
        version: v1
    spec:
      serviceAccountName: bookinfo-ratings
      containers:
      - name: ratings
        image: docker.io/istio/examples-bookinfo-ratings-v1:1.15.0
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 9080
---
##################################################################################################
# Reviews service
##################################################################################################
apiVersion: v1
kind: Service
metadata:
  name: reviews
  labels:
    app: reviews
    service: reviews
spec:
  ports:
  - port: 9080
    name: http
  selector:
    app: reviews
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: bookinfo-reviews
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: reviews-v1
  labels:
    app: reviews
    version: v1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: reviews
      version: v1
  template:
    metadata:
      labels:
        app: reviews
        version: v1
    spec:
      serviceAccountName: bookinfo-reviews
      containers:
      - name: reviews
        image: docker.io/istio/examples-bookinfo-reviews-v1:1.15.0
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 9080
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: reviews-v2
  labels:
    app: reviews
    version: v2
spec:
  replicas: 1
  selector:
    matchLabels:
      app: reviews
      version: v2
  template:
    metadata:
      labels:
        app: reviews
        version: v2
    spec:
      serviceAccountName: bookinfo-reviews
      containers:
      - name: reviews
        image: docker.io/istio/examples-bookinfo-reviews-v2:1.15.0
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 9080
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: reviews-v3
  labels:
    app: reviews
    version: v3
spec:
  replicas: 1
  selector:
    matchLabels:
      app: reviews
      version: v3
  template:
    metadata:
      labels:
        app: reviews
        version: v3
    spec:
      serviceAccountName: bookinfo-reviews
      containers:
      - name: reviews
        image: docker.io/istio/examples-bookinfo-reviews-v3:1.15.0
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 9080
---
##################################################################################################
# Productpage services
##################################################################################################
apiVersion: v1
kind: Service
metadata:
  name: productpage
  labels:
    app: productpage
    service: productpage
spec:
  ports:
  - port: 9080
    name: http
  selector:
    app: productpage
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: bookinfo-productpage
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: productpage-v1
  labels:
    app: productpage
    version: v1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: productpage
      version: v1
  template:
    metadata:
      labels:
        app: productpage
        version: v1
    spec:
      serviceAccountName: bookinfo-productpage
      containers:
      - name: productpage
        image: docker.io/istio/examples-bookinfo-productpage-v1:1.15.0
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 9080
---