Konfigurowanie Mostka na platformę Kubernetes

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

Zapobieganie przekierowywaniu określonych portów przez mostek do platformy Kubernetes

Skonfiguruj rozwiązanie Bridge to Kubernetes w celu ignorowania mapowania określonych portów w usłudze Kubernetes na maszynę przez dodanie bridgetokubernetes/ignore-ports adnotacji w usłudze.

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

Konfiguracja lokalna przy użyciu (KubernetesLocalProcessConfig.yaml)

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

  • 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łą.

Plik domyślny KubernetesLocalProcessConfig.yaml nie jest tworzony automatycznie, więc musisz ręcznie utworzyć plik w katalogu głównym projektu.

Pobieranie woluminu

W obszarze env okreś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ści przyjmuje formę $(volumeMounts:VOLUME_NAME)/PATH/TO/FILES.

Przykład:

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

Powyższy przykład pobiera wolumin allow-list 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 ustawiona na /TEMPORARY_DIR/allow-listwartość .

Uwaga

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 wpływa w rzeczywistości 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 lokalizacji pobierania instalacji woluminu na komputerze dewelopera zamiast używania katalogu tymczasowego. W obszarze volumeMounts określ nazwę i ścieżkę lokalną dla każdej określonej lokalizacji. Nazwa to nazwa woluminu, którą chcesz dopasować, a localPath jest ścieżką bezwzględną na komputerze dewelopera. 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 envdo pobrania woluminu zgodnego z parametrem default-token-*, takiego jak 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 na /var/run/secrets/kubernetes.io/serviceaccount komputer deweloperów przy użyciu wpisu w woluminieMounts. Zmienna środowiskowa KUBERNETES_IN_CLUSTER_CONFIG_OVERRIDE jest ustawiona na /var/run/secrets/kubernetes.io/serviceaccountwartość .

Udostępnianie usługi

W obszarze env okreś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 i ścieżką. Wartość dla wartości przyjmuje postać $(services:SERVICE_NAME)/PATH.

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, myapp1 lub myapp1.svc.cluster.local.

Uwaga

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ż utworzyć usługę z określonej przestrzeni nazw Kubernetes dostępnej przy użyciu $(services:SERVICE_NAME. NAMESPACE_NAME). Przykład:

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

Powyższy przykład sprawia, że aplikacja myapp2 z przestrzeni nazw mynamespace jest dostępna na komputerze dewelopera i ustawia zmienną środowiskową MYAPP2_SERVICE_HOST na lokalny adres IP myapp2 z przestrzeni nazw mynamespace.

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

W obszarze env okreś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ść to wartość. 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.

Dodawanie zależności 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 KubernetesLocalProcessConfig.yaml pliku:

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 mostka do platformy Kubernetes w celu nawiązania połączenia z lokalnym komputerem deweloperskim z klastrem, zobacz Use Bridge to Kubernetes with Visual Studio Code (Używanie mostka do platformy Kubernetes z programem Visual Studio) i Use Bridge to Kubernetes with Visual Studio (Używanie mostka do platformy Kubernetes z programem Visual Studio Code ) i Use Bridge to Kubernetes with Visual Studio (Używanie mostka do platformy Kubernetes w programie Visual Studio).