Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Telepresence är ett SANDBOX-projekt (Cloud Native Computing Foundation) som skapats av teamet på Ambassador Labs. Med telepresence kan utvecklare köra tjänster lokalt på utvecklingsdatorn när de är anslutna till ett fjärranslutet Kubernetes-kluster. Den här konfigurationen gör det enklare att utveckla, felsöka och testa program som interagerar med andra tjänster i klustret utan att behöva distribuera om eller återskapa hela programmet i Kubernetes varje gång ändringar görs.
Kommentar
Telepresence är ett CNCF-projekt med öppen källkod. Microsoft erbjuder inte stöd för problem som du kan ha med Telepresence. Om du har problem med att använda Telepresence går du till deras GitHub-problemsida för Telepresence och öppnar ett problem.
I den här självstudien ansluter du ett AKS-kluster till Telepresence och ändrar sedan ett exempelprogram som körs lokalt.
Så här fungerar Telepresence
Telepresence matar in trafikagenter i arbetsbelastningspodden som en sidovagn. Trafikagenterna fungerar som en proxy och omdirigerar inkommande och utgående nätverkstrafik från AKS-klustret till den lokala datorn. Sedan kan du utveckla och testa i din lokala miljö som om den lokala datorn fanns i AKS-klustret. Processen omfattar:
- Ansluta till ditt AKS-kluster till Telepresence.
- Ange den tjänst eller distribution som du vill fånga upp inkommande och utgående trafik för och sedan omdirigera till din lokala miljö.
- Köra den lokala versionen av tjänsten. Telepresence ansluter den lokala versionen av tjänsten till klustret via proxypodden.
Förutsättningar
- Ett AKS-kluster. Om du inte har ett kluster som du kan använda för den här självstudien skapar du ett med hjälp av Självstudie – Skapa ett AKS-kluster (Azure Kubernetes Service).
- Kubectl installeras och på sökvägen i kommandoradsmiljön som du använder för utveckling. I den här självstudien används
kubectl
för att hantera Kubernetes-klustret.kubectl
är redan installerat om du använder Azure Cloud Shell. Om du vill installerakubectl
lokalt använder duaz aks install-cli
kommandot . - Installera Node.js LTS. Kör kommandot
node --version
för att verifiera att Node.js har installerats.
Ansluta till klustret med kubectl
Kommentar
Ange värdena för $MY_RESOURCE_GROUP_NAME och $MY_AKS_CLUSTER_NAME i enlighet med detta.
Innan du kan installera Telepresence och interagera med ditt AKS-kluster kontrollerar du att du är ansluten till klustret. Om du inte installerade kubectl
i avsnittet Krav gör du det innan du fortsätter.
Konfigurera
kubectl
för att ansluta till ditt AKS-kluster med kommandot az aks get-credentials . Det här kommandot laddar ned autentiseringsuppgifter och konfigurerar Kubernetes CLI för att använda dem.az aks get-credentials --resource-group $MY_RESOURCE_GROUP_NAME --name $MY_AKS_CLUSTER_NAME
Kontrollera anslutningen till klustret med kommandot kubectl cluster-info . Det här kommandot visar namnet på klustret så att du kan bekräfta att du är ansluten till klustret som du vill arbeta med.
kubectl cluster-info
Klona exempelappen och distribuera den till ditt AKS-kluster
Aks-store-demo-appen som används i den här självstudien är en grundläggande store-klientapp, inklusive följande Kubernetes-distributioner och -tjänster:
- Butiksfront: Webbprogram där kunder kan visa produkter och göra beställningar.
- Produkttjänst: Visar produktinformation.
- Ordertjänst: Gör beställningar.
- Rabbit MQ: Meddelandekö för en orderkö.
Använd git för att klona exempelprogrammet till utvecklingsmiljön.
git clone https://github.com/Azure-Samples/aks-store-demo.git
Ändra till den klonade katalogen.
cd aks-store-demo
Distribuera appen till ditt AKS-kluster.
kubectl apply -f aks-store-quickstart.yaml
Installera Telepresence
Om du vill fånga upp trafik till och från ditt AKS-kluster måste du installera Telepresence-klienten på den lokala datorn och trafikhanteraren till AKS-klustret.
Installera Telepresence-klienten
Välj det operativsystem som du använder på den lokala datorn och installera den versionen av Telepresence.
Se dokumentationen om Telepresence för installationsanvisningar.
Installera Trafikhanteraren för Telepresence
För att dirigera molntrafik till din lokala dator använder Telepresence en trafikhanterare. Helm används för att distribuera trafikhanteraren till ditt Kubernetes-kluster.
telepresence helm install
Fånga upp trafik till din tjänst
Utför följande steg för att fånga upp trafik som går till din tjänst i AKS-klustret och dirigera den till den lokala datorn.
Från kommandoraden på den lokala datorn kör du
telepresence connect
för att ansluta till AKS-klustret och Kubernetes API-servern.telepresence connect
Ett lyckat svar från
telepresence connect
visar klusternamnet och standardnamnområdet som Telepresence är anslutet till, ungefär som i följande exempel.Connected to context myAKSCluster, namespace default (https://myAKSCluster-dns-ck7w5t5h.hcp.eastus2.azmk8s.io:443)
telepresence list
Använd kommandot för att visa en lista över de tjänster som du kan avlyssna.telepresence list
Ett lyckat svar visar tillgängliga tjänster, ungefär som i följande exempel.
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)
Leta reda på namnet på den port som du behöver för att fånga upp trafik från att använda
kubectl get service service-name --output yaml
. I den här självstudien anger du följande kommando på kommandoraden.kubectl get service store-front -ojsonpath='{.spec.ports[0].port}'
I det här exemplet returneras porten för avlyssning, 80.
80
Fånga upp trafiken från din tjänst i AKS-klustret med hjälp av
telepresence intercept
kommandot med följande format:$ telepresence intercept <service-name> --port <local-port>[:<remote-port>] --env-file <path-to-env-file>
--port
anger den lokala porten och fjärrporten för AKS-klustret.--env-file
anger sökvägen där Telepresence skapar en env-fil som innehåller de miljövariabler som behövs för att fånga upp trafik. Den här filen måste finnas för att kunna fånga upp tjänstens trafik till den lokala datorn. Om en fil inte finns skapar telepresence den åt dig.
Kommentar
sshfs
krävs för att volymmonteringar ska fungera korrekt under skärningspunkter för både Linux- och macOS-versioner av Telepresence. Mer information finns i dokumentationen om Telepresence om du inte har installerat den.I den här självstudien anger du följande kommando för att fånga upp trafiken.
cd src/store-front telepresence intercept store-front --port 8080:80 --env-file .env
Ett lyckat svar visar vilka anslutningar Telepresence fångar upp, ungefär som i följande exempel.
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
Ändra din lokala kod och se ändringar i realtid
När Telepresence har konfigurerats kan du sömlöst ändra din lokala kod och se ändringarna återspeglas i realtid. På så sätt kan du testa och felsöka lokalt när du använder AKS-klustret.
Navigera och öppna
components/TopNav.Vue
i programmet som du klonade tidigare.Ändra navigeringsobjektet
Products
tillNew Products
, enligt följande exempel, och spara ändringarna.<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>
Kör följande kommandon för att köra appen lokalt.
npm install
– Installerar beroendena.npm run serve
– Startar utvecklingsservern.
När du går till den offentliga IP-adressen store-front
för tjänsten i aks-klustret finns den uppdaterade navigeringen och trafiken dirigeras till din lokalt igång-version av tjänsten. Dina lokala ändringar återspeglas i realtid och interagerar med andra tjänster i AKS-klustret.
Videodemo
Följande video ger en tydlig och kortfattad genomgång av Telepresences F5-felsökningsfunktioner.
Gå vidare
I den här självstudien beskrivs hur du använder Telepresence med ett exempelprogram på AKS. Telepresence erbjuder mer djupgående dokumentation på sin webbplats. Innehållet omfattar vanliga frågor och svar, felsökning, teknisk referens, grundläggande begrepp, självstudier och länkar till communityn.
Azure Kubernetes Service