O componente servicemesh-operator automatiza a implantação e o gerenciamento do ciclo de vida do Alibaba Cloud Service Mesh (ASM) em um cluster Container Service for Kubernetes (ACK). Após a instalação, ele cuida do provisionamento, da inscrição do cluster e da sincronização de configurações. Assim, você interage com o ASM exclusivamente por meio de recursos personalizados nativos do Kubernetes, sem precisar alternar entre consoles. Isso permite ativar rapidamente recursos avançados do ASM, como gerenciamento de tráfego, segurança e observabilidade.
Pré-requisitos
Antes de começar, verifique se você tem:
Um cluster ACK executando Kubernetes 1.28 ou posterior
Uma instância ASM ativada
Como funciona
A instalação do servicemesh-operator aciona automaticamente a seguinte sequência:
O sistema implanta um controlador chamado
servicemesh-operatorno plano de controle do cluster. Ele monitora e reconcilia os recursos personalizados ServiceMesh.O sistema cria a CustomResourceDefinition (CRD)
servicemesh.istio.alibabacloud.com.O sistema cria automaticamente um recurso personalizado (CR) ServiceMesh chamado
mesh.O controlador provisiona uma instância ASM Standard Edition chamada
mesh-for-${cluster ID}e inscreve o cluster ACK nela.
Após a conclusão do provisionamento, consulte o CR mesh para acompanhar o progresso e monitorar o estado atual.
Monitorar o status da instância ASM
Console
Na página ACK Clusters, clique em no nome do cluster. No painel de navegação à esquerda, clique em Workloads > Custom Resources.
-
Na página Custom Resources, pesquise por
ServiceMesh. Nos resultados, clique em no nome do ServiceMesh emistio.alibabacloud.com. Em seguida, clique em Actions > Edit YAML. Exemplo de YAML:apiVersion: istio.alibabacloud.com/v1beta1 kind: ServiceMesh metadata: annotations: operator.istio.alibabacloud.com/deletion-policy: Retain creationTimestamp: "2026-01-09T02:25:12Z" finalizers: - servicemeshoperator.finalizers.alibabacloud.com generation: 2 name: asm resourceVersion: "36619976" uid: 94967e01-fc25-477e-9da9-4df42cede8ba spec: clusterSpec: Enterprise status: clusterSpec: Enterprise conditions: - lastTransitionTime: "2026-01-09T02:25:19Z" message: "" observedGeneration: 2 reason: Passed status: "True" type: PreChecked - lastTransitionTime: "2026-01-09T02:25:32Z" message: "" observedGeneration: 2 reason: Available status: "True" type: ServiceMeshAvailable - lastTransitionTime: "2026-01-09T02:25:32Z" message: "" observedGeneration: 2 reason: Succeeded status: "True" type: ClusterEnrolled - lastTransitionTime: "2026-01-09T02:25:38Z" message: "" observedGeneration: 2 reason: Succeeded status: "True" type: MeshConfigApplied serviceMeshId: c6490deb776cc458c82c4c22a69315bae serviceMeshName: mesh-for-cf17b23e9fa6b4fb081c58a33964cd3dc
kubectl
-
Visualize o CR ServiceMesh:
kubectl get servicemesh mesh -n istio-system -o yamlSaída esperada:
apiVersion: istio.alibabacloud.com/v1beta1 kind: ServiceMesh metadata: annotations: operator.istio.alibabacloud.com/deletion-policy: Retain creationTimestamp: "2026-01-09T02:25:12Z" finalizers: - servicemeshoperator.finalizers.alibabacloud.com generation: 2 name: asm resourceVersion: "36619976" uid: 94967e01-fc25-477e-9da9-4df42cede8ba spec: clusterSpec: Enterprise status: clusterSpec: Enterprise conditions: - lastTransitionTime: "2026-01-09T02:25:19Z" message: "" observedGeneration: 2 reason: Passed status: "True" type: PreChecked - lastTransitionTime: "2026-01-09T02:25:32Z" message: "" observedGeneration: 2 reason: Available status: "True" type: ServiceMeshAvailable - lastTransitionTime: "2026-01-09T02:25:32Z" message: "" observedGeneration: 2 reason: Succeeded status: "True" type: ClusterEnrolled - lastTransitionTime: "2026-01-09T02:25:38Z" message: "" observedGeneration: 2 reason: Succeeded status: "True" type: MeshConfigApplied serviceMeshId: c6490deb776cc458c82c4c22a69315bae serviceMeshName: mesh-for-cf17b23e9fa6b4fb081c58a33964cd3dc
Interpretar as condições de status
O controlador reconcilia a instância ASM em quatro etapas ordenadas. Cada etapa aparece como uma condição em status.conditions. Uma instância íntegra apresenta todas as quatro condições com status: "True":
|
Tipo de condição |
Significado |
Motivo esperado |
|
|
Verificações preliminares aprovadas |
|
|
|
Instância ASM provisionada e disponível |
|
|
|
Cluster ACK inscrito na instância ASM |
|
|
|
Configuração do mesh aplicada ao cluster |
|
Caso alguma condição exiba status: "False" ou status: "Unknown", verifique o campo message dessa condição para obter detalhes sobre a falha.
Limitações
O
servicemesh-operatorsuporta apenas vinculação um para um entre instância ASM e cluster ACK. Para atualizar uma instância ASM existente, use o console do ASM.A Standard Edition é gratuita, mas não possui Acordo de Nível de Serviço (SLA), limita-se a 50 pods e está disponível apenas na China continental. A criação de instâncias Standard Edition em outras regiões falha. Para usar outra edição, defina
.spec.clusterSpeccomoEnterpriseouUltimateno CR ServiceMesh. Para detalhes de faturamento, consulte Visão geral do faturamento.
A exclusão de um CR ServiceMesh remove o cluster ACK do ASM. Se o cluster utilizar ativamente recursos do ASM, como gateways ou proxies Sidecar, a remoção falhará. Verifique status.conditions para confirmar o estado atual antes de excluir.
A anotação de exclusão determina se a instância ASM será excluída junto com o CR ServiceMesh. Defina essa anotação intencionalmente — o comportamento padrão é Retain. Consulte Política de exclusão para mais detalhes.
Referência do CRD ServiceMesh
O recurso ServiceMesh define o estado desejado e real de um service mesh ASM em um cluster Kubernetes. Alguns campos de .spec são mutáveis e sua alteração aciona atualizações nas propriedades correspondentes do mesh.
Spec (.spec)
|
Campo |
Tipo |
Descrição |
Padrão |
Obrigatório |
Mutável |
|
|
string |
ID do service mesh. O sistema gera um valor caso nenhum seja definido. Especifique este campo para criar um novo service mesh ou adicionar o cluster a um mesh existente. Tem precedência sobre |
N/A |
Não |
Não |
|
|
string |
Nome do service mesh. O padrão é |
N/A |
Não |
Sim |
|
|
string |
Edição do ASM. Valores válidos: |
|
Não |
Sim |
Status (.status)
|
Campo |
Tipo |
Descrição |
|
|
string |
Nome exclusivo da instância ASM criada pelo controlador. Registrado antes da primeira solicitação de criação e imutável durante a reconciliação para evitar instâncias duplicadas. |
|
|
string |
ID da instância ASM criada com sucesso, recuperado do Alibaba Cloud após o provisionamento. |
|
|
string |
Edição da instância ASM criada. |
|
|
[]ServiceMeshCondition |
Lista ordenada das etapas de reconciliação e seus status atuais. |
ServiceMeshCondition
|
Campo |
Tipo |
Descrição |
|
|
metav1.Time |
Timestamp da última alteração de status desta condição. |
|
|
string |
|
|
|
string |
Etapa de reconciliação: |
|
|
string |
Contexto adicional sobre a condição, útil principalmente quando uma etapa falha. |
|
|
string |
Código de motivo legível por máquina: |
Anotações especiais
Nova tentativa
Em caso de erro de reconciliação, defina a anotação operator.istio.alibabacloud.com/retry-at para acionar uma nova tentativa:
kubectl annotate servicemesh mesh operator.istio.alibabacloud.com/retry-at=""
O controlador repetirá automaticamente a operação que falhou.
Política de exclusão
Use a anotação operator.istio.alibabacloud.com/deletion-policy para controlar o destino da instância ASM ao excluir o CR ServiceMesh:
Retain(padrão): A instância ASM permanece no Alibaba Cloud.Delete: A instância ASM é excluída do Alibaba Cloud.
Defina esta anotação ao criar o recurso:
apiVersion: istio.alibabacloud.com/v1beta1
kind: ServiceMesh
metadata:
name: advanced-mesh
annotations:
operator.istio.alibabacloud.com/deletion-policy: Delete # or Retain
spec:
name: advanced-service-mesh
clusterSpec: Ultimate
Se a anotação estiver definida como Delete, a exclusão do cluster ACK também excluirá a instância ASM.