Todos os produtos
Search
Central de documentação

:Preparações

Última atualização: Jul 04, 2026

Service Mesh (ASM) oferece suporte a dois modos sem sidecar: modo Ambient Mesh e modo Alibaba Centralized Mesh Gateway (ACMG). Este tópico descreve como implantar aplicações de exemplo nesses dois modos. Prepare o ambiente antecipadamente para experimentar os recursos dos modos sem sidecar o mais rápido possível.

Pré-requisitos

  • Cluster Container Service for Kubernetes (ACK) criado que atenda às condições especificadas. Para obter mais informações, consulte a seção "Clusters e configurações Kubernetes suportados" em Limites.

  • Instância ASM criada com o modo Ambient Mesh ou modo ACMG ativado.

    Na seção Dataplane Mode da página Create Service Mesh, selecione Enable Ambient Mesh mode ou Enable ACMG Mode. Configure as demais definições conforme seus requisitos de negócios. Para obter mais informações, consulte Criar uma instância ASM.

  • Cluster ACK adicionado à instância ASM. Para obter mais informações, consulte Adicionar um cluster a uma instância ASM.

  • Gateway de entrada criado. Para obter mais informações, consulte Criar um gateway de entrada.

Implantar aplicações de exemplo

Neste exemplo, a aplicação Bookinfo é implantada. Para obter mais informações, consulte Implantar uma aplicação em um cluster associado ao ASM.

Implantar aplicações de exemplo no cluster ACK

  1. Faça login no console ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique em o nome da instância ASM. No painel de navegação à esquerda, escolha ASM Instance > Global Namespace.

  3. Ative o modo Ambient Mesh ou o modo ACMG.

    1. Modo Ambient Mesh

      1. Na página Global Namespace, localize o namespace default e clique em Switch to Ambient Mesh Mode na coluna Dataplane Mode. Na mensagem Submit, clique em OK.

    2. Modo ACMG

      1. Conecte-se à instância ASM via kubectl usando as informações do arquivo kubeconfig e ative o modo ACMG.

        kubectl label namespace default istio.io/dataplane-mode=acmg
  4. Baixe o arquivo YAML da aplicação Bookinfo no repositório Istio no GitHub. Em seguida, execute o comando a seguir para implantar a aplicação Bookinfo no namespace default:

    kubectl apply -f  bookinfo.yaml
  5. Implante uma aplicação sleep.

    1. Crie um arquivo sleep.yaml com o seguinte conteúdo:

      Expandir para visualizar o arquivo YAML

      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: sleep
      ---
      apiVersion: v1
      kind: Service
      metadata:
        name: sleep
        labels:
          app: sleep
          service: sleep
      spec:
        ports:
        - port: 80
          name: http
        selector:
          app: sleep
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: sleep
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: sleep
        template:
          metadata:
            labels:
              app: sleep
          spec:
            terminationGracePeriodSeconds: 0
            serviceAccountName: sleep
            containers:
            - name: sleep
              image: curlimages/curl
              command: ["/bin/sleep", "infinity"]
              imagePullPolicy: IfNotPresent
              volumeMounts:
              - mountPath: /etc/sleep/tls
                name: secret-volume
            volumes:
            - name: secret-volume
              secret:
                secretName: sleep-secret
                optional: true
      ---
    2. Execute o comando a seguir para implantar a aplicação sleep no namespace default:

      kubectl apply -f  sleep.yaml
  6. Implante uma aplicação notsleep.

    1. Crie um arquivo notsleep.yaml com o seguinte conteúdo:

      Expandir para visualizar o arquivo YAML

      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: notsleep
      ---
      apiVersion: v1
      kind: Service
      metadata:
        name: notsleep
        labels:
          app: notsleep
          service: notsleep
      spec:
        ports:
        - port: 80
          name: http
        selector:
          app: notsleep
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: notsleep
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: notsleep
        template:
          metadata:
            labels:
              app: notsleep
          spec:
            affinity:
              podAntiAffinity:
                preferredDuringSchedulingIgnoredDuringExecution:
                - weight: 100
                  podAffinityTerm:
                    labelSelector:
                      matchExpressions:
                      - key: app
                        operator: In
                        values:
                        - productpage
                    topologyKey: kubernetes.io/hostname 
            terminationGracePeriodSeconds: 0
            serviceAccountName: notsleep
            containers:
            - name: notsleep
              image: curlimages/curl
              command: ["/bin/sleep", "3650d"]
              imagePullPolicy: IfNotPresent
              volumeMounts:
              - mountPath: /etc/sleep/tls
                name: secret-volume
            volumes:
            - name: secret-volume
              secret:
                secretName: notsleep-secret
                optional: true
      ---
    2. Execute o comando a seguir para implantar a aplicação notsleep no namespace default:

      kubectl apply -f  notsleep.yaml

Implantar recursos de malha na instância ASM

  1. Crie um arquivo bookinfo-gateway.yaml com o seguinte conteúdo.

    Este arquivo YAML cria um gateway Istio e um serviço virtual.

    Expandir para visualizar o arquivo bookinfo-gateway.yaml

    apiVersion: networking.istio.io/v1alpha3
    kind: Gateway
    metadata:
      name: bookinfo-gateway
    spec:
      selector:
        istio: ingressgateway # use istio default controller
      servers:
      - port:
          number: 80
          name: http
          protocol: HTTP
        hosts:
        - "*"
    ---
    apiVersion: networking.istio.io/v1alpha3
    kind: VirtualService
    metadata:
      name: bookinfo
    spec:
      hosts:
      - "*"
      gateways:
      - bookinfo-gateway
      http:
      - match:
        - uri:
            exact: /productpage
        - uri:
            prefix: /static
        - uri:
            exact: /login
        - uri:
            exact: /logout
        - uri:
            prefix: /api/v1/products
        route:
        - destination:
            host: productpage
            port:
              number: 9080
    
  2. Conecte-se à instância ASM via kubectl usando as informações do arquivo kubeconfig e execute o comando a seguir para implantar os recursos de malha:

    kubectl apply -f bookinfo-gateway.yaml

Verificar recursos básicos

  1. Configure as variáveis de ambiente para o gateway de entrada executando os comandos a seguir:

    export GATEWAY_HOST=istio-ingressgateway.istio-system
    export GATEWAY_SERVICE_ACCOUNT=ns/istio-system/sa/istio-ingressgateway
  2. Teste se a aplicação Bookinfo funciona corretamente com ou sem um gateway de entrada executando os comandos a seguir.

    1. Execute o seguinte comando:

      kubectl exec deploy/sleep -- curl -s "http://$GATEWAY_HOST/productpage" | grep -o "<title>.*</title>"

      Saída esperada:

      <title>Simple Bookstore App</title>
    2. Execute o seguinte comando:

      kubectl exec deploy/sleep -- curl -s http://productpage:9080/ | grep -o "<title>.*</title>"

      Saída esperada:

      <title>Simple Bookstore App</title>
    3. Execute o seguinte comando:

      kubectl exec deploy/notsleep -- curl -s http://productpage:9080/ | grep -o "<title>.*</title>"

      Saída esperada:

      <title>Simple Bookstore App</title>

      A saída anterior indica que a aplicação Bookinfo funciona corretamente com ou sem um gateway de entrada.