Udostępnij za pośrednictwem


Konfigurowanie mostka na platformie Kubernetes

Notatka

Most do Kubernetes zostanie wycofany 30 kwietnia 2025 roku. Aby uzyskać szczegółowe informacje o wycofaniu i alternatywach typu open source, zobacz zgłoszenie GitHub .

Proces lokalnego mostka na platformę Kubernetes można skonfigurować przy użyciu dwóch metod. Możesz dodawać adnotacje do usług w klastrze i dostarczać konfigurację lokalną.

Konfiguracja rozwiązania Kubernetes

Plik konfiguracji kubernetes (kubeconfig) jest domyślnie przechowywany w ~/.kube/config, ale można go ustawić przy użyciu zmiennej środowiskowej KUBECONFIG.

Jeśli używasz programu Visual Studio, możesz edytować profil uruchamiania bridge to Kubernetes w środowisku IDE przy użyciu interfejsu użytkownika profilów uruchamiania debugowania debugowania we właściwościach debugowania. Zobacz Edytuj profil uruchamiania.

Zrzut ekranu przedstawiający interfejs użytkownika profilów uruchamiania debugowania.

Z tego miejsca możesz otworzyć następujący ekran, który umożliwia edytowanie niektórych typowych właściwości konfiguracji.

Zrzut ekranu przedstawiający edytowanie niektórych często używanych właściwości profilu Bridge to Kubernetes.

Zapobieganie przekazywaniu określonych portów przez Bridge to Kubernetes

Skonfiguruj Bridge to Kubernetes, aby ignorowało mapowanie określonych portów usługi Kubernetes na twoją maszynę przez dodanie adnotacji bridgetokubernetes/ignore-ports do usługi.

apiVersion: v1
kind: Service
metadata:
  annotations:
    bridgetokubernetes/ignore-ports:445,23

Konfiguracja lokalna przy użyciu (KubernetesLocalProcessConfig.yaml)

Plik KubernetesLocalProcessConfig.yaml umożliwia odtwarzanie zmiennych środowiskowych i zamontowanych plików dostępnych dla podów w klastrze. W pliku KubernetesLocalProcessConfig.yaml można określić następujące akcje:

  • Pobierz wolumin i ustaw ścieżkę do tego woluminu jako zmienną środowiskową.
  • Udostępnij usługę uruchomioną w klastrze procesom uruchomionym na komputerze dewelopera.
  • Utwórz zmienną środowiskową z wartością stałą.

Domyślny plik KubernetesLocalProcessConfig.yaml nie jest tworzony automatycznie, dlatego należy ręcznie utworzyć plik w katalogu głównym projektu.

Pobieranie woluminu

W obszarze envokreśl nazwę i wartość dla każdego woluminu, który chcesz pobrać. Nazwa to zmienna środowiskowa, która będzie używana na komputerze dewelopera. Wartość jest nazwą woluminu i ścieżką na komputerze dewelopera. Wartość dla wartość przyjmuje formę $(volumeMounts:VOLUME_NAME)/PATH/TO/FILES.

Na przykład:

version: 0.1
env:
  - name: ALLOW_LIST_PATH
    value: $(volumeMounts:allow-list)/allow-list

Powyższy przykład pobiera woluminu listy dozwolonych z kontenera i ustawia lokalizację oraz ścieżkę do zmiennej środowiskowej ALLOW_LIST_PATH. Domyślnym zachowaniem jest pobranie plików do ścieżki określonej w katalogu tymczasowym na komputerze dewelopera. W powyższym przykładzie ALLOW_LIST_PATH jest ustawiony na wartość /TEMPORARY_DIR/allow-list.

Notatka

Pobranie woluminu spowoduje pobranie całej zawartości tego woluminu niezależnie od ustawionej ścieżki. Ścieżka jest używana tylko do ustawiania zmiennej środowiskowej do użycia na komputerze dewelopera. Dodanie /allow-list lub /path/to/files na końcu tokenu nie ma wpływu na miejsce utrwalania woluminu. Zmienna środowiskowa jest po prostu wygodą, jeśli aplikacja potrzebuje odwołania do określonego pliku w tym woluminie.

Istnieje również możliwość określenia folderu na komputerze deweloperskim, gdzie wolumin ma zostać zamontowany, zamiast używać katalogu tymczasowego. W obszarze volumeMountsokreśl nazwę i localPath dla każdej konkretnej lokalizacji. Nazwa to nazwa woluminu, którą chcesz dopasować, a localPath jest ścieżką bezwzględną na komputerze deweloperskim. Na przykład:

version: 0.1
volumeMounts:
  - name: default-token-*
    localPath: /var/run/secrets/kubernetes.io/serviceaccount
env:
  - name: KUBERNETES_IN_CLUSTER_CONFIG_OVERRIDE
    value: $(volumeMounts:default-token-*)

