Megosztás a következőn keresztül:


A Bridge használata a Kuberneteshez (VS Code)

Jegyzet

A Kubernetes-híd 2025. április 30-án megszűnik. A megszüntetés és a nyílt forráskódú alternatívákkal kapcsolatos részletekért tekintse meg a GitHub issue.

A Kubernetes-híd lehetővé teszi a kód futtatását és hibakeresését a fejlesztői számítógépen, miközben továbbra is csatlakozik a Kubernetes-fürthöz az alkalmazás vagy szolgáltatások többi részével. Ebben az útmutatóban megtudhatja, hogyan irányíthatja át a forgalmat a Kubernetes-fürt és a fejlesztői számítógépen futó kód között a Bridge to Kubernetes használatával.

Mielőtt hozzákezdene

Ez a cikk feltételezi, hogy már rendelkezik egy saját mikroszolgáltatás-architektúrájú fürttel, és hibakeresést szeretne végezni a fürt egyik podjában. Ha szeretné megtudni, hogyan használhatja a Bridge to Kubernetest egy meglévő mintaalkalmazással, tekintse meg A Bridge használata a Kuberneteshez mintaalkalmazássalcímű témakört. Ha az Azure Kubernetes szolgáltatást használja, és összetettebb mintaalkalmazást szeretne használni, tekintse meg Bridge to Kubernetes (AKS)című témakört.

Előfeltételek

  • Kubernetes-fürt egy olyan alkalmazással, amelyet hibakeresésre szeretne használni.
  • Visual Studio Code macOS, Windows 10 vagy újabb rendszeren vagy Linuxon fut.

Csatlakozás a klaszterhez és egy szolgáltatás hibakeresése

A Bridge–Kubernetes hibakeresési folyamat többféleképpen is elindítható. Ha a nyílt forráskódú Kubernetes-bővítményről indul, a Bridge to Kubernetes telepítése nélkül, lépjen a Helyi alagút telepítése és használata hibakereséshezrészhez. Ha már telepítve van a Bridge to Kubernetes, folytassa a következő lépésekkel:

  1. A fejlesztői számítógépen győződjön meg arról, hogy az aktuális környezet arra a fürtre és névtérre van állítva, amelyben az alkalmazás fut.

  2. Nyissa meg a Visual Studio Code-ban hibakeresésre használni kívánt alkalmazás munkaterületét. A Kubernetes kiterjesztés nézetben a Fürtökalatt győződjön meg arról, hogy a saját fürt és névtér ki van jelölve. Nyissa meg a Parancskatalógust (CTRL+SHIFT+P vagy Cmd+Shift+P Mac gépen), és futtassa a parancsot Bridge to Kubernetes: Konfigurálja a a konfigurációs folyamat elindításához.

  3. Válassza ki azt a Kubernetes-szolgáltatást, amelyet a helyi verzióra szeretne átirányítani.

    Válassza ki azt a szolgáltatást, amelyhez csatlakozni szeretne

    A Kubernetes-fürtben lévő összes forgalom átirányítva lesz a szolgáltatás számára a fejlesztői számítógépen futó alkalmazás verziójára. A Bridge to Kubernetes az alkalmazás összes kimenő forgalmát visszairányítja a Kubernetes-fürtbe.

    Fontos

    Csak egyetlen podot tartalmazó szolgáltatásokat irányíthat át.

  4. Miután kiválasztotta a szolgáltatást, hagyja ki a következő szakaszt, és folytassa a lépésekkel a , ahol a hibakeresőt konfigurálhatja a Bridge to Kubernetes-t használva a helyi alagúton való hibakereséshez.

Helyi alagút hibakeresésének telepítése és használata

Az alábbi lépéseket követve megkezdheti a helyi alagút hibakeresését, ha telepítve van a nyílt forráskódú Kubernetes-bővítmény, és rendelkezik egy Kubernetes-fürttel a hibakereséshez használni kívánt szolgáltatásokkal. Az ebben a szakaszban ismertetett lépések végigvezetik a Bridge kubernetesbe való telepítésén, és elindítják a helyi alagút hibakeresésének konfigurációs folyamatát.

Jegyzet

A VS Code Kubernetes-bővítménye egy API-belépési pontot biztosít, amely lehetővé teszi, hogy a bővítménykészítők más helyi alagútmegoldásokat is mellékeljenek a VS Code Marketplace-ről. A Kubernetes-hez való integráció (Bridge to Kubernetes) a helyi alagút hibakeresési képesség egyik lehetséges megvalósítása.

