Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La Telepresencia es un proyecto de espacio aislado de Cloud Native Computing Foundation (CNCF) creado por el equipo de Ambassador Labs. La Telepresencia permite a los desarrolladores ejecutar servicios localmente en su máquina de desarrollo mientras están conectados a un clúster remoto de Kubernetes. Esta configuración facilita el desarrollo, depuración y prueba de aplicaciones que interactúan con otros servicios del clúster sin tener que volver a implementar ni volver a compilar toda la aplicación en Kubernetes cada vez que se realizan cambios.
Nota:
La Telepresencia es un proyecto CNCF de código abierto. Microsoft no ofrece soporte técnico para problemas que podría tener con la Telepresencia. Si tiene problemas al utilizar la Telepresencia, visite la página de problemas de la Telepresencia en GitHub y abra un problema.
En este tutorial, conectará un clúster de AKS a la Telepresencia y, a continuación, modificará una aplicación de ejemplo que se ejecuta localmente.
Funcionamiento de la Telepresencia
La Telepresencia inserta agentes de tráfico en el pod de carga de trabajo como sidecar. Los agentes de tráfico actúan como un proxy, redirigiendo el tráfico de red entrante y saliente desde el clúster AKS a su máquina local. Luego, puede desarrollar y probar en su entorno local como si su máquina local estuviera en el clúster AKS. El proceso implica:
- Conexión al clúster de AKS a la Telepresencia.
- Especificando el servicio o la implementación para los que desea interceptar el tráfico entrante y saliente y, a continuación, volver a enrutar al entorno local.
- Ejecutando la versión local del servicio. La Telepresencia conecta la versión local del servicio al clúster a través del pod proxy.
Requisitos previos
- Un clúster de AKS. Si no tiene un clúster que puede usar para este tutorial, cree uno mediante Tutorial: crear un clúster de Azure Kubernetes Service (AKS).
-
Kubectl está instalado y en la ruta de acceso en el entorno de línea de comandos que se usa para el desarrollo. En este tutorial se usa
kubectl
para administrar el clúster de Kubernetes. Si usa Azure Cloud Shell,kubectl
ya está instalado. Para instalarkubectl
localmente, use el comandoaz aks install-cli
. - Instalación de Node.js LTS. Ejecute el comando
node --version
para comprobar que Node.js está instalado.
Conexión a un clúster mediante kubectl
Nota:
Establezca los valores de $MY_RESOURCE_GROUP_NAME y $MY_AKS_CLUSTER_NAME en consecuencia.
Antes de poder instalar la Telepresencia e interactuar con el clúster de AKS, asegúrese de que está conectado al clúster. Si no ha instalado kubectl
en la sección Requisitos previos, hágalo antes de continuar.
Configure
kubectl
para conectarse al clúster de AKS mediante el comando az aks get-credentials. Con este comando se descargan las credenciales y se configura la CLI de Kubernetes para usarlas.az aks get-credentials --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_AKS_CLUSTER_NAME
Compruebe la conexión al clúster mediante el comando kubectl cluster-info. Este comando muestra el nombre del clúster para que pueda confirmar que está conectado al clúster con el que desea trabajar.
kubectl cluster-info
Clone la aplicación de muestra e impleméntela en su clúster AKS
El aplicación aks-store-demo que se usa en este tutorial es una aplicación front-end básica de la tienda, incluidas las siguientes implementaciones y servicios de Kubernetes:
- Escaparate: aplicación web para que los clientes vean productos y realicen pedidos.
- Servicio de producto: muestra información del producto.
- Servicio de pedidos: realiza pedidos.
- Rabbit MQ: cola de mensajes para una cola de pedidos.
Use git para clonar la aplicación en su entorno de desarrollo.
git clone https://github.com/Azure-Samples/aks-store-demo.git
Cambie al directorio clonado.
cd aks-store-demo
implementar la aplicación en el clúster de AKS;
kubectl apply -f aks-store-quickstart.yaml
Instalar la Telepresencia
Para interceptar el tráfico hacia y desde el clúster de AKS, debe instalar el cliente de la Telepresencia en el equipo local y el administrador de tráfico en el clúster de AKS.
Instalar el cliente de la Telepresencia
Elija el sistema operativo que usa en el equipo local e instale esa versión de la Telepresencia.
Consulte la documentación de la Telepresencia para obtener instrucciones de instalación.
Instalar el administrador de tráfico de la Telepresencia
Para enrutar el tráfico en la nube a la máquina local, la Telepresencia usa un administrador de tráfico. Helm se usa para implementar el administrador de tráfico en el clúster de Kubernetes.
telepresence helm install
Intercepte el tráfico hacia su servicio
Complete los pasos siguientes para interceptar el tráfico que va al servicio en el clúster de AKS y enrutarlo a la máquina local.
Desde la línea de comandos de la máquina local, ejecute
telepresence connect
para conectarse al clúster de AKS y al servidor de API de Kubernetes.telepresence connect
Una respuesta correcta de
telepresence connect
muestra el nombre del clúster y el espacio de nombres predeterminado al que se conecta la Telepresencia, similar al ejemplo siguiente.Connected to context myAKSCluster, namespace default (https://myAKSCluster-dns-ck7w5t5h.hcp.eastus2.azmk8s.io:443)
Use el comando
telepresence list
para mostrar una lista de los servicios que puede interceptar.telepresence list
Una respuesta correcta muestra los servicios disponibles, de forma similar al ejemplo siguiente.
order-service : ready to intercept (traffic-agent not yet installed) product-service: ready to intercept (traffic-agent not yet installed) rabbitmq : ready to intercept (traffic-agent not yet installed) store-front : ready to intercept (traffic-agent not yet installed)
Busque el nombre del puerto que necesita para interceptar el tráfico mediante
kubectl get service service-name --output yaml
. Para este tutorial, escriba el siguiente comando en la línea de comandos.kubectl get service store-front -ojsonpath='{.spec.ports[0].port}'
En este ejemplo, se devuelve el puerto que se va a interceptar, 80.
80
Intercepte el tráfico del servicio en el clúster de AKS mediante el comando
telepresence intercept
con el siguiente formato:$ telepresence intercept <service-name> --port <local-port>[:<remote-port>] --env-file <path-to-env-file>
-
--port
especifica el puerto local y el puerto remoto del clúster de AKS. -
--env-file
especifica la ruta de acceso donde la Telepresencia crea un archivo env que contiene las variables de entorno necesarias para interceptar el tráfico. Este archivo debe existir para interceptar correctamente el tráfico del servicio a la máquina local. Si no existe un archivo, la telepresencia la crea automáticamente.
Nota:
sshfs
es necesario para que los montajes de volúmenes funcionen correctamente durante las interceptaciones para las versiones de Linux y macOS de Telepresence. Si no lo tiene instalado, consulte la documentación de la Telepresencia para obtener más información.Para este tutorial, escriba el siguiente comando para interceptar el tráfico.
cd src/store-front telepresence intercept store-front --port 8080:80 --env-file .env
Una respuesta correcta muestra qué conexiones intercepta la Telepresencia, similar al ejemplo siguiente.
Using Deployment store-front Intercept name : store-front State : ACTIVE Workload kind : Deployment Destination : 127.0.0.1:8080 Service Port Identifier: 80/TCP Volume Mount Point : /tmp/telfs-3392425241 Intercepting : all TCP connections
-
Modificar el código local y ver los cambios en tiempo real
Con la Telepresencia configurada, puede modificar sin problemas el código local y ver los cambios reflejados en tiempo real. Esto le permite probar y depurar localmente mientras aprovecha el clúster de AKS.
Navegue y abra
components/TopNav.Vue
en la aplicación que ha clonado anteriormente.Cambie el elemento de navegación
Products
aNew Products
, como se muestra en el ejemplo siguiente y guarde los cambios.<template> <nav> <div class="logo"> <router-link to="/"> <img src="/contoso-pet-store-logo.png" alt="Contoso Pet Store Logo" /> </router-link> </div> <button class="hamburger" @click="toggleNav"> <span class="hamburger-icon"></span> </button> <ul class="nav-links" :class="{ 'nav-links--open': isNavOpen }"> <li><router-link to="/" @click="closeNav">Products</router-link></li> <li> <router-link to="/cart" @click="closeNav">Cart ({{ cartItemCount }})</router-link> </li> </ul> </nav> </template>
Ejecute los siguientes comandos para ejecutar la aplicación localmente.
-
npm install
: instala las dependencias. -
npm run serve
: inicia el servidor de desarrollo.
-
Al ir a la dirección IP pública del servicio store-front
en el clúster de AKS, la navegación actualizada está presente y el tráfico se enruta a la versión en ejecución local del servicio. Los cambios locales se reflejan en tiempo real e interactúan con otros servicios del clúster de AKS.
Demostración de vídeo
En el vídeo siguiente se proporciona un tutorial claro y conciso de las funcionalidades de depuración F5 de la Telepresencia.
Paso siguiente
En este tutorial se explica cómo usar la Telepresencia con una aplicación de ejemplo en AKS. La Telepresencia ofrece documentación más detallada sobre su sitio web. Su contenido trata las preguntas más frecuentes, la solución de problemas, la referencia técnica, los conceptos básicos, los tutoriales y los vínculos a la comunidad.
Azure Kubernetes Service