Desplegar servicios

Desplegar servicios en clústeres con Cloud Service Mesh es casi igual que desplegar servicios en clústeres sin Cloud Service Mesh. Debes hacer algunos cambios en tus manifiestos de Kubernetes:

  • Crea servicios de Kubernetes para todos los contenedores. Todas las implementaciones deben tener un servicio de Kubernetes asociado.

  • Asigna un nombre a los puertos de servicio. Aunque GKE te permite definir puertos de servicio sin nombre, Cloud Service Mesh requiere que proporciones un nombre para un puerto que coincida con el protocolo del puerto.

  • Etiqueta tus implementaciones. De esta forma, puedes usar las funciones de gestión del tráfico de Cloud Service Mesh, como dividir el tráfico entre versiones del mismo servicio.

En el siguiente ejemplo de Deployment y Service se ilustran estos requisitos:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: helloserver
spec:
  replicas: 1
  selector:
    matchLabels:
      app: helloserver
  template:
    metadata:
      labels:
        app: helloserver
    spec:
      containers:
      - image: gcr.io/google-samples/istio/helloserver:v0.0.1
        imagePullPolicy: Always
        name: main
      restartPolicy: Always
      terminationGracePeriodSeconds: 5
apiVersion: v1
kind: Service
metadata:
  name: hellosvc
spec:
  ports:
  - name: http
    port: 80
    targetPort: 8080
  selector:
    app: helloserver
  type: LoadBalancer

Después de desplegar tus servicios en un clúster con Cloud Service Mesh, asegúrate de insertar proxies sidecar.

Siguientes pasos