A VS Code-ban kétféleképpen kezdheti el használni a helyi alagút hibakeresését. Első lépésként nyissa meg a Parancskatalógust (CTRL+SHIFT+P vagy Cmd+Shift+P Mac gépen), és írja be Kubernetes: Hibakeresés (Helyi alagút).

Képernyőkép a VS Code Hibakeresés (Helyi alagút) parancsról

Alternatívaként navigáljon a Kubernetes klászer felfedezőhöz. Nyissa meg az aktív fürt erőforrásait, és keresse meg a hibakeresni kívánt szolgáltatást vagy podot, majd kattintson a jobb gombbal a szolgáltatásra vagy podra, és válassza a Hibakeresés: Helyi alagútlehetőséget.

Ezen a ponton, ha nem rendelkezik olyan VS Code-bővítménysel, amely helyi hibakeresési képességeket kínál, a rendszer átirányítja a Marketplace-re egy helyi hibakeresést biztosító bővítmény kiválasztásához. Válassza ki a Kuberneteshez tartozó Híd bővítményt.

Képernyőkép a Debug Local Tunnel kontextusmenüjéről a VS Code programban

A Bridge to Kubernetes bővítmény telepítése után a következő alkalommal, amikor a Hibakeresés: Helyi alagútlehetőséget választja, kihagyja a telepítési lépést, és közvetlenül a következő lépésre lép, Konfigurálja a hibakeresőt a Helyi alagút hibakereséséhez a Bridge to Kuberneteshasználatával.

A hibakereső konfigurálása a helyi alagút hibakereséséhez a Bridge to Kubernetes használatával

A hibakereső helyi alagút hibakereséshez való konfigurálásának első lépése, hogy a rendszer arra kéri, hogy adja meg azt a TCP-portot, amelyet az alkalmazás a helyi futtatáshoz használ:

Adja meg a portszámot

Válasszon egy hibakeresési indítási konfigurációt, amelyet az alkalmazás helyi futtatásakor általában használ. Ha nem rendelkezik indítási konfigurációval, engedélyezheti, hogy a Bridge to Kubernetes hozzon létre egyet, vagy ne hozzon létre egyet, ebben az esetben manuálisan kell elindítania az alkalmazást vagy a szolgáltatást. További információ az Indítási konfigurációkalatt.

Válassza ki a hibakereső indítási konfigurációs

Lehetőség van arra, hogy izoláltan vagy nem izoláltan fusson. Izolált futtatás esetén csak a saját kéréseidet irányítják át a helyi folyamathoz; a többi fejlesztő zavartalanul használhatja a fürtöt. Ha nem futtat elszigetelten, a rendszer az összes forgalmat átirányítja a helyi folyamatba. További információ erről a beállításról: Útválasztási képességek használata az elkülönítésben történő fejlesztéshez.

Válaszd az elkülönítést

Válassza a bal oldalon található Hibakeresés ikont, és a felül található újonnan hozzáadott Kubernetes indítási konfigurációk közül válassza ki, például a Indítás NPM-en keresztül Kubernetes-sel. Ezt az indítási konfigurációt a Bridge to Kubernetes hozza létre, ha ezt a lehetőséget választja.

Hibakeresési indítási profil kiválasztása

Jegyzet

A rendszer kérni fogja, hogy engedélyezze a EndpointManager futtatását rendszergazdai szinten és a hosts fájl módosítását.

A fejlesztői számítógép akkor csatlakozik, ha a VS Code állapotsávja narancssárga színűre változik, és a Kubernetes-bővítmény azt mutatja, hogy csatlakozik.

Hibakeresés a Bridge to Kubernetes

Miután a fejlesztői számítógép csatlakoztatva van, a forgalom elkezdi átirányítódni a fejlesztői számítógépre az Ön által cserélt szolgáltatás számára.

Jegyzet

A későbbi indítások során a rendszer nem fogja kérni a szolgáltatás nevét, a portot, az indítási feladatot, illetve azt, hogy elszigetelten fusson-e. Ezek az értékek a .vscode/tasks.json-ban vannak mentve. Ha később módosítani szeretné ezeket a beállításokat, nyissa meg a Parancskatalógust (CTRL+SHIFT+P vagy Cmd+Shift+P Mac gépen), majd futtassa a Bridge to Kubernetes: Configureparancsot. Megnyithatja .vscode/launch.json és .vscode/tasks.json, hogy megtekinthesse azokat a konfigurációs beállításokat, amelyeket a Bridge to Kubernetes hozzáad az indítási profilhoz.

