Versione 1.13

Definizione di un servizio canonico

Nota: i servizi canonici sono supportati automaticamente in Anthos Service Mesh versione 1.6.8 e successive.

Servizi canonici è un gruppo di carichi di lavoro che implementa gli stessi servizi e API. Per i tipi di carichi di lavoro supportati, Anthos Service Mesh crea automaticamente risorse di servizio canoniche in base alle informazioni esistenti del server API Kubernetes. Questa pagina spiega quali etichette definiscono automaticamente i servizi canonici e come puoi regolare manualmente i limiti dei tuoi servizi.

I tipi di istanze del carico di lavoro attualmente supportati sono:

  • Pod Kubernetes (anche tramite deployment Kubernetes, servizi Kube Run e così via)
  • Istanze di macchine virtuali

Cosa definisce i servizi canonici

Anthos Service Mesh determina l'appartenenza al servizio canonico leggendo l' service.istio.io/canonical-name etichetta nella risorsa di configurazione Kubernetes associata a ogni istanza del carico di lavoro:

  • Per i pod, l'etichetta si trova nella risorsa del pod Kubernetes
  • Per le VM, l'etichetta nella risorsa Istio WorkloadEntry

I servizi canonici hanno lo stesso spazio dei nomi Kubernetes delle istanze di carico di lavoro associate e non possono includere spazi dei nomi.

Regole relative all'etichetta automatica

Anthos Service Mesh raggruppa automaticamente i tuoi carichi di lavoro in Servizi canonici senza alcun intervento da parte tua.

Devi intervenire soltanto per:

  • Regola le etichette per la chiarezza di utente/lettore
  • Ignora il comportamento predefinito.

Etichettatura automatica nei pod di Kubernetes

I servizi canonici si concentrano sulle etichette app.kubernetes.io/name e app di Kubernetes. Tieni presente che la precedente etichetta ha la precedenza.

Se utilizzi una di queste due etichette sui tuoi carichi di lavoro, non sono necessarie ulteriori operazioni.

Etichettatura automatica nelle macchine virtuali

Per creare servizi canonici sulle tue VM, devi aggiungere le VM a un mesh di servizi configurando una risorsa WorkloadEntry nel server API Kubernetes.

Etichettatura manuale

Per applicare manualmente o sostituire un'etichetta di servizio canonico, applica l'etichetta service.istio.io/canonical-name alle configurazioni del pod o del carico di lavoro.

Etichettatura manuale nei pod di Kubernetes

Per eseguire il deployment di più pod contemporaneamente mediante un deployment, imposta l'etichetta service.istio.io/canonical-name su PodTemplateSpec:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
  namespace: my-namespace
spec:
  replicas: 3
  template:
    metadata:
      labels:
        service.istio.io/canonical-name: my-service
    spec:
      containers:
        ...

Per etichettare il servizio canonico di un singolo pod, aggiungi l'etichetta service.istio.io/canonical-name alla sezione labels della configurazione del pod:

apiVersion: v1
kind: Pod
metadata:
  name: my-test-pod
  namespace: my-namespace
  labels:
    service.istio.io/canonical-name: my-service
spec:
  ...

Etichetta manualmente le macchine virtuali

Per etichettare il servizio canonico di una singola VM/WorkloadEntry, aggiungere l'etichetta service.istio.io/canonical-name alla sezione "labels" della configurazione di WorkloadEntry:

apiVersion: networking.istio.io/v1alpha3
kind: WorkloadEntry
metadata:
  name: my-vm-123
  namespace: my-namespace
  labels:
    service.istio.io/canonical-name: my-service
spec:
  ...

Passaggi successivi