Konfigurowanie Mostka na platformę Kubernetes
Uwaga
Firma Microsoft planuje już nie obsługiwać projektu Bridge to Kubernetes. W ciągu najbliższych kilku miesięcy przeniesiemy projekt do stanu archiwalnego. W międzyczasie projekt jest nadal dostępny do użycia i pobrania. W tym okresie mamy nadzieję zapoznać się z projektami społeczności, które zapewniają podobne korzyści, jak bridge to Kubernetes w przyszłości. Jeśli masz pytania, skontaktuj się z nami na tablicy problemów w witrynie 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
lokalizacji , 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 we właściwościach debugowania. Zobacz Edytowanie profilu uruchamiania.
Z tego miejsca możesz otworzyć następujący ekran, który umożliwia edytowanie niektórych typowych właściwości konfiguracji.
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.
Na 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-list
wartość .
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. 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 env do 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/serviceaccount
wartość .
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.
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, 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). Na 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ść. 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.
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).