Open Service Mesh habilitado para Azure Arc

Open Service Mesh (OSM) es una malla de servicio nativa ligera, extensible y en la nube que permite a los usuarios administrar de forma uniforme características de observación para entornos de microservicios muy dinámicos, así como protegerlas y disfrutar de ellas de inmediato.

OSM ejecuta un plano de control basado en Envoy en Kubernetes, se puede configurar con API de SMI y funciona insertando un proxy de Envoy como un contenedor sidecar junto a cada instancia de la aplicación. Obtenga más información sobre los escenarios de mallas de servicio que habilita Open Service Mesh.

Todos los componentes de la extensión OSM habilitada para Azure Arc se implementan en zonas de disponibilidad, lo que hace que tengan redundancia de zona.

Opciones y requisitos de instalación

Las instancias de Open Service Mesh habilitadas para Azure Arc se pueden implementar mediante Azure Portal, CLI de Azure, una plantilla de ARM o una directiva integrada de Azure.

Requisitos previos

  • Asegúrese de cumplir con todos los requisitos previos comunes para las extensiones de clúster que se enumeran aquí.
  • Uso de la versión de la extensión de la CLI de az k8s-extension>= v1.0.4

Limitaciones de compatibilidad actuales

  • En los clústeres de Kubernetes conectados a Azure Arc no se puede implementar más de una instancia de Open Service Mesh.
  • El soporte está disponible para las dos versiones secundarias publicadas más recientemente de Open Service Mesh habilitado para Arc. Busque la versión más reciente aquí. Las versiones admitidas se indican mediante notas anexadas. No tenga en cuenta las etiquetas asociadas a las versiones intermedias.
  • Actualmente se admiten las siguientes distribuciones de Kubernetes:
    • Motor de AKS (Azure Kubernetes Service)
    • Clústeres de AKS en Azure Stack HCI
    • AKS habilitado por Azure Arc
    • Cluster API de Azure
    • Google Kubernetes Engine
    • Distribución Canonical Kubernetes
    • Rancher Kubernetes Engine
    • Distribución OpenShift Kubernetes
    • Amazon Elastic Kubernetes Service
    • VMware Tanzu Kubernetes Grid
  • La integración de Azure Monitor con Open Service Mesh habilitado para Azure Arc está disponible en la versión preliminar con compatibilidad limitada.

Instalación básica mediante Azure Portal

Para implementar una instancia mediante Azure Portal, obtenga un clúster conectado a Arc y vaya a la sección Open Service Mesh del clúster.

Open Service Mesh located under Settings for Arc enabled Kubernetes cluster

Seleccione el botón Instalar extensión para implementar la versión más reciente de la extensión.

Como alternativa, puede usar la experiencia de la CLI que se captura aquí. Para realizar una incorporación a escala, lea las secciones sobre la implementación mediante una plantilla de ARM y mediante Azure Policy.

Instalación básica mediante la CLI de Azure

En los pasos siguientes se supone que ya tiene un clúster con una distribución de Kubernetes compatible conectada a Azure Arc. Asegúrese de que la variable de entorno KUBECONFIG apunta al archivo kubeconfig del clúster de Kubernetes habilitado para Arc.

Establezca las variables de entorno:

export CLUSTER_NAME=<arc-cluster-name>
export RESOURCE_GROUP=<resource-group-name>

Si usa un clúster de OpenShift, vaya directamente a Pasos de instalación de OpenShift.

Cree la extensión:

Nota:

Para anclar una versión específica de OSM, agregue la marca --version x.y.z al comando create. Tenga en cuenta que esto establecerá el valor del elemento auto-upgrade-minor-version como false.

az k8s-extension create --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --name osm

Debería ver una salida similar a la de este ejemplo. El gráfico de Helm real de la instancia de OSM puede tardar entre 3 y 5 minutos en implementarse en el clúster. Hasta que se produzca esta implementación, installState seguirá siendo Pending.

{
  "autoUpgradeMinorVersion": true,
  "configurationSettings": {},
  "creationTime": "2021-04-29T17:50:11.4116524+00:00",
  "errorInfo": {
    "code": null,
    "message": null
  },
  "extensionType": "microsoft.openservicemesh",
  "id": "/subscriptions/<subscription-id>/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Kubernetes/connectedClusters/$CLUSTER_NAME/providers/Microsoft.KubernetesConfiguration/extensions/osm",
  "identity": null,
  "installState": "Pending",
  "lastModifiedTime": "2021-04-29T17:50:11.4116525+00:00",
  "lastStatusTime": null,
  "location": null,
  "name": "osm",
  "releaseTrain": "stable",
  "resourceGroup": "$RESOURCE_GROUP",
  "scope": {
    "cluster": {
      "releaseNamespace": "arc-osm-system"
    },
    "namespace": null
  },
  "statuses": [],
  "type": "Microsoft.KubernetesConfiguration/extensions",
  "version": "x.y.z"
}