W powyższym przykładzie użyto wpisu w env do pobrania woluminu pasującego do default-token-*, na przykład default-token-1111 lub default-token-1234-5678-90abcdef. W przypadkach, gdy wiele woluminów jest zgodnych, jest używany pierwszy pasujący wolumin. Wszystkie pliki są pobierane do /var/run/secrets/kubernetes.io/serviceaccount na komputerze deweloperskim za pomocą wpisu w volumeMounts. Zmienna środowiskowa KUBERNETES_IN_CLUSTER_CONFIG_OVERRIDE jest ustawiona na wartość /var/run/secrets/kubernetes.io/serviceaccount.

Udostępnianie usługi

W obszarze envokreśl nazwę i wartość dla każdej usługi, którą chcesz udostępnić na komputerze dewelopera. Nazwa to zmienna środowiskowa, która będzie używana na komputerze dewelopera. Wartość jest nazwą usługi z klastra oraz ścieżką. Wartość dla przyjmuje formę $(services:SERVICE_NAME)/PATH.

Na przykład:

version: 0.1
env:
  - name: MYAPP1_SERVICE_HOST
    value: $(services:myapp1)/api/v1/

W powyższym przykładzie usługa myapp1 jest dostępna dla komputera deweloperskiego, a zmienna środowiskowa MYAPP1_SERVICE_HOST jest ustawiona na lokalny adres IP usługi myapp1 ze ścieżką /api/v1 (czyli 127.1.1.4/api/v1). Usługa myapp1 jest dostępna przy użyciu zmiennej środowiskowej myapp1lub myapp1.svc.cluster.local.

Notatka

Udostępnienie usługi na komputerze dewelopera spowoduje udostępnienie całej usługi niezależnie od ustawionej ścieżki. Ścieżka jest używana tylko do ustawiania zmiennej środowiskowej do użycia na komputerze dewelopera. Możesz również udostępnić usługę z określonej przestrzeni nazw Kubernetes przy użyciu $(services:SERVICE_NAME.NAMESPACE_NAME). Na przykład:

version: 0.1
env:
  - name: MYAPP2_SERVICE_HOST
    value: $(services:myapp2.mynamespace)

W powyższym przykładzie aplikacja myapp2 z przestrzeni nazw mynamespace zostaje udostępniona na komputerze dewelopera oraz ustawia zmienną środowiskową MYAPP2_SERVICE_HOST na lokalny adres IP aplikacji myapp2 z przestrzeni nazw mynamespace.

Tworzenie zmiennej środowiskowej ze stałą wartością

W obszarze envokreśl nazwę i wartość dla każdej zmiennej środowiskowej, którą chcesz utworzyć na komputerze dewelopera. Nazwa to zmienna środowiskowa, która będzie używana na komputerze dewelopera, a wartość jest wartością. Na przykład:

version: 0.1
env:
  - name: DEBUG_MODE
    value: "true"

Powyższy przykład tworzy zmienną środowiskową o nazwie DEBUG_MODE z wartością true.

Dodaj zależność usługi

Można określić zależność usługi, taką jak baza danych lub pamięć podręczna, przy użyciu pola zależności ogólnych, podobnie jak w przypadku deklarowanych usług. Określ zależność w tym miejscu, gdy debugowane usługi muszą łączyć się z zasobami, które nie są uruchomione w klastrze. Zadeklaruj zależność, jak w poniższym przykładzie:

version: 0.1
volumeMounts:
env:
  - name: DB_HOST
    value: $(externalendpoints:server-bridgetest123.database.windows.net:1433)

Podaj nazwę DNS hosta (server-bridgetest13.database.windows.net w przykładzie) i port (1433 w przykładzie) dla zależności.

Po określeniu zależności, takich jak bazy danych, modele uwierzytelniania przekierowania nie będą działać. Na przykład w przypadku usługi Azure SQL Database należy ustawić zasady połączenia na "Serwer proxy" (zamiast "Przekierowanie" lub "Ustawienie domyślne").

Przykład KubernetesLocalProcessConfig.yaml

Oto przykład kompletnego pliku KubernetesLocalProcessConfig.yaml:

version: 0.1
volumeMounts:
  - name: default-token-*
    localPath: /var/run/secrets/kubernetes.io/serviceaccount
env:
  - name: KUBERNETES_IN_CLUSTER_CONFIG_OVERRIDE
    value: $(volumeMounts:default-token-*)
  - name: ALLOW_LIST_PATH
    value: $(volumeMounts:allow-list)/allow-list
  - name: MYAPP1_SERVICE_HOST
    value: $(services:myapp1)/api/v1/
  - name: MYAPP2_SERVICE_HOST
    value: $(services:myapp2.mynamespace)
  - name: DEBUG_MODE 
    value: "true"

Następne kroki

Aby rozpocząć korzystanie z Bridge do Kubernetes w celu połączenia lokalnego komputera deweloperskiego z klastrem, zobacz Use Bridge to Kubernetes with Visual Studio Code oraz Use Bridge to Kubernetes with Visual Studio.