Sdílet prostřednictvím


Použití mostu na Kubernetes s ukázkou

Tato ukázka ukazuje, jak lze most na Kubernetes použít k vývoji verze mikroslužby jednoduché aplikace TODO v jakémkoli clusteru Kubernetes. Tato ukázka pomocí editoru Visual Studio Code byla upravena z kódu poskytovaného todoMVC. V tomto příkladu používáme MiniKube k hostování aplikace, ale tento postup by měl fungovat s jakýmkoli clusterem Kubernetes.

Ukázka aplikace TODO se skládá z front-endu a back-endu, který poskytuje trvalé úložiště. Tato rozšířená ukázka přidá součást statistiky a rozdělí aplikaci do řady mikroslužeb, konkrétně:

  • Front-end volá rozhraní DATABASE-API k zachování a aktualizaci položek toDO;
  • Služba databázového rozhraní API spoléhá na databázi Mongo k zachování položek toDO;
  • Front-end zapisuje události přidání, dokončení a odstranění do fronty RabbitMQ;
  • Pracovní proces statistiky přijímá události z fronty RabbitMQ a aktualizuje mezipaměť Redis;
  • Rozhraní API statistiky zveřejňuje statistiky uložené v mezipaměti pro front-end, které se mají zobrazit.

Tato rozšířená aplikace TODO se skládá ze šesti vzájemně propojených komponent.

Požadavky

Instalace MiniKube

Můžete použít libovolného poskytovatele Kubernetes s bridge na Kubernetes. V tomto článku používáme MiniKube. MiniKube je jednoduchý poskytovatel Kubernetes, který umožňuje hostovat Kubernetes na místním počítači. Postupujte podle pokynů k instalaci MiniKube ve Windows 10, Linuxu nebo macOS.

Nejlepších výsledků ve Windows 10 byste měli použít správce virtuálních počítačů Hyper-V a vytvořit virtuální přepínač.

Po instalaci spusťte MiniKube, zadejte použití technologie Hyper-V a zadejte název primárního virtuálního přepínače. Tento příkaz musí být spuštěn z příkazového řádku s oprávněními Správa istrator.

minikube start --vm-driver hyperv --hyperv-virtual-switch "Primary Virtual Switch"

Nasazení aplikace

Naklonujte přeměk do úložiště Kubernetes a otevřete příkazové okno s aktuální pracovní složkou do aplikace todo-app.

Vytvořte obor názvů pro ukázku.

kubectl create namespace todo-app

Pak použijte manifest nasazení:

kubectl apply -n todo-app -f deployment.yaml

Jedná se o jednoduché nasazení, které zpřístupňuje front-end pomocí služby typu LoadBalancer. Počkejte, až budou všechny pody spuštěné a bude dostupná externí IP adresa frontend služby.

Pokud testujete pomocí MiniKube, musíte použít minikube tunnel k překladu externí IP adresy.

kubectl get services -n todo-app

NAME          TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)        AGE
frontend      LoadBalancer   10.0.49.177    127.0.0.1   80:30145/TCP   18h

Přejděte k aplikaci pomocí externí IP adresy a místního portu (první číslo ve sloupci PORT(S).

http://{external-ip}:{local-port}

Otestujte spuštěnou aplikaci v prohlížeči. Při přidávání, dokončování a odstraňování položek úkolů si všimněte, že se stránka statistik aktualizuje očekávanými metrikami.

Ladění služby stats-api

Teď můžete pomocí rozšíření Bridge to Kubernetes předvést, jak se dá provoz z clusteru Kubernetes přesměrovat na místně spuštěnou verzi rozhraní stats-api.

cd stats-api/

Ve VS Code otevřete zdrojový kód pro rozhraní stats-api.

code .

Po spuštění editoru VS Code otevřete podokno Kubernetes na levém bočním panelu nástroje VS Code a pak v clusteru MiniKube vyberte obor názvů todo-app . Klikněte pravým tlačítkem na uzel aplikace todo a zvolte Použít obor názvů.

Vybrat obor názvů

Nainstalujte závislosti spuštěním npm install v okně terminálu (CTRL+ ~).

npm install

Dále umístěte zarážku na řádek 17 z server.js.

Otevřete paletu příkazů (CTRL+SHIFT+P nebo Cmd+Shift+P na Macu) a zadejte Bridge to Kubernetes. Vyberte možnost Přemísnit na Kubernetes: Konfigurovat.

Přemísnění do Kubernetes: Příkaz Configure

Zobrazí se výzva ke konfiguraci služby, kterou chcete nahradit, port pro přesměrování z vývojového počítače a spouštěcí úlohu, kterou chcete použít.

stats-api Zvolte službu.

Vyberte službu, ke které se chcete připojit.

Po výběru služby se zobrazí výzva k zadání portu TCP pro místní aplikaci. V tomto příkladu zadejte 3001.

Zadejte číslo portu.

Jako spouštěcí úlohu zvolte Spustit skript: vývoj .

Volba spouštěcí úlohy ladicího programu

Máte možnost spustit izolovanou nebo neizolovanou. Pokud spustíte izolovanou službu, směrují se do místního procesu pouze vaše požadavky; ostatní vývojáři můžou cluster používat bez ovlivnění. Pokud nespustíte izolovaný provoz, veškerý provoz se přesměruje do místního procesu. Další informace o této možnosti naleznete v tématu Použití možností směrování pro vývoj v izolaci. V tomto příkladu použijeme nesolated.

Volba izolace

Poznámka:

VS Code vás vyzve, abyste koncovému správci povolili spouštění se zvýšenými oprávněními a úpravě souboru hostitelů.

Profil ladění Přemostění na Kubernetes byl úspěšně nakonfigurován.

Vyberte ikonu Ladění na levé straně a vyberte Spustit skript: vývoj s Kubernetes. Klikněte na tlačítko Start vedle příkazu Spustit skript: vývoj s Kubernetes.

Volba profilu spuštění ladění

Váš vývojový počítač je připojený, když se stavový řádek VS Code změní na oranžovou a rozšíření Kubernetes ukazuje, že jste připojení. Po připojení vývojového počítače se provoz začne přesměrováovat do vývojového počítače pro statistiky rozhraní API, které nahrazujete.

Ladění s využitím mostu na Kubernetes

Přejděte do vstupního bodu front-endu vaší aplikace todo. Pro minikube budeme používat 127.0.0.1. Pokud chcete získat přístup k adrese URL místního koncového bodu pro vaši aplikaci, otevřete nabídku Kubernetes na stavovém řádku a zvolte položku koncového bodu.

Vytvořte požadavek na rozhraní stats-api tak, že zvolíte odkaz na statistiky .

Spuštěný web – zvolte odkaz na stav.

Všimněte si provozu, který se původně spustil ve vašem clusteru, byl přesměrován na místně spuštěnou verzi (mimo cluster), kde se aktivovala zarážka.

Stiskněte tlačítko Přehrát a nechte požadavek pokračovat transparentně.

Tento příklad je jen jedním z příkladů použití přemostitu na Kubernetes v clusterech jiných než AKS. Vyzkoušejte si ho na svém vlastním projektu.

Vyčištění

Pokud chcete vyčistit prostředky vytvořené touto ukázkou, spusťte:

kubectl delete namespace todo-app

Další kroky

Aplikaci můžete také nasadit do služby Azure Kubernetes Service (AKS) pomocí mostu na Kubernetes. Viz Použití mostu na Kubernetes s AKS