Después, valide la instalación.

Instalaciones personalizadas

En las secciones siguientes se describen determinadas instalaciones personalizadas OSM habilitado para Azure Arc. Las instalaciones personalizadas necesitan que se establezcan los valores de OSM en un archivo JSON y que se pasen al comando k8s-extension create de la CLI.

Instalación de OSM en un clúster de OpenShift

  1. Copie y guarde el siguiente contenido en un archivo JSON. Si ya ha creado un archivo de configuración, agregue la siguiente línea al archivo existente para conservar los cambios anteriores.

    {
        "osm.osm.enablePrivilegedInitContainer": "true"
    }
    
  2. Instale OSM con valores personalizados.

  3. Agregue la restricción de contexto de seguridad con privilegios a cada cuenta de servicio correspondiente a las aplicaciones de la malla.

    oc adm policy add-scc-to-user privileged -z <service account name> -n <service account namespace>
    

El gráfico de Helm real de la instancia de OSM puede tardar entre 3 y 5 minutos en implementarse en el clúster. Hasta que se produzca esta implementación, installState seguirá siendo Pending.

Para asegurarse de que la configuración del contenedor de inicialización con privilegios no se revierta al valor predeterminado, pase el valor de configuración "osm.osm.enablePrivilegedInitContainer" : "true" en todos los comandos az k8s-extension create posteriores.

Habilitación de características de alta disponibilidad durante la instalación

Los componentes del plano de control de OSM se han creado pensando en la alta disponibilidad y la tolerancia a errores. En esta sección se describe cómo habilitar el escalado automático horizontal de pods (HPA) y el presupuesto de interrupciones de pods (PDB) durante la instalación. Obtenga más información sobre las consideraciones de diseño de alta disponibilidad en OSM.

Escalado automático horizontal de pods (HPA)

HPA escala o reduce verticalmente de manera automática los pods del plano de control en función del uso medio de la CPU de destino (%) y el uso medio de memoria de destino (%) definido por el usuario. Para habilitar HPA y establecer los valores aplicables en los pods del plano de control de OSM durante la instalación, cree o anexe al archivo de configuración JSON existente como se indica a continuación, y repita los pares clave-valor para cada pod del plano de control (osmController, injector) en el que quiera habilitar HPA.

{
  "osm.osm.<control_plane_pod>.autoScale.enable" : "true",
  "osm.osm.<control_plane_pod>.autoScale.minReplicas" : "<allowed values: 1-10>",
  "osm.osm.<control_plane_pod>.autoScale.maxReplicas" : "<allowed values: 1-10>",
  "osm.osm.<control_plane_pod>.autoScale.cpu.targetAverageUtilization" : "<allowed values 0-100>",
  "osm.osm.<control_plane_pod>.autoScale.memory.targetAverageUtilization" : "<allowed values 0-100>"
}

Ahora, instale OSM con valores personalizados.

Presupuesto de interrupciones de pods (PDB)

Para evitar interrupciones durante las interrupciones planeadas, los pods osm-controller y osm-injector del plano de control y tienen una PDB que garantiza que siempre haya al menos un pod correspondiente a cada aplicación del plano de control.

Para habilitar PDB, cree o anexe al archivo de configuración JSON existente como se muestra a continuación para cada pod de plano de control deseado (osmController, injector):

{
  "osm.osm.<control_plane_pod>.enablePodDisruptionBudget" : "true"
}

Ahora, instale OSM con valores personalizados.

Instalación de OSM con cert-manager para la administración de certificados

cert-manager es un proveedor que se puede usar para emitir certificados firmados a OSM sin necesidad de almacenar claves privadas en Kubernetes. Para más información, consulte la documentación de cert-manager y la demo de cert-manager de OSM.

Nota

Use los comandos proporcionados en la documentación de GitHub sobre el OSM con precaución. Asegúrese de que incluye el espacio de nombres adecuado en los comandos o especifíquelo con la marca --osm-namespace arc-osm-system.

Para instalar OSM con cert-manager como proveedor de certificados, cree o anexe al archivo de configuración JSON existente el valor certificateProvider.kind establecido en cert-manager como se muestra a continuación. Para cambiar de los valores predeterminados de cert-manager especificados en la documentación de OSM, incluya y actualice también las líneas certmanager.issuer posteriores.

{
  "osm.osm.certificateProvider.kind" : "cert-manager",
  "osm.osm.certmanager.issuerName" : "<issuer name>",
  "osm.osm.certmanager.issuerKind" : "<issuer kind>",
  "osm.osm.certmanager.issuerGroup" : "<issuer group>"
}

Ahora, instale OSM con valores personalizados.

Instalación de OSM con Contour para procesos de entrada

OSM proporciona varias opciones para exponer los servicios de malla externamente mediante la entrada. OSM puede usar Contour, que funciona con el controlador de entrada instalado fuera de la malla y aprovisionado con un certificado para participar en la malla. Para más información, consulte la documentación de entrada y la demo de entrada de OSM.

Nota

Use los comandos proporcionados en la documentación de GitHub sobre el OSM con precaución. Asegúrese de que incluye el espacio de nombres adecuado en los comandos o especifíquelo con la marca --osm-namespace arc-osm-system. Para establecer los valores necesarios para configurar Contour durante la instalación de OSM, anexe lo siguiente al archivo de configuración JSON:

{
  "osm.osm.osmNamespace" : "arc-osm-system",
  "osm.contour.enabled" : "true",
  "osm.contour.configInline.tls.envoy-client-certificate.name" : "osm-contour-envoy-client-cert", 
  "osm.contour.configInline.tls.envoy-client-certificate.namespace" : "arc-osm-system"
}

Establecimiento de valores durante la instalación de OSM

Los valores que deben establecerse durante la instalación de OSM deben guardarse en un único archivo JSON y pasarse a través del comando de instalación de la CLI de Azure.

Después de crear un archivo JSON con los valores aplicables, como se describe en las secciones de instalación personalizada, establezca la ruta de acceso del archivo como una variable de entorno:

export SETTINGS_FILE=<json-file-path>

Ejecute el comando az k8s-extension create para crear la extensión de OSM y pase el archivo de configuración mediante la marca --configuration-settings-file:

az k8s-extension create --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --name osm --configuration-settings-file $SETTINGS_FILE

Instalación de OSM habilitado para Azure Arc mediante una plantilla de ARM

Tras conectar el clúster a Azure Arc, cree un archivo JSON con el formato siguiente y asegúrese de actualizar los valores <cluster-name> y <osm-arc-version>:

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "ConnectedClusterName": {
            "defaultValue": "<cluster-name>",
            "type": "String",
            "metadata": {
                "description": "The Connected Cluster name."
            }
        },
        "ExtensionInstanceName": {
            "defaultValue": "osm",
            "type": "String",
            "metadata": {
                "description": "The extension instance name."
            }
        },
        "ExtensionVersion": {
            "defaultValue": "<osm-arc-version>",
            "type": "String",
            "metadata": {
                "description": "The extension type version."
            }
        },
        "ExtensionType": {
            "defaultValue": "Microsoft.openservicemesh",
            "type": "String",
            "metadata": {
                "description": "The extension type."
            }
        },
        "ReleaseTrain": {
            "defaultValue": "Stable",
            "type": "String",
            "metadata": {
                "description": "The release train."
            }
        }
    },
    "functions": [],
    "resources": [
        {
            "type": "Microsoft.KubernetesConfiguration/extensions",
            "apiVersion": "2020-07-01-preview",
            "name": "[parameters('ExtensionInstanceName')]",
            "properties": {
                "extensionType": "[parameters('ExtensionType')]",
                "releaseTrain": "[parameters('ReleaseTrain')]",
                "version": "[parameters('ExtensionVersion')]"
            },
            "scope": "[concat('Microsoft.Kubernetes/connectedClusters/', parameters('ConnectedClusterName'))]"
        }
    ]
}

Establezca las variables de entorno:

export TEMPLATE_FILE_NAME=<template-file-path>
export DEPLOYMENT_NAME=<desired-deployment-name>

Ejecute este comando para instalar la extensión OSM:

az deployment group create --name $DEPLOYMENT_NAME --resource-group $RESOURCE_GROUP --template-file $TEMPLATE_FILE_NAME

Ya debería poder ver los recursos de OSM y usar la extensión OSM en el clúster.

Instalación de OSM habilitado para Azure Arc mediante una directiva integrada

