Instalar o complemento Open Service Mesh (OSM) usando a CLI do Azure

Este artigo mostra como instalar o complemento Open Service Mesh (OSM) em um cluster do Serviço Kubernetes do Azure (AKS). O complemento OSM instala a malha OSM no 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, consulte Open Service Mesh.

Nota

Com a desativação do Open Service Mesh (OSM) pela Cloud Native Computing Foundation (CNCF), recomendamos identificar suas configurações OSM e migrá-las para uma configuração Istio equivalente. Para obter informações sobre como migrar do OSM para o Istio, consulte Diretrizes de migração para configurações do Open Service Mesh (OSM) 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 do 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 ser ativamente suportadas se a versão correspondente do AKS tiver chegado ao fim da vida útil. Você pode verificar o calendário de lançamento do AKS Kubernetes para obter informações sobre as janelas de suporte da versão do AKS.

Pré-requisitos

Instalar o complemento OSM no cluster

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

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

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

Importante

Não poderá ativar o suplemento do OSM num cluster existente se uma malha OSM já estiver no cluster. Desinstale todas as malhas OSM existentes no cluster antes de ativar o suplemento do OSM.

Ao instalar em clusters existentes, use o az aks enable-addons comando. O código seguinte 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 para o seu cluster AKS usando o az aks get-credentials comando.

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

Verifique se o complemento OSM está instalado no cluster

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

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

Verifique se a malha do 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 cluster usando o kubectl get deployment comando e exiba a versão da imagem da implantação do controlador osm.

    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 versão 0.11.1 da malha OSM:

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

    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 tiver um status diferente de Running, como Pending, seu cluster pode não ter recursos suficientes para executar o OSM. Analise o dimensionamento do cluster, como o número de nós e a SKU da máquina virtual, antes de continuar a usar o OSM no cluster.

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

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

    O exemplo de saída a seguir mostra a configuração de uma malha 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
    

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

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

Excluir o cluster

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

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

Nota

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

Próximos passos

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