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:
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.
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.
Válassza ki azt a Kubernetes-szolgáltatást, amelyet a helyi verzióra szeretne átirányítani.
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.
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).
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.
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:
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.
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á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.
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.
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.