Serviços de implementação

A implementação de serviços em clusters com o Cloud Service Mesh é quase igual à implementação de serviços em clusters sem o Cloud Service Mesh. Tem de fazer algumas alterações aos seus manifestos do Kubernetes:

  • Crie serviços Kubernetes para todos os contentores. Todas as implementações devem ter um serviço Kubernetes anexado.

  • Atribua um nome às portas de serviço. Embora o GKE lhe permita definir portas de serviço sem nome, o Cloud Service Mesh requer que forneça um nome para uma porta que corresponda ao protocolo da porta.

  • Etiquete as suas implementações. Isto permite-lhe usar funcionalidades de gestão de tráfego do Cloud Service Mesh, como dividir o tráfego entre versões do mesmo serviço.

A implementação e o serviço de exemplo seguintes ilustram estes 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

Depois de implementar os seus serviços num cluster com a Cloud Service Mesh, certifique-se de que injeta proxies sidecar.

O que se segue?