Implementa objetos Service

Implementar servicios en clústeres con la malla de servicios de Cloud es casi el lo mismo que implementar objetos Service en clústeres sin Cloud Service Mesh. Necesitas realizar algunos cambios en tus manifiestos de Kubernetes:

  • Crear objetos Service de Kubernetes para todos los contenedores. Todas Implementaciones debe tener una Service de Kubernetes conectado.

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

  • Etiqueta tus objetos Deployment. Esto te permite usar el tráfico de la malla de servicios de administración de configuraciones, como la división del tráfico entre versiones de un mismo servicio.

En el siguiente ejemplo, los objetos Deployment y Service 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 implementar tus Services en un clúster con Cloud Service Mesh, asegúrate de hacer lo siguiente: Insertar proxies de sidecar.

¿Qué sigue?