Ha a fürt a gRPC C-mag, a c-areshasználó gRPC implementációját használja, akkor automatikusan hozzáadódik egy környezeti változó az indítási profilhoz, a GRPC_DNS_RESOLVER, amelynek értéke native. Ez a változó egy áthidaló megoldás használatát határozza meg, amellyel elkerülheti a 2 perces késést a csatlakozáskor. A további információkért lásd a(z) gRPC-problémát.

Töréspont beállítása

Állítson be egy töréspontot a F9 parancs használatával, vagy válassza a Futtatás, majd a Töréspont váltásalehetőséget.

Nyissa meg a mintaalkalmazást a nyilvános URL-cím megnyitásával. Amikor a kód eléri a töréspontot, meg kell nyitnia a hibakeresőben. A szolgáltatás folytatásához nyomja le Ctrl+F5 vagy válassza a Futtatás, majd Folytatáslehetőséget. Térjen vissza a böngészőbe, és ellenőrizze, hogy megjelenik-e a kerékpár helyőrző képe.

Az alkalmazás frissítése

Amikor helyileg módosítja a kódot, az attól függ, hogy elszigetelten fut-e vagy sem, hogy ezek a módosítások láthatóak-e a fürtöt használó többi felhasználó számára. Ha elszigetelten fut, olyan módosításokat hajthat végre, amelyek nem érintik a többi felhasználót.

Szerkessze a kódot, mentse a módosításokat, és nyomja le Ctrl+Shift+F5 (⇧⌘F5 Mac gépen) vagy válassza a Futtatás, majd Indítsa újra a hibakeresési. Az újracsatlakozás után frissítse a böngészőt, és ellenőrizze a módosításokat.

Válassza a Futtatás, majd a Hibakeresés leállítása lehetőséget, vagy nyomja meg a Shift+F5 billentyűkombinációt a hibakereső leállításához.

Jegyzet

Alapértelmezés szerint a hibakeresési feladat leállítása a fejlesztői számítógépet is leválasztja a Kubernetes-fürtről. Ezt a viselkedést úgy módosíthatja, hogy a Visual Studio Code beállításaiban megkeresi a Bridge to Kubernetes: Disconnect After Debugging elemet, és eltávolítja a jelölést a A hibakeresés leállítása után automatikusan bontsa a kapcsolatotopciónál. A beállítás frissítése után a fejlesztői számítógép továbbra is csatlakoztatva marad, amikor leállítja és elkezdi a hibakeresést. Ha le szeretné választani fejlesztőszámítógépét a fürtről, kattintson a Bridge to Kubernetes bővítményre az állapotsoron, majd válassza az Aktuális munkamenet leválasztásalehetőséget.

További konfiguráció

A Kubernetes-híd további konfiguráció nélkül képes kezelni az útválasztási forgalmat és a környezeti változók replikálását. Ha le kell töltenie a Kubernetes-fürt konténeréhez csatolt fájlokat, például egy ConfigMap-fájlt, létrehozhat egy KubernetesLocalProcessConfig.yaml-t, hogy azokat a fejlesztői számítógépre töltse le. További információ: Híd konfigurálása a Kubernetes-hez.

Ha olyan AKS-fürtöt használ, amely felügyelt identitással működik, a Microsoft Entra ID által biztosított biztonsági funkcióval, olvassa el a Felügyelt identitás használata a Bridge to Kubernetes című szakaszt azzal kapcsolatban, hogyan konfigurálhatja a Bridge to Kubernetes alkalmazást ebben a forgatókönyvben.

Naplózás és diagnosztika használata

A naplózási kimenet a -híd és a Kubernetes közötti ablakban lesz megírva, miután a fejlesztői számítógép csatlakoztatva van a Kubernetes-fürthöz.

Kattintson a Kubernetes Állapotsávra, és válassza a Kapcsolatdiagnosztikai adatok megjelenítéselehetőséget. Ez a parancs kinyomtatja az aktuális környezeti változókat és DNS-bejegyzéseket a naplózási kimenetben.

Emellett a diagnosztikai naplókat a fejlesztési számítógép TEMP könyvtárában található Bridge to Kubernetes könyvtárban is megtalálhatja. Windows 10 rendszerben, ez a %TEMP%\Bridge to Kubernetes-ban található. Mac gépen a TEMP-könyvtár echo $TMPDIR terminálablakból való futtatásával található. Linuxon ez /tmp/Bridge to Kubernetes.

Futtatás elkülönítési módban

