Compartir por


Instalación del complemento Open Service Mesh mediante la CLI de Azure

Este artículo le muestra cómo instalar el complemento Open Service Mesh (OSM) en un clúster de Azure Kubernetes Service (AKS). El complemento de OSM instala la malla OSM en su clúster. La malla de OSM es una malla de servicio que proporciona la administración del tráfico, la aplicación de directivas y la recopilación de telemetría para las aplicaciones. Para más información sobre la malla de OSM, consulte Open Service Mesh.

Nota:

Con la retirada de Open Service Mesh (OSM) de Cloud Native Computing Foundation (CNCF), se recomienda identificar las configuraciones de OSM y migrarlas a una configuración equivalente de Istio. Para obtener información sobre la migración de OSM a Istio, consulte Guía de migración para configuraciones de Open Service Mesh (OSM) a Istio.

Importante

Según la versión de Kubernetes que ejecuta el clúster, el complemento de OSM instalará una versión diferente de OSM.

Versión de Kubernetes Versión instalada de OSM
1.24.0 o superior 1.2.5
Entre 1.23.5 y 1.24.0 1.1.3
Anterior a 1.23.5 1.0.0

Es posible que las versiones anteriores de OSM no estén disponibles para su instalación o se admita activamente si la versión de AKS correspondiente ha alcanzado el final del ciclo de vida. Puede comprobar el calendario de versiones de Kubernetes de AKS para obtener información sobre las ventanas de compatibilidad con versiones de AKS.

Requisitos previos

Instalación del complemento OSM en el clúster

  1. Si aún no tiene uno, cree un grupo de recursos de Azure mediante el comando az group create.

    az group create --name myResourceGroup --location eastus
    
  2. Cree un nuevo clúster de AKS con el complemento OSM instalado mediante el comando az aks create y especifique open-service-mesh para el parámetro --enable-addons.

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

Importante

No se puede habilitar el complemento OSM en un clúster existente si ya hay una malla de OSM en el clúster. Desinstale las mallas de OSM existentes en el clúster antes de habilitar el complemento de OSM.

Al instalar en un clúster existente, use el comando az aks enable-addons. El código siguiente muestra un ejemplo:

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

Obtención de las credenciales del clúster

  • Obtenga las credenciales del clúster de AKS mediante el comando az aks get-credentials.

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

Comprobación de que el complemento OSM está instalado en el clúster

  • Verifique que el complemento OSM está instalado en su clúster usando el comando az aks show y especifique 'addonProfiles.openServiceMesh.enabled' para el parámetro --query. En la salida, en addonProfiles, el valor enabled debería mostrarse como true para openServiceMesh.

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

Comprobación de que la malla de OSM se está ejecutando en el clúster

  1. Verifique la versión, el estado y la configuración de la malla de OSM que se ejecuta en su clúster usando el comando kubectl get deployment y visualice la versión de la imagen de la implementación osm-controller.

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

    En la salida de ejemplo siguiente aparece la versión 0.11.1 de la malla de OSM:

    mcr.microsoft.com/oss/openservicemesh/osm-controller:v0.11.1
    
  2. Verifique el estado de los componentes OSM que se ejecutan en su clúster usando los siguientes comandos kubectlpara mostrar el estado de las implementaciones, pods y servicios de 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

    Si algún pod tiene un estado distinto de Running, como, por ejemplo, Pending, es posible que el clúster no tenga suficientes recursos para ejecutar OSM. Revise el dimensionamiento del clúster, como el número de nodos y la SKU de máquina virtual, antes de seguir utilizando OSM en el clúster.

  3. Verifique la configuración de su malla OSM usando el comando kubectl get meshconfig.

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

    La siguiente salida de ejemplo muestra la configuración de una malla de 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
    

    El ejemplo anterior muestra enablePermissiveTrafficPolicyMode: true, lo que significa que OSM tiene habilitado un modo de directiva de tráfico permisivo. Con este modo habilitado en la malla de OSM:

    • Se omite la aplicación de la directiva de tráfico de SMI.
    • OSM detecta automáticamente los servicios que forman parte de la malla de servicio.
    • OSM crea reglas de directiva de tráfico en cada sidecar de proxy de Envoy para poder comunicarse con estos servicios.

Eliminación del clúster

  • Cuando ya no necesite el clúster, puede eliminarlo usando el comando az group delete, que elimina el grupo de recursos, el clúster y todos los recursos relacionados.

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

Nota

Como alternativa, puede desinstalar el complemento de OSM y los recursos relacionados del clúster. Para más información, consulte Desinstalación del complemento Open Service Mesh (OSM) del clúster de AKS.

Pasos siguientes

En este artículo se muestra cómo instalar el complemento OSM en un clúster de AKS y comprobar que está instalado y en ejecución. Con el complemento OSM instalado en el clúster, puede implementar una aplicación de ejemplo o incorporar una aplicación existente para trabajar con la malla de OSM.