Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado.

Añadir despliegues y servicios con el sidecar de Istio

Rancher-Istio ha quedado obsoleto desde Rancher v2.12.0; recurran a la SUSE Application Collection de Istio para una mayor seguridad (incluida en las suscripciones de SUSE Rancher Prime). Se puede encontrar información detallada en este anuncio.

Requisito previo:

Para habilitar Istio para una carga de trabajo, el clúster y el espacio de nombres deben tener la aplicación de Istio instalada.

Habilitar Istio en un espacio de nombres solo habilita la inyección automática del sidecar para nuevas cargas de trabajo. Para habilitar el sidecar de Envoy para cargas de trabajo existentes, necesitas habilitarlo manualmente para cada carga de trabajo.

Para inyectar el sidecar de Istio en una carga de trabajo existente en el espacio de nombres,

  1. En la esquina superior izquierda, haz clic en ☰ > Gestión de Clústeres.

  2. En la página Clústeres, ve al clúster donde deseas ver las visualizaciones y haz clic en Explorar.

  3. Haz clic en Carga de trabajo.

  4. Ve a la carga de trabajo donde deseas inyectar el sidecar de Istio y haz clic en ⋮ > Volver a desplegar. Cuando la carga de trabajo se vuelva a desplegar, tendrá el sidecar de Envoy inyectado automáticamente.

Espera unos minutos para que la carga de trabajo se actualice y disponga del sidecar de Istio. Haz clic en él y ve a la sección de Contenedores. Deberías poder ver istio-proxy junto a tu carga de trabajo original. Esto significa que el sidecar de Istio está habilitado para la carga de trabajo. Istio se encarga de toda la configuración del sidecar de Envoy. Ahora Istio puede realizar todas las funciones automáticamente si las habilitas en el yaml.

Añadir Despliegues y Servicios

Hay varias formas de añadir nuevos Despliegues en tu espacio de nombres:

  1. Haz clic en ☰ > Gestión de Clústeres.

  2. Ve al clúster que creaste y haz clic en Explorar.

  3. Haz clic en Carga de trabajo.

  4. Haga clic en Crear.

  5. Haz clic en Despliegue.

  6. Rellena el formulario, o Editar como Yaml.

  7. Haga clic en Crear.

Para añadir un Servicio a tu espacio de nombres:

  1. Haz clic en ☰ > Gestión de Clústeres.

  2. Ve al clúster que creaste y haz clic en Explorar.

  3. Haz clic en menu:Descubrimiento de Servicios[Servicios].

  4. Haga clic en Crear.

  5. Selecciona el tipo de Servicio que deseas.

  6. Rellena el formulario, o Editar como Yaml.

  7. Haga clic en Crear

También puedes crear despliegues y servicios utilizando el kubectl shell.

  1. Ejecuta kubectl create -f <name of service/deployment file>.yaml si tu archivo está almacenado localmente en el clúster.

  2. O ejecuta `cat<< EOF | kubectl apply -f -`, pega el contenido del archivo en la terminal, luego ejecuta EOF para completar el comando.

Ejemplos de despliegues y servicios.

A continuación, añadimos los recursos de Kubernetes para los despliegues y servicios de muestra para la aplicación BookInfo en la documentación de Istio.

  1. Haz clic en ☰ > Gestión de Clústeres.

  2. Ve al clúster que creaste y haz clic en Explorar.

  3. En la barra de navegación superior, abre la shell de kubectl.

  4. Ejecuta cat<< EOF | kubectl apply -f -.

  5. Copia los recursos a continuación en la terminal.

  6. Ejecuta EOF.

Esto configurará los siguientes recursos de muestra del ejemplo de la aplicación BookInfo de Istio:

Servicio y despliegue de detalles:

  • Un details Servicio.

  • Una ServiceAccount para bookinfo-details.

  • Un details-v1 Despliegue.

Servicio y despliegue de calificaciones:

  • Un ratings Servicio.

  • Una ServiceAccount para bookinfo-ratings.

  • Un ratings-v1 Despliegue.

Servicio y despliegues de reseñas (tres versiones):

  • Un reviews Servicio.

  • Una ServiceAccount para bookinfo-reviews.

  • Un reviews-v1 Despliegue.

  • Un reviews-v2 Despliegue.

  • Un reviews-v3 Despliegue.

Servicio y despliegue de Productpage:

Esta es la página principal de la aplicación, que será visible desde un navegador web. Los otros servicios serán llamados desde esta página.

  • Un productpage Servicio.

  • Una ServiceAccount para bookinfo-productpage.

  • Un productpage-v1 Despliegue.

Recurso YAML.

# 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
---