A Bridge to Kubernetes működése
Jegyzet
A Kubernetes-híd 2025. április 30-án megszűnik. A kivonási és nyílt forráskódú alternatívákkal kapcsolatos részletekért tekintse meg a GitHub .
Bridge to Kubernetes iteratív fejlesztési eszköz a Kubernetes-t célzó mikroszolgáltatási alkalmazások létrehozásához. A Bridge to Kubernetes bővítmény a Visual Studio és a Visual Studio Code (VS Code) számára érhető el.
A Kuberneteshez való híd lehetővé teszi a kód futtatását és hibakeresését a fejlesztői számítógépen. Ez a számítógép továbbra is csatlakozik a Kubernetes-fürthöz az alkalmazásod és szolgáltatásod többi részével együtt. Ha nagy mikroszolgáltatás-architektúrával rendelkezik, számos egymástól függő szolgáltatással és adatbázissal, a függőségek replikálása a fejlesztői számítógépen nehéz lehet. Az egyes kódmódosítások kódjának létrehozása és üzembe helyezése a Kubernetes-fürtön lassú, időigényes és nehéz lehet.
A Kubernetes-híd kapcsolatot hoz létre a fejlesztői számítógép és a fürt között. Ez a megközelítés elkerüli, hogy a kódot a fürtön kell létrehoznia és üzembe helyeznie. A klaszterhez csatlakoztatott környezetben tesztelheted és fejlesztheted a szolgáltatásodat. Ez a módszer lehetővé teszi a hibakeresést anélkül, hogy további Docker- vagy Kubernetes-konfigurációt hoz létre.
A Bridge to Kubernetes átirányítja a forgalmat a csatlakoztatott Kubernetes klaszter és a fejlesztői gép között. A Kubernetes-fürt helyi kódjai és szolgáltatásai úgy kommunikálhatnak, mintha ugyanabban a Kubernetes-fürtben lennének.
A Bridge to Kubernetes lehetővé teszi, hogy a Kubernetes-fürt környezeti változóit és csatlakoztatott köteteit a fejlesztői számítógépen replikálja. A környezeti változókhoz és a csatlakoztatott kötetekhez való hozzáférés lehetővé teszi a kódon végzett munkát anélkül, hogy replikálnia kellene ezeket a függőségeket.
Követelmények
Jegyzet
A Híd Kuberneteshez nem működik a Docker for Desktop Kubernetes-fürtökkel. A Bridge to Kubernetes használatához az alábbi konfigurációk valamelyikére van szükség:
- A Bridge to Kubernetes bővítményt tartalmazó VS Code telepítve.
- Visual Studio 2019 16.7-es vagy újabb verzióját, amely Windows 10 vagy újabb rendszeren fut. Győződjön meg arról, hogy a ASP.NET és a webfejlesztési számítási feladat telepítve van. Telepítse a Kubernetes-bővítmény Bridge-et.
A Bridge to Kubernetes segítségével kapcsolatot létesíthet a Kubernetes-klaszterrel. Ez a kapcsolat átirányítja a forgalmat a klaszterben lévő meglévő pod és a fejlesztői számítógép között, mindkét irányba.
Jegyzet
A Bridge to Kubernetes használatakor a rendszer a szolgáltatás nevét kéri a fejlesztési számítógépre való átirányításhoz. Ezzel a beállítással kényelmesen azonosíthat egy podot az átirányításhoz. Minden átirányítás, amely a Kubernetes-fürt és a fejlesztői számítógép között történik, egy podra vonatkozik. További információ: Szolgáltatás elérhetővé tétele.
A VS Code-ban a Bridge to Kubernetes minden nyelvet támogat, amíg helyileg futtathatja őket. A Visual Studióban a Bridge to Kubernetes támogatja a .NET Core-t. A Kubernetes-hez való híd nem támogatja a .NET-keretrendszert a Visual Studióban, mert Windows-csomópontok támogatását igényli.
Figyelem
A Kubernetes-híd csak fejlesztési és tesztelési forgatókönyvekben használható. Nem tervezték és nem támogatják éles klaszterekkel vagy aktív használatban lévő éles szolgáltatásokkal való használatra.
Az aktuális funkciókról és a jövőbeli tervekről lásd a Bridge to Kubernetes ütemtervet.
Kapcsolat létrehozása
Amikor a Bridge to Kubernetes kapcsolatot létesít a fürttel, a következő műveleteket hajtja végre:
- Arra kéri, hogy konfigurálja a szolgáltatást a fürtön való cserére, állítsa be a fejlesztési számítógépen a kódhoz használt portot, és indítsa el a kódhoz tartozó feladatot egyszeri műveletként.
- A fürtben lévő pod tárolóját kicseréli egy távoli ügynök konténerre, amely átirányítja a forgalmat a fejlesztői számítógépre.
- A fejlesztői számítógépen futtassa a kubectl port-forward parancsot, hogy továbbítsa a forgalmat a fejlesztői számítógépről a fürtben futó távoli ügynökre.
- A fürt környezeti adatait a távoli ügynök használatával gyűjti össze. Ezek a rendszerinformációk tartalmazzák a környezeti változókat, a látható szolgáltatásokat, a kötetek csatlakoztatását és a titkosított csatlakozásokat.
- Beállítja a fejlesztési környezetet a Visual Studio-ban, hogy a fejlesztőszámítógép szolgáltatása ugyanazokat a változókat érhesse el, mintha a fürtben futna.
- Frissíti a gazdagépek fájlját, hogy a fürt szolgáltatásait helyi IP-címekre képezhesse le a fejlesztői számítógépen. Ezek a gazdagépek fájlbejegyzések lehetővé teszik, hogy a fejlesztői számítógépen futó kód kéréseket küldjön a fürtön futó más szolgáltatásoknak. A gazdagépek fájljának frissítéséhez a Bridge to Kubernetesnek rendszergazdai jogosultságra van szüksége a fejlesztői számítógépen.
- Megkezdi a kód futtatását és hibakeresését a fejlesztői számítógépen. Ha szükséges, a Bridge to Kubernetes felszabadítja a szükséges portokat a fejlesztői számítógépen azáltal, hogy leállítja azokat a szolgáltatásokat vagy folyamatokat, amelyek jelenleg használják ezeket a portokat.
A Bridge és a Kubernetes használata
Miután kapcsolatot létesített a fürthöz, futtassa és hibakeresse a kódot natív módon, tárolók használata nélkül a számítógépén. A kód együttműködik a fürttel. A távoli ügynök által kapott hálózati forgalom a kapcsolat során megadott helyi portra lesz átirányítva. A natívan futó kód elfogadhatja és feldolgozhatja ezt a forgalmat. A fürt környezeti változói, kötetei és titkos kódjai elérhetővé válnak a fejlesztői számítógépen futó kód számára.
A Bridge to Kubernetes gazdagépeket fájlbejegyzéseket és porttovábbítást ad hozzá a fejlesztői számítógéphez. A kód képes hálózati forgalmat küldeni a fürtön futó szolgáltatásoknak a fürtből származó szolgáltatásnevek használatával. Ez a forgalom a fürtben futó szolgáltatásokhoz lesz továbbítva. A forgalom folyamatosan irányítódik a fejlesztési számítógép és a fürt között, amíg csatlakoztatva van.
Emellett a Bridge to Kubernetes lehetővé teszi, hogy a környezeti változókat és a podok számára elérhető, csatlakoztatott fájlokat a KubernetesLocalProcessConfig.yaml
fájlon keresztül a fejlesztői számítógépen replikálja. Ezzel a fájllal új környezeti változókat és kötetcsatlakoztatásokat is létrehozhat.
Jegyzet
A klaszterhez való csatlakozás időtartama alatt és további 15 percig, a Bridge to Kubernetes egy EndpointManager nevű folyamatot futtat a helyi számítógépén rendszergazdai engedélyekkel.
A hibakeresés párhuzamosan, több szolgáltatással is végezhető. Indítsa el a Visual Studio annyi példányát, mint a hibakeresésre használni kívánt szolgáltatásokat. Győződjön meg arról, hogy a szolgáltatások helyileg figyelik a különböző portokat. Konfigurálja és hibakeresse őket külön-külön. Ebben a forgatókönyvben az elkülönítés nem támogatott.
További konfiguráció
A KubernetesLocalProcessConfig.yaml fájl lehetővé teszi, hogy a saját fürtöd podjaihoz elérhető környezeti változókat és csatlakoztatott fájlokat replikáld. A Visual Studio használatakor a KubernetesLocalConfig.yaml fájlnak ugyanabban a könyvtárban kell lennie, mint a szolgáltatás projektfájlja. További információ: Híd konfigurálása a Kubernetes-hez.
Útválasztási funkciók használata elszigetelt fejlesztéshez
Alapértelmezés szerint a Bridge to Kubernetes átirányítja egy szolgáltatás összes forgalmát a fejlesztői számítógépre. Ehelyett az útválasztási képességekkel csak az altartományból a fejlesztői számítógépre irányíthatja át a kéréseket. Ezek az útvonalazási funkciók lehetővé teszik, hogy a Bridge to Kubernetes használatával elszigetelten fejlesszen, és ne zavarja meg a fürt más forgalmát.
Az alábbi animáció két fejlesztőt mutat be, aki külön-külön dolgozik ugyanazon a fürtön:
Ha engedélyezi az elkülönítést, a Bridge to Kubernetes a Kubernetes-fürthöz való csatlakozás mellett a következő műveleteket hajtja végre:
- Ellenőrzi, hogy a Kubernetes klaszterben nincs-e engedélyezve az Azure Dev Spaces.
- Replikálja a kiválasztott szolgáltatást a fürtben ugyanabban a névtérben, és hozzáad egy routing.visualstudio.io/route-from=SERVICE_NAME címkét és routing.visualstudio.io/route-on-header=kubernetes-route-as=GENERATED_NAME megjelölést.
- Konfigurálja és elindítja az útválasztó kezelőt ugyanabban a névtérben a Kubernetes-fürtben. Az útválasztás-kezelő egy címkeválasztóval keresi meg a routing.visualstudio.io/route-from=SERVICE_NAME címkét és a routing.visualstudio.io/route-on-header=kubernetes-route-as=GENERATED_NAME annotációt a névtérbeli útválasztás konfigurálásakor.
Jegyzet
A Bridge to Kubernetes ellenőrzi, hogy engedélyezve van-e az Azure Dev Spaces a Kubernetes-fürtön. Arra kéri, hogy tiltsa le az Azure Dev Spacest, mielőtt használhatja a Bridge to Kubernetes szolgáltatást.
Az útválasztás-kezelő a következő műveleteket hajtja végre az indításkor:
- Az altartomány GENERATED_NAME használatával duplikálja a névtérben található összes belépési pontot, beleértve a terheléselosztó belépési pontjait is.
- Létrehoz egy küldött podot minden olyan szolgáltatáshoz, amely a GENERATED_NAME altartományhoz tartozó, duplikált bejövő forgalomhoz kapcsolódik.
- Létrehoz egy újabb küldött podot ahhoz a szolgáltatáshoz, amin elkülönítetten dolgozik. Ez a konfiguráció lehetővé teszi az altartományt tartalmazó kérések átirányítását a fejlesztői számítógépre.
- Az egyes küldött podok útválasztási szabályait konfigurálja az altartományhoz tartozó szolgáltatások útválasztásának kezelésére.
Az alábbi ábrán egy Kubernetes-fürt látható, mielőtt a Bridge to Kubernetes csatlakozik a fürthöz:
Az alábbi ábra ugyanazt a fürtöt mutatja be, amelyben a Bridge to Kubernetes engedélyezve van elkülönítési módban. Itt láthatja a duplikált szolgáltatást, valamint az útválasztás izolált működését támogató envoy podokat.
Amikor a fürt egy kérést kap a GENERATED_NAME altartományával, hozzáad egy kubernetes-route-as=GENERATED_NAME fejlécet a kérelemhez. A megbízott podok kezelik a kérés továbbítását a klaszter megfelelő szolgáltatásához. Ha egy olyan szolgáltatási kérelemről van szó, amelyen izolált környezetben dolgoznak, a fürt a távoli ügynök által átirányítja a kérelmet a fejlesztői számítógépre.
Amikor a klaszter a GENERATED_NAME altartomány nélkül kap egy kérvényt, nem ad hozzá fejlécet a kérvényhez. A megbízott podok kezelik a kérés továbbítását a klaszter megfelelő szolgáltatásához. A lecserélt szolgáltatásra vonatkozó kérés esetén a podok a távoli ügynök helyett az eredeti szolgáltatáshoz irányítják.
Fontos
A fürt minden szolgáltatásának továbbítania kell a kubernetes-route-as=GENERATED_NAME fejlécet, amikor további kéréseket indít. Ha például a serviceA kap egy kérést, a válasz visszaadása előtt kérést küld a serviceB-nak. Ebben a példában serviceA a kérelemben szereplő kubernetes-route-as=GENERATED_NAME fejlécet kell továbbítania serviceB. Egyes nyelvek, például a ASP.NET, rendelkezhetnek a fejlécpropagálás kezelésére szolgáló módszerekkel.
Amikor leválasztja a kapcsolatot a fürtjével, a Bridge to Kubernetes alapértelmezés szerint eltávolítja az összes envoy podot és a másodlagos szolgáltatást.
Jegyzet
Az útválasztás-kezelő üzembe helyezése és szolgáltatása továbbra is fut a névtérben. Az üzembe helyezés és a szolgáltatás eltávolításához futtassa a következő parancsokat a névtérhez.
kubectl delete deployment routingmanager-deployment -n NAMESPACE
kubectl delete service routingmanager-service -n NAMESPACE
Diagnosztika és naplózás
Amikor a Bridge to Kubernetes használatával csatlakozik a klaszterhez, a számítógép naplózza a diagnosztikát. A fejlesztői számítógéped TEMP könyvtárában található Bridge to Kubernetes mappában tárolja őket.
Kubernetes RBAC-engedélyezés
A Kubernetes szerepköralapú hozzáférés-vezérlést (RBAC) biztosít a felhasználók és csoportok engedélyeinek kezeléséhez. További információ: Kubernetes dokumentációja. Az RBAC-kompatibilis fürt engedélyeit úgy állíthatja be, hogy létrehoz egy YAML-fájlt, és azt a kubectl
segítségével alkalmazza a fürtre.
A fürt engedélyeinek beállításához hozzon létre vagy módosítson egy YAML-fájlt, például permissions.yml. Használja a saját névterét a <namespace>
és a hozzáférésre jogosult felhasználók és csoportok számára.
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: bridgetokubernetes-<namespace>
namespace: development
subjects:
- kind: User
name: jane.w6wn8.k8s.ginger.eu-central-1.aws.gigantic.io
apiGroup: rbac.authorization.k8s.io
- kind: Group
name: dev-admin
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: ClusterRole
name: admin
apiGroup: rbac.authorization.k8s.io
Alkalmazza az engedélyeket a következő paranccsal:
kubectl -n <namespace> apply -f <yaml file name>
Korlátozások
A Kubernetes-hídra a következő korlátozások vonatkoznak:
- Egy podban csak egyetlen tároló futhat ahhoz, hogy a Bridge to Kubernetes sikeresen kapcsolódjon.
- Jelenleg a Bridge to Kubernetes podoknak Linux-tárolóknak kell lenniük. A Windows-tárolók nem támogatottak.
- A Bridge to Kubernetes számára emelt szintű engedélyekre van szükség a fejlesztő számítógépén a gazdagépfájl szerkesztéséhez.
- A Bridge to Kubernetes nem használható olyan fürtökön, amelyeken engedélyezve van az Azure Dev Spaces.
Következő lépések
A Bridge to Kubernetes használatának első lépéseit a helyi fejlesztői számítógép fürthöz való csatlakozásához lásd: A Bridge to Kubernetes (VS) vagy A Bridge to Kubernetes (VS Code) használata.