Implementa objetos Service

Implementar objetos Service en clústeres con Cloud Service Mesh es casi la misma que la implementación de 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. Todos los objetos Deployment deben tener un objeto 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 del puerto.

  • Etiqueta tus objetos Deployment. Esto te permite usar las funciones de administración de tráfico de Cloud Service Mesh, como la división del tráfico entre versiones del 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 servicios en un clúster con Cloud Service Mesh, asegúrate de inyectar proxies de sidecar.

¿Qué sigue?