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
- Jakýkoli cluster Kubernetes nebo správce balíčků Chocolatey pro instalaci MiniKube
- Ve Windows 10, Hyper-V
- Kubectl nainstalovaný a na cestě v prostředí příkazového řádku podle vašeho výběru
- Přemískat na rozšíření Visual Studio Code pro Kubernetes
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ů.
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.
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.
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.
Jako spouštěcí úlohu zvolte Spustit skript: vývoj .
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.
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.
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.
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 .
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
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro