Použít Bridge pro Kubernetes s ukázkou
Poznámka
Microsoft plánuje již nadále neudržovat projekt Bridge to Kubernetes. Během několika příštích měsíců projekt převedeme do archivačního stavu. Do té doby je projekt stále k dispozici pro použití a stáhnout. Během tohoto období doufáme, že prozkoumáme a doporučíme komunitní projekty, které poskytují podobné výhody jako Bridge to Kubernetes pro vaše budoucí použití. Pokud máte dotazy, kontaktujte nás na panelu problémů s na GitHubu.
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ě:
- Frontend volá databázové API pro ukládání a aktualizaci položek TODO.
- Služba rozhraní API spoléhá na databázi MongoDB k ukládání položek TODO.
- Frontend zapisuje události přidání, dokončení a odstranění do fronty RabbitMQ.
- Pracovník statistik přijímá události z fronty RabbitMQ a aktualizuje mezipaměť Redis.
- Rozhraní API statistiky zpřístupňuje statistiky uložené v mezipaměti pro zobrazení na frontendu.
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
- rozšíření Visual Studio Code do Kubernetes
Instalace MiniKube
Můžete použít libovolného poskytovatele Kubernetes s Bridge to 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. Podle pokynů k instalaci nainstalujte MiniKube ve Windows 10, Linuxu nebo macOS.
Pokud chcete dosáhnout nejlepších výsledků ve Windows 10, měli byste 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ávce.
minikube start --vm-driver hyperv --hyperv-virtual-switch "Primary Virtual Switch"
Nasazení aplikace
Naklonujte úložiště Bridge to Kubernetes a otevřete příkazové okno s aktuální pracovní složkou nastavenou na 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 služby frontend
.
Pokud testujete pomocí MiniKube, musíte k překladu externí IP adresy použít minikube tunnel
.
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 a zobrazuje očekávané metriky.
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í VS Code otevřete panel Kubernetes na levém bočním panelu a pak v clusteru MiniKube vyberte název prostoru todo-app. Klikněte pravým tlačítkem na uzel aplikace todo a následně zvolte Použít jmenný prostor.
název prostoru
Nainstalujte závislosti spuštěním npm install
v okně terminálu (CTRL+ ~).
npm install
Dále umístěte bod pro přerušení na řádek číslo 17 server.js
.
Otevřete paletu příkazů (CTRL+SHIFT+P nebo Cmd+Shift+P na Macu) a zadejte Bridge to Kubernetes. Vyberte most na Kubernetes: Nakonfigurujte možnost.
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.
Zvolte službu stats-api
.
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 úlohu spuštění zvolte Spustit skript: dev.
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 neizolovaný.
Poznámka
VS Code vás vyzve, abyste EndpointManageru povolili spouštění se zvýšenými oprávněními a aby mohl upravit váš soubor hostitelů.
Profil ladění pro most k platformě 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 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í. Jakmile je váš vývojový počítač připojen, síťový provoz začne být přesměrováván na váš vývojový počítač pro API statistik, které nahrazujete.
ladění pomocí Bridge to 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.
Odešlete požadavek na rozhraní stats-api kliknutím na odkaz statistiky.
Všimněte si, že provoz, který se původně začal ve vašem clusteru, byl přesměrován na lokálně spuštěnou verzi (mimo cluster), kde byl spuštěn breakpoint.
Stiskněte tlačítko Přehrát a nechte požadavek plně a transparentně dokončit.
Tento příklad je jen jedním z příkladů použití Bridge to Kubernetes na clusterech, které nejsou AKS. Vyzkoušejte si ho na svém vlastním projektu.
Odklidit
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 pro Kubernetes s AKS