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
- Suscripción a Azure. Si no tiene una suscripción a Azure, puede crear una cuenta gratuita.
- La CLI de Azure instalada.
Instalación del complemento OSM en el clúster
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
Cree un nuevo clúster de AKS con el complemento OSM instalado mediante el comando
az aks create
y especifiqueopen-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, enaddonProfiles
, el valorenabled
debería mostrarse comotrue
paraopenServiceMesh
.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
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
Verifique el estado de los componentes OSM que se ejecutan en su clúster usando los siguientes comandos
kubectl
para mostrar el estado de las implementaciones, pods y servicios deapp.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.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.
Azure Kubernetes Service