Observação: os serviços canônicos são compatíveis com a versão 1.6.8 do Anthos Service Mesh e versões mais recentes.
Os serviços canônicos são um grupo de cargas de trabalho que implementam os mesmos serviços e APIs. Para os tipos de carga de trabalho compatíveis, o Anthos Service Mesh cria recursos de serviço canônico automaticamente com base nas informações existentes do servidor da API Kubernetes. Veja nesta página quais rótulos definem serviços canônicos automaticamente e saiba como é possível ajustar os limites dos serviços manualmente.
Os tipos de instância de carga de trabalho atualmente compatíveis são:
- Pods do Kubernetes (inclusive via implantações do Kubernetes, serviços de execução do Kube etc.)
- Instâncias de máquina virtual
O que define serviços canônicos
O Anthos Service Mesh determina a assinatura do serviço canônico lendo o
rótulo
service.istio.io/canonical-name
(em inglês) no recurso de configuração do Kubernetes associado a cada instância de carga de trabalho:
- Para pods, o rótulo está no recurso de pod do Kubernetes
- Para VMs, o rótulo no recurso WorkloadEntry do Istio (link em inglês).
Os serviços canônicos têm o mesmo namespace do Kubernetes (em inglês) que as instâncias de carga de trabalho associadas e não podem abranger namespaces.
Regras de rotulagem automática
O Anthos Service Mesh agrupa as cargas de trabalho em serviços canônicos automaticamente sem nenhuma ação da sua parte.
Você só precisa:
- ajustar a clareza do rótulo para o usuário/leitor;
- substituir o comportamento padrão.
Rotulagem automática nos pods do Kubernetes
Os serviços canônicos se concentram nos rótulos app.kubernetes.io/name
e
app
do Kubernetes. Observe que o rótulo antigo tem precedência.
Nenhuma outra ação será necessária se você usar um desses dois rótulos nas cargas de trabalho.
Rotulagem automática em máquinas virtuais
Para criar serviços canônicos nas VMs, é necessário adicionar as VMs a uma malha de serviço. Basta configurar um recurso WorkloadEntry no servidor da API Kubernetes.
Rotulagem manual
Para aplicar ou substituir um rótulo de serviço canônico manualmente, aplique o
rótulo service.istio.io/canonical-name
às suas configurações de Pod ou
WorkloadEntry.
Rotulagem manual nos pods do Kubernetes
Para implantar muitos pods de uma só vez usando uma implantação,
defina o rótulo service.istio.io/canonical-name
no 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:
...
Para rotular o serviço canônico de um único pod, adicione o
rótulo service.istio.io/canonical-name
à seção labels
da configuração do
pod:
apiVersion: v1
kind: Pod
metadata:
name: my-test-pod
namespace: my-namespace
labels:
service.istio.io/canonical-name: my-service
spec:
...
Rotular máquinas virtuais manualmente
Para rotular o serviço canônico em uma única VM/WorkloadEntry, adicione o
rótulo service.istio.io/canonical-name
à seção "labels" da sua configuração de 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:
...
A seguir
- Saiba mais sobre os serviços canônicos
- Saiba mais sobre as práticas recomendadas para serviços canônicos