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


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 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:

Animáció az elkülönítést mutatja, és két fejlesztő 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:

Híd és Kubernetes közötti fürt diagramja.

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.

Olyan fürt diagramja, ahol a Bridge to Kubernetes engedélyezve van.

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.