Sdílet prostřednictvím


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

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.

Vyberte 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.

Bridge to Kubernetes: Nakonfigurovat příkaz

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.

Vyberte službu, která se má připojit k

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 úlohu spuštění zvolte Spustit skript: dev.

Zvolte úlohu spuštění 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 neizolovaný.

Zvolit izolaci

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.

Zvolit profil 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í. 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.

Běžící web – zvolte odkaz pro stav

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