|
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,
-
En la esquina superior izquierda, haz clic en ☰ > Gestión de Clústeres.
-
En la página Clústeres, ve al clúster donde deseas ver las visualizaciones y haz clic en Explorar.
-
Haz clic en Carga de trabajo.
-
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:
-
Haz clic en ☰ > Gestión de Clústeres.
-
Ve al clúster que creaste y haz clic en Explorar.
-
Haz clic en Carga de trabajo.
-
Haga clic en Crear.
-
Haz clic en Despliegue.
-
Rellena el formulario, o Editar como Yaml.
-
Haga clic en Crear.
Para añadir un Servicio a tu espacio de nombres:
-
Haz clic en ☰ > Gestión de Clústeres.
-
Ve al clúster que creaste y haz clic en Explorar.
-
Haz clic en menu:Descubrimiento de Servicios[Servicios].
-
Haga clic en Crear.
-
Selecciona el tipo de Servicio que deseas.
-
Rellena el formulario, o Editar como Yaml.
-
Haga clic en Crear
También puedes crear despliegues y servicios utilizando el kubectl shell.
-
Ejecuta
kubectl create -f <name of service/deployment file>.yamlsi tu archivo está almacenado localmente en el clúster. -
O ejecuta `cat<< EOF | kubectl apply -f -`, pega el contenido del archivo en la terminal, luego ejecuta
EOFpara 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.
-
Haz clic en ☰ > Gestión de Clústeres.
-
Ve al clúster que creaste y haz clic en Explorar.
-
En la barra de navegación superior, abre la shell de kubectl.
-
Ejecuta
cat<< EOF | kubectl apply -f -. -
Copia los recursos a continuación en la terminal.
-
Ejecuta
EOF.
Esto configurará los siguientes recursos de muestra del ejemplo de la aplicación BookInfo de Istio:
Servicio y despliegue de detalles:
-
Un
detailsServicio. -
Una ServiceAccount para
bookinfo-details. -
Un
details-v1Despliegue.
Servicio y despliegue de calificaciones:
-
Un
ratingsServicio. -
Una ServiceAccount para
bookinfo-ratings. -
Un
ratings-v1Despliegue.
Servicio y despliegues de reseñas (tres versiones):
-
Un
reviewsServicio. -
Una ServiceAccount para
bookinfo-reviews. -
Un
reviews-v1Despliegue. -
Un
reviews-v2Despliegue. -
Un
reviews-v3Despliegue.
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
productpageServicio. -
Una ServiceAccount para
bookinfo-productpage. -
Un
productpage-v1Despliegue.
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
---