A Bridge to Kubernetes használatával beállíthat egy izolált verziót azokból a szolgáltatásokból, amelyeken éppen dolgozik, ami azt jelenti, hogy a fürtöt használó többi felhasználóra nem lesznek hatással a módosításai. Ez az elkülönítési mód úgy érhető el, hogy a kéréseket az egyes érintett szolgáltatások saját másolatára irányítja, de az összes többi forgalmat normál módon kezeli. Az izolált alkalmazás helyi végponti URL-címének eléréséhez indítsa el a hibakeresőt elkülönítési módban, nyissa meg a Kubernetes menüt az állapotsoron, és válassza ki a végpontbejegyzést. Az útválasztás elkülönítési módban való működéséről a Hogyan működik a Bridge to Kubernetescímű részben tájékozódhat.

Fejléc propagálása

Ahhoz, hogy a Bridge to Kubernetes-t úgy használja, ahogyan azt kialakították, meg kell győződnie arról, hogy a Bridge to Kubernetes fejlécet a bejövő kérésekből továbbítja a szolgáltatásai által a fürt más szolgáltatásainak küldött kérésekhez. Ehhez minden HTTP-kérelem API nyelvtől függetlenül biztosít valamilyen keretrendszerspecifikus módot. A C#-ban lévő .NET-kódhoz például az alábbihoz hasonló kódot használhat:

var request = new HttpRequestMessage();
request.RequestUri = new Uri("http://mywebapi/api/values/1");
if (this.Request.Headers.ContainsKey("kubernetes-route-as"))
{
    // Propagate the dev space routing header
    request.Headers.Add("kubernetes-route-as", this.Request.Headers["kubernetes-route-as"] as IEnumerable<string>);
}
var response = await client.SendAsync(request);

Jegyzet

Annak elkerülésére, hogy a kód minden kérésnél módosuljon, létrehozhat egy osztályt, amely a System.Net.Http.DelegatingHandler osztályból származik, és felülírja a SendAsync metódust az előző példához hasonló kóddal. Ezzel a technikával kódot találhat a weben; Ilyen például a "kubernetes-route-as" helyes propagálása a Bridge to Kubernetes.

A Node.js-szolgáltatásokhoz az alábbihoz hasonló kódot használhat, amelyet a Bridge to Kubernetes-adattártodo-app mintájából vettünk:

    server.get("/api/stats", function (req, res) {
        var options = {
            host: process.env.STATS_API_HOST,
            path: '/stats',
            method: 'GET'
        };
        const val = req.get('kubernetes-route-as');
        if (val) {
            console.log('Forwarding kubernetes-route-as header value - %s', val);
            options.headers = {
                'kubernetes-route-as': val
            }
        }
        var req = http.request(options, function(statResponse) {
            res.setHeader('Content-Type', 'application/json');
            var responseString = '';
            //another chunk of data has been received, so append it to `responseString`
            statResponse.on('data', function (chunk) {
                responseString += chunk;
            });
            statResponse.on('end', function () {
                res.send(responseString);
            });
        });

        req.on('error', function(e) {
            console.log('problem with request: ' + e.message);
          });

          req.end();
    });

Kommunikáció más szolgáltatásokkal

Amikor ugyanazon Kubernetes-fürtön egy másik szolgáltatással kommunikál, például egy HTTP-kéréssel, általában a kérelem URL-címében lévő hardcode-olt szolgáltatásnevet használja, de ez bizonyos esetekben nem fog működni, például távoli SSH, WSL és Codespaces használata esetén. Ez a cikk ismerteti, hogyan adhatja meg a Kubernetes szolgáltatás környezeti változóinak kapcsolati URL-címét ezekhez a forgatókönyvekhez.

Hibaelhárítás

Ha ez a hiba a Bridge to Kubernetes bővítmény aktiválásakor jelenik meg:

"Nem sikerült frissíteni a függőségeket: az újrapróbálkozések maximális száma túllépve"

Először próbálkozzon újra az aktiválással a gomb használatával. Ha ez ismételten nem sikerül, tekintse meg https://github.com/microsoft/mindaro/issues/32.

Ha egy távoli SSH-munkamenetben használja a Bridge to Kubernetes szolgáltatást, az EndpointManager sikertelen működése esetén az lehet a probléma, hogy a Bridge to Kubernetes engedélyekkel kapcsolatos probléma miatt nem tudja módosítani a gazdagépfájlt. A távoli SSH engedélyezéséhez vagy a nem emelt szintű felhasználóként való futtatáshoz frissítenie kell a kódot a Kubernetes szolgáltatáskörnyezet változóinak használatára, és konfigurálnia kell a VS Code-ot a használatukra, az Szolgáltatáskörnyezet változói témakörben leírtak szerint.

Következő lépések

További információ a Bridge to Kubernetesről A Kubernetes-híd működése.

Ha egyszerre több szolgáltatás hibakeresésére van szüksége, olvassa el Több szolgáltatás egyidejű hibakeresésecímű témakört.