Compartilhar via


Instalar o complemento da OSM (Malha de Serviço Aberta) usando a CLI do Azure

Este artigo mostra como instalar o complemento Malha de Serviço Aberta (OSM) em um cluster do Serviço Azure Kubernetes (AKS). O complemento do OSM instala a malha OSM no seu cluster. A malha OSM é uma malha de serviço que fornece gerenciamento de tráfego, imposição de políticas e coleta de telemetria para seus aplicativos. Para obter mais informações sobre a malha OSM, confira Malha de Serviço Aberta.

Observação

Com a desativação do Open Service Mesh (OSM) pela Cloud Native Computing Foundation (CNCF), recomendamos identificar suas configurações de OSM e migrá-las para uma configuração equivalente do Istio. Para obter informações sobre como migrar do OSM para o Istio, consulte Diretrizes de migração para configurações do OSM (Open Service Mesh) para o Istio.

Importante

Com base na versão do Kubernetes que seu cluster está executando, o complemento OSM instala uma versão diferente do OSM.

Versão do Kubernetes Versão OSM instalada
1.24.0 ou superior 1.2.5
Entre 1.23.5 e 1.24.0 1.1.3
Abaixo de 1.23.5 1.0.0

As versões mais antigas do OSM podem não estar disponíveis para instalação ou não ter suporte ativo se a versão correspondente do AKS tiver atingido o fim da vida útil. Você pode verificar o calendário de versões do Kubernetes do AKS para obter informações sobre as janelas de suporte da versão do AKS.

Pré-requisitos

  • Uma assinatura do Azure. Caso não tenha uma assinatura do Azure, é possível criar uma conta gratuita.
  • A CLI do Azure instalada.

Instalar o complemento do OSM no cluster do AKS

  1. Se você ainda não tiver um, crie um grupo de recursos do Azure utilizando o comando az group create.

    az group create --name myResourceGroup --location eastus
    
  2. Crie um novo cluster do AKS com o complemento OSM instalado usando o comando az aks create e especifique open-service-mesh para o parâmetro --enable-addons.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --enable-addons open-service-mesh \
        --generate-ssh-keys        
    

Importante

Não será possível habilitar o complemento da OSM em um cluster existente, se uma malha OSM já estiver no cluster. Desinstale as malhas OSM existentes no cluster antes de habilitar o complemento da OSM.

Ao instalar em um cluster existente, utilize o comando az aks enable-addons. O código a seguir mostra um exemplo:

az aks enable-addons \
 --resource-group myResourceGroup \
 --name myAKSCluster \
 --addons open-service-mesh

Obter as credenciais para o cluster

  • Obtenha as credenciais do cluster do AKS usando o comando az aks get-credentials.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    

Verifique se o complemento da OSM está instalado no cluster

  • Verifique se o complemento OSM está instalado no seu cluster usando o comando az aks show e especificando 'addonProfiles.openServiceMesh.enabled' para o parâmetro --query. Na saída, abaixo de addonProfiles, o valor enabled deve ser exibido como true para openServiceMesh.

    az aks show --resource-group myResourceGroup --name myAKSCluster  --query 'addonProfiles.openServiceMesh.enabled'
    

Verifique se a malha OSM está em execução no cluster

  1. Verifique a versão, o status e a configuração da malha OSM em execução no seu cluster usando o comando kubectl get deployment e exiba a versão da imagem da implantação do osm-controller.

    kubectl get deployment -n kube-system osm-controller -o=jsonpath='{$.spec.template.spec.containers[:1].image}'
    

    A saída de exemplo a seguir mostra a 0.11.1 da malha OSM:

    mcr.microsoft.com/oss/openservicemesh/osm-controller:v0.11.1
    
  2. Verifique o status dos componentes do OSM em execução em seu cluster usando os seguintes comandos kubectl para mostrar o status das implantações, pods e serviços app.kubernetes.io/name=openservicemesh.io.

    kubectl get deployments -n kube-system --selector app.kubernetes.io/name=openservicemesh.io
    kubectl get pods -n kube-system --selector app.kubernetes.io/name=openservicemesh.io
    kubectl get services -n kube-system --selector app.kubernetes.io/name=openservicemesh.io
    

    Importante

    Se algum pod tem um status diferente de Running, como Pending, o cluster pode não ter recursos suficientes para executar o OSM. Revise o dimensionamento do cluster, como o número de nós e o SKU da máquina virtual, antes de continuar usando o OSM no cluster.

  3. Verifique a configuração da sua malha OSM usando o comando kubectl get meshconfig.

    kubectl get meshconfig osm-mesh-config -n kube-system -o yaml
    

    O seguinte exemplo de saída mostra a configuração de uma malha do OSM:

    apiVersion: config.openservicemesh.io/v1alpha1
    kind: MeshConfig
    metadata:
      creationTimestamp: "0000-00-00A00:00:00A"
      generation: 1
      name: osm-mesh-config
      namespace: kube-system
      resourceVersion: "2494"
      uid: 6c4d67f3-c241-4aeb-bf4f-b029b08faa31
    spec:
      certificate:
        serviceCertValidityDuration: 24h
      featureFlags:
        enableEgressPolicy: true
        enableMulticlusterMode: false
        enableWASMStats: true
      observability:
        enableDebugServer: true
        osmLogLevel: info
        tracing:
          address: jaeger.osm-system.svc.cluster.local
          enable: false
          endpoint: /api/v2/spans
          port: 9411
      sidecar:
        configResyncInterval: 0s
        enablePrivilegedInitContainer: false
        envoyImage: mcr.microsoft.com/oss/envoyproxy/envoy:v1.18.3
        initContainerImage: mcr.microsoft.com/oss/openservicemesh/init:v0.9.1
        logLevel: error
        maxDataPlaneConnections: 0
        resources: {}
      traffic:
        enableEgress: true
        enablePermissiveTrafficPolicyMode: true
        inboundExternalAuthorization:
          enable: false
          failureModeAllow: false
          statPrefix: inboundExtAuthz
          timeout: 1s
        useHTTPSIngress: false
    

    O exemplo de saída mostra enablePermissiveTrafficPolicyMode: true, o que significa que o OSM tem o modo de política de tráfego permissivo habilitado. Com este modo habilitado na malha do OSM:

    • A aplicação da política de tráfego do SMI é ignorada.
    • A OSM descobre automaticamente os serviços que fazem parte da malha de serviço.
    • A OSM cria regras de política de tráfego em cada sidecar de proxy do Envoy para se comunicar com esses serviços.

Excluir o cluster

  • Quando você não precisa mais do cluster, você pode excluí-lo usando o comando az group delete, que remove o grupo de recursos, o cluster e todos os recursos relacionados.

    az group delete --name myResourceGroup --yes --no-wait
    

Observação

Como alternativa, você pode desinstalar o complemento da OSM e os recursos relacionados do cluster. Para obter mais informações, confira Desinstalar o complemento do Open Service Mesh do cluster do AKS.

Próximas etapas

Este artigo mostrou como instalar o complemento OSM em um cluster do AKS e verificar se ele está instalado e em execução. Com o complemento do OSM instalado no cluster, você pode implantar um aplicativo de exemplo ou integrar um aplicativo existente para trabalhar com a malha do OSM.