La categoría Kubernetes de Azure Portal dispone de una directiva integrada: Los clústeres de Kubernetes habilitados para Azure Arc deben tener instalada la extensión Open Service Mesh. Esta directiva se puede asignar en el ámbito de una suscripción o un grupo de recursos.

La acción predeterminada de esta directiva es de Implementar si no existe. Pero puede optar por auditar las instalaciones de extensiones en los clústeres, si cambia los parámetros durante la asignación. También se le pedirá que especifique la versión que quiere instalar (v1.0.0-1 o superior) como parámetro.

Validar la instalación

Ejecute el siguiente comando:

az k8s-extension show --cluster-type connectedClusters --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --name osm

Debería ver una salida JSON similar a la siguiente:

{
  "autoUpgradeMinorVersion": true,
  "configurationSettings": {},
  "creationTime": "2021-04-29T19:22:00.7649729+00:00",
  "errorInfo": {
    "code": null,
    "message": null
  },
  "extensionType": "microsoft.openservicemesh",
  "id": "/subscriptions/<subscription-id>/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Kubernetes/connectedClusters/$CLUSTER_NAME/providers/Microsoft.KubernetesConfiguration/extensions/osm",
  "identity": null,
  "installState": "Installed",
  "lastModifiedTime": "2021-04-29T19:22:00.7649731+00:00",
  "lastStatusTime": "2021-04-29T19:23:27.642+00:00",
  "location": null,
  "name": "osm",
  "releaseTrain": "stable",
  "resourceGroup": "$RESOURCE_GROUP",
  "scope": {
    "cluster": {
      "releaseNamespace": "arc-osm-system"
    },
    "namespace": null
  },
  "statuses": [],
  "type": "Microsoft.KubernetesConfiguration/extensions",
  "version": "x.y.z"
}

Para conocer otros comandos que puede usar no solo para validar la implementación de los componentes de la extensión Open Service Mesh (OSM) en su clúster, sino también para solucionar sus problemas, consulte en la guía para la solución de problemas

Configuración del controlador de OSM

OSM implementa un recurso de MeshConfig osm-mesh-config como parte de su plano de control en el espacio de nombres arc-osm-system. El propósito de este recurso de MeshConfig es proporcionar al propietario u operador de la malla la capacidad de actualizar algunas de las configuraciones de la malla en función de sus necesidades. Para ver los valores predeterminados, use el siguiente comando.

kubectl describe meshconfig osm-mesh-config -n arc-osm-system

La salida muestra los valores predeterminados:

  Certificate:
    Cert Key Bit Size:               2048
    Service Cert Validity Duration:  24h
  Feature Flags:
    Enable Async Proxy Service Mapping:  false
    Enable Egress Policy:                true
    Enable Envoy Active Health Checks:   false
    Enable Ingress Backend Policy:       true
    Enable Multicluster Mode:            false
    Enable Retry Policy:                 false
    Enable Snapshot Cache Mode:          false
    Enable WASM Stats:                   true
  Observability:
    Enable Debug Server:  false
    Osm Log Level:        info
    Tracing:
      Enable:  false
  Sidecar:
    Config Resync Interval:            0s
    Enable Privileged Init Container:  false
    Log Level:                         error
    Resources:
  Traffic:
    Enable Egress:                          false
    Enable Permissive Traffic Policy Mode:  true
    Inbound External Authorization:
      Enable:              false
      Failure Mode Allow:  false
      Stat Prefix:         inboundExtAuthz
      Timeout:             1s
    Inbound Port Exclusion List:
    Outbound IP Range Exclusion List:
    Outbound Port Exclusion List:

Para más información, vea la Referencia de API de configuración. Observe que el valor de spec.traffic.enablePermissiveTrafficPolicyMode es true. Si OSM se establece en el modo de directiva de tráfico permisiva, se omitirá el cumplimiento de las directivas para el tráfico de SMI. En este modo, OSM detecta automáticamente los servicios que forman parte de la malla de servicio y programa reglas de la directiva de tráfico en cada sidecar del proxy de Envoy para comunicarse con estos servicios.

osm-mesh-config también se puede visualizar en Azure Portal si se selecciona Editar configuración en la sección Open Service Mesh del clúster.

Edit configuration button located on top of the Open Service Mesh section

Aplicación de cambios en la configuración del controlador de OSM

Nota

Los valores del recurso de MeshConfig osm-mesh-config son persistentes en todas las actualizaciones.

Los cambios en osm-mesh-config se pueden realizar con el comando kubectl patch. En el ejemplo siguiente, el modo de directiva de tráfico permisiva se cambia a false.

kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"traffic":{"enablePermissiveTrafficPolicyMode":false}}}' --type=merge

Si se usa un valor incorrecto, las validaciones del CRD de MeshConfig impiden el cambio con un mensaje de error en el que se explicará por qué el valor no es válido. Por ejemplo, este comando muestra lo que sucede si se revisa enableEgress con un valor no booleano:

kubectl patch meshconfig osm-mesh-config -n arc-osm-system -p '{"spec":{"traffic":{"enableEgress":"no"}}}'  --type=merge
# Validations on the CRD will deny this change
The MeshConfig "osm-mesh-config" is invalid: spec.traffic.enableEgress: Invalid value: "string": spec.traffic.enableEgress in body must be of type boolean: "string"

Otra forma de editar el recurso osm-mesh-config en Azure Portal consiste en seleccionar Editar configuración en la sección Open Service Mesh del clúster.

Edit configuration button in the Open Service Mesh section

Uso de OSM habilitado para Azure Arc

Para empezar a usar las funcionalidades de OSM, primero debe incorporar los espacios de nombres de la aplicación a la malla de servicio. Descargue la CLI de OSM de la página de versiones de OSM en GitHub. Una vez que los espacios de nombres se hayan agregado a la malla, podrá configurar las directivas de SMI para lograr la funcionalidad de OSM deseada.

Incorporación de espacios de nombres a la malla de servicio

Agregue los espacios de nombres a la malla mediante la ejecución del comando siguiente:

osm namespace add <namespace_name>

También se pueden incorporar espacios de nombres desde Azure Portal si se selecciona +Agregar en la sección Open Service Mesh del clúster.

+Add button located on top of the Open Service Mesh section

Para más información sobre la incorporación de servicio, consulte la documentación de Open Service Mesh.

Configuración de OSM con directivas de Service Mesh Interface (SMI)

Para probar las directivas de SMI, puede partir de una aplicación de ejemplo o usar el entorno de pruebas.

Nota:

Si usa aplicaciones de ejemplo, asegúrese de que sus versiones coinciden con la de la extensión OSM instalada en el clúster. Por ejemplo, si usa la versión v1.0.0 de la extensión OSM, deberá usar el manifiesto de librería de la rama release-v1.0 del repositorio ascendente de OSM.

Configuración de sus propias instancias de Jaeger, Prometheus y Grafana

La extensión OSM no instala complementos como Jaeger, Prometheus, Grafana y Flagger. En su lugar, puede integrar OSM con instancias en ejecución propias de esas herramientas. Para realizar la integración con instancias propias, vea la siguiente documentación:

Nota

Use los comandos proporcionados en la documentación de GitHub sobre el OSM con precaución. Asegúrese de que usa el nombre del espacio de nombres adecuado arc-osm-system cuando efectúe cambios en el recurso osm-mesh-config.

Supervisión de aplicaciones mediante Azure Monitor y Applications Insights (versión preliminar)

Tanto Azure Monitor como Azure Application Insights ayudan a maximizar la disponibilidad y el rendimiento de las aplicaciones y los servicios mediante una solución completa que permite recopilar datos de telemetría tanto en la nube como en entornos locales, así como analizarlos y actuar sobre ellos. Open Service Mesh habilitado para Azure Arc tiene integraciones profundas en estos dos servicios de Azure. Esta integración proporciona una experiencia sin problemas de Azure para ver y responder a KPI críticos proporcionados por las métricas de OSM.

Importante

Las características en versión preliminar de Kubernetes habilitado para Azure Arc están disponibles en autoservicio y de manera opcional. Las versiones preliminares se proporcionan "tal cual" y "como están disponibles", y están excluidas de los Acuerdos de nivel de servicio y la garantía limitada. Las versiones preliminares de Kubernetes habilitadas para Azure Arc reciben cobertura parcial del soporte al cliente en la medida de lo posible.

Siga estos pasos para permitir que Azure Monitor extraiga puntos de conexión de Prometheus para recopilar métricas de la aplicación.

  1. Siga la guía disponible aquí para asegurarse de que los espacios de nombres de la aplicación que quiere supervisar estén incorporados en la malla.

  2. Exponga los puntos de conexión de Prometheus para su uso con los espacios de nombres de la aplicación.

    osm metrics enable --namespace <namespace1>
    osm metrics enable --namespace <namespace2>
    
  3. Instale la extensión de Azure Monitor con las instrucciones disponibles aquí.

  4. Cree un Configmap en el espacio de nombres kube-system que permite que Azure Monitor supervise los espacios de nombres. Por ejemplo, cree un archivo container-azm-ms-osmconfig.yaml que incluya el siguiente código para supervisar los nombres <namespace1> y <namespace2>:

    kind: ConfigMap
    apiVersion: v1
    data:
      schema-version: v1
      config-version: ver1
      osm-metric-collection-configuration: |-
        # OSM metric collection settings
        [osm_metric_collection_configuration]
          [osm_metric_collection_configuration.settings]
              # Namespaces to monitor
              monitor_namespaces = ["<namespace1>", "<namespace2>"]
    metadata:
      name: container-azm-ms-osmconfig
      namespace: kube-system
    
  5. Ejecute el siguiente comando de kubectl

    kubectl apply -f container-azm-ms-osmconfig.yaml
    

Las métricas pueden tardar hasta 15 minutos en aparecer en Log Analytics. Puede tratar de consultar la tabla InsightsMetrics.

InsightsMetrics
| where Name contains "envoy"
| extend t=parse_json(Tags)
| where t.app == "namespace1"
  1. Acceda al clúster de Kubernetes conectado a Arc a través de este vínculo.
  2. Vaya a Azure Monitor y diríjase a la pestaña Informes para acceder al libro de OSM.
  3. Seleccione el intervalo de tiempo y el espacio de nombres para el ámbito de los servicios.

OSM workbook

Pestaña Solicitudes

En la pestaña Solicitudes se muestra un resumen de todas las solicitudes HTTP enviadas mediante conexiones de servicio a servicio en OSM.

  • Puede ver todos los servicios si seleccione el servicio en la cuadrícula.
  • Puede ver el total de solicitudes, la tasa de errores de solicitud y la latencia P90.
  • Puede explorar en profundidad el destino y ver las tendencias de códigos de error o éxito HTTP, la tasa de éxito, el uso de recursos de pod y las latencias en distintos percentiles.

Pestaña Connections (Conexiones)

En la pestaña Conexiones se muestra un resumen de todas las conexiones entre los servicios en Open Service Mesh.

  • Conexiones salientes: el número total de conexiones entre los servicios de origen y destino.
  • Conexiones salientes activas: el último recuento de conexiones activas entre el origen y el destino durante un intervalo de tiempo seleccionado.
  • Conexiones salientes con errores: el número total de conexiones con errores entre los servicios de origen y destino.

Actualización a una versión específica de OSM

Es posible que durante las actualizaciones el plano de control esté inactivo durante algunos momentos. El plano de datos solo se ve afectado durante las actualizaciones de CRD.

Actualizaciones admitidas

La extensión OSM se puede actualizar manualmente tanto en versiones secundarias como en las principales. Pero las actualizaciones automáticas (si están habilitadas) solo funcionan en versiones secundarias.

Actualización manual a una versión específica de OSM

El siguiente comando actualiza la extensión OSM-Arc a una versión específica:

az k8s-extension update --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --release-train stable --name osm --version x.y.z

Habilitación de actualizaciones automáticas

Si las actualizaciones automáticas no están habilitadas de forma predeterminada, se puede ejecutar el siguiente comando para habilitarlas. El valor actual de --auto-upgrade-minor-version se puede comprobar si se ejecuta el comando az k8s-extension show como se detalla en el paso Validación de la instalación.

az k8s-extension update --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters --release-train stable --name osm --auto-upgrade-minor-version true

Desinstalación de OSM habilitado para Azure Arc

Use el comando siguiente:

az k8s-extension delete --cluster-type connectedClusters --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --name osm -y

Compruebe que se ha eliminado la instancia de la extensión:

az k8s-extension list --cluster-type connectedClusters --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP

Esta salida no debe incluir a OSM. Si no tiene otras extensiones instaladas en el clúster, es una matriz vacía.

Cuando se usa el comando az k8s-extension para eliminar la extensión de OSM, el espacio de nombres arc-osm-system no se quita y los recursos reales dentro del espacio de nombres (como la configuración de webhook de mutación y el pod osm-controller) tardan aproximadamente 10 minutos en eliminarse.

Nota:

Use la CLI de az k8s-extension para desinstalar los componentes de OSM administrados por Arc. Arc no admite el uso de la CLI de OSM para las desinstalaciones y puede producirse un comportamiento no deseado.

Pasos siguientes