Konfigurieren von Brücke zu Kubernetes
Anmerkung
Bridge to Kubernetes wird am 30. April 2025 eingestellt. Ausführliche Informationen zur Außerbetriebnahme und den Open-Source-Alternativen finden Sie im GitHub-Problem.
Sie können den lokalen Brücke-zu-Kubernetes-Prozess mit zwei Methoden konfigurieren. Sie können Dienste auf Ihrem Cluster kommentieren und lokale Konfigurationen bereitstellen.
Kubernetes-Konfiguration
Die Kubernetes-Konfigurationsdatei (kubeconfig) wird standardmäßig bei ~/.kube/config
gespeichert, Sie können sie jedoch mithilfe der KUBECONFIG-Umgebungsvariable festlegen.
Wenn Sie Visual Studio verwenden, können Sie das Bridge to Kubernetes-Startprofil in der IDE bearbeiten, indem Sie die Debug-Startprofile-UI in den Debug-Eigenschaften verwenden. Weitere Informationen finden Sie unter Bearbeiten des Startprofils.
Von dort aus können Sie den folgenden Bildschirm öffnen, der eine Möglichkeit zum Bearbeiten einiger der am häufigsten verwendeten Konfigurationseigenschaften bietet.
Verhindern, dass Bridge to Kubernetes bestimmte Ports weiterleitet
Konfigurieren Sie Brücke zu Kubernetes, um die Zuordnung bestimmter Ports auf einem Kubernetes-Dienst zu Ihrem Computer zu ignorieren, indem Sie die bridgetokubernetes/ignore-ports
Anmerkung zum Dienst hinzufügen.
apiVersion: v1
kind: Service
metadata:
annotations:
bridgetokubernetes/ignore-ports:445,23
Lokale Konfiguration mit (KubernetesLocalProcessConfig.yaml)
Mit der Datei KubernetesLocalProcessConfig.yaml
können Sie die für Ihre Pods in Ihrem Cluster verfügbaren Umgebungsvariablen und bereitgestellten Dateien replizieren. Sie können die folgenden Aktionen in einer KubernetesLocalProcessConfig.yaml
Datei angeben:
- Laden Sie ein Volume herunter, und legen Sie den Pfad zu diesem Volume als Umgebungsvariable fest.
- Stellen Sie einen Dienst auf Ihrem Cluster für Prozesse zur Verfügung, die auf Ihrem Entwicklungscomputer ausgeführt werden.
- Erstellen Sie eine Umgebungsvariable mit einem konstanten Wert.
Eine standardmäßige KubernetesLocalProcessConfig.yaml
Datei wird nicht automatisch erstellt, sodass Sie die Datei manuell im Stammverzeichnis Ihres Projekts erstellen müssen.
Herunterladen eines Volumes
Geben Sie unter env einen Wert für name und value für jedes Volume an, das Sie herunterladen möchten. Der Name ist die Umgebungsvariable, die auf Ihrem Entwicklungscomputer verwendet wird. value gibt den Namen des Volumes und einen Pfad auf Ihrem Entwicklungscomputer an. Der Wert für value weist das Format $(volumeMounts:VOLUME_NAME)/PATH/TO/FILES auf.
Zum Beispiel:
version: 0.1
env:
- name: ALLOW_LIST_PATH
value: $(volumeMounts:allow-list)/allow-list
Das obige Beispiel lädt das Volume allow-list aus dem Container herunter und legt den Speicherort sowie den Pfad zur Umgebungsvariable ALLOW_LIST_PATH fest. Das Standardverhalten besteht darin, die Dateien in den Pfad herunterzuladen, den Sie unter einem temporären Verzeichnis auf Ihrem Entwicklungscomputer angeben. Im obigen Beispiel ist ALLOW_LIST_PATH auf /TEMPORARY_DIR/allow-list
festgelegt.
Anmerkung
Wenn Sie ein Volume herunterladen, wird der gesamte Inhalt dieses Volumes unabhängig vom von Ihnen festgelegten Pfad heruntergeladen. Der Pfad wird nur verwendet, um die Umgebungsvariable für die Verwendung auf dem Entwicklungscomputer festzulegen. Das Hinzufügen von /allow-list oder /path/to/files am Ende des Tokens wirkt sich nicht darauf aus, wo das Volume dauerhaft gespeichert wird. Die Umgebungsvariable ist nur ein Hilfsmittel, falls Ihre App einen Verweis auf eine bestimmte Datei innerhalb dieses Volumes benötigt.
Sie haben auch die Möglichkeit, einen Speicherort zum Herunterladen der Volumebereitstellung auf Ihren Entwicklungscomputer anzugeben, anstatt ein temporäres Verzeichnis zu verwenden. Geben Sie unter volumeMounts für jeden Speicherort einen Wert für name und localPath an. name ist der Volumename, der abgeglichen werden soll, und localPath ist der absolute Pfad auf Ihrem Entwicklungscomputer. Zum Beispiel:
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-*)
Im obigen Beispiel wird der Eintrag in env verwendet, um ein Volume herunterzuladen, das default-token-*entspricht, z. B. default-token-1111 oder default-token-1234-5678-90abcdef. In Fällen, in denen mehrere Volumes übereinstimmen, wird das erste übereinstimmende Volume verwendet. Alle Dateien werden unter Verwendung des Eintrags volumeMounts in den Pfad /var/run/secrets/kubernetes.io/serviceaccount
auf Ihrem Entwicklungscomputer heruntergeladen. Die KUBERNETES_IN_CLUSTER_CONFIG_OVERRIDE Umgebungsvariable ist auf /var/run/secrets/kubernetes.io/serviceaccount
festgelegt.
Stellen Sie einen Dienst zur Verfügung
Geben Sie unter den Namen und den Wert für jeden Dienst an, den Sie auf Ihrem Entwicklungscomputer bereitstellen möchten. Der Name ist die Umgebungsvariable, die auf Ihrem Entwicklungscomputer verwendet wird. value gibt den Namen des Diensts aus Ihrem Cluster und einen Pfad an. Der Wert für value weist das Format $(services:SERVICE_NAME)/PATH auf.
Zum Beispiel:
version: 0.1
env:
- name: MYAPP1_SERVICE_HOST
value: $(services:myapp1)/api/v1/
Im obigen Beispiel wird der myapp1 Dienst auf Ihrem Entwicklungscomputer verfügbar, und die MYAPP1_SERVICE_HOST Umgebungsvariable wird auf die lokale IP-Adresse des myapp1 Diensts mit dem /api/v1
Pfad (d. b. 127.1.1.4/api/v1
) festgelegt. Auf den myapp1-Dienst kann über die Umgebungsvariable, myapp1oder myapp1.svc.cluster.localzugegriffen werden.
Anmerkung
Wenn Sie einen Dienst auf Ihrem Entwicklungscomputer verfügbar machen, wird der gesamte Dienst unabhängig vom von Ihnen festgelegten Pfad verfügbar sein. Der Pfad wird nur verwendet, um die Umgebungsvariable für die Verwendung auf dem Entwicklungscomputer festzulegen. Sie können auch einen Dienst aus einem bestimmten Kubernetes-Namespace verfügbar machen, indem Sie $(services:SERVICE_NAME.NAMESPACE_NAME)verwenden. Zum Beispiel:
version: 0.1
env:
- name: MYAPP2_SERVICE_HOST
value: $(services:myapp2.mynamespace)
Im obigen Beispiel wird die myapp2 aus dem mynamespace Namespace auf Ihrem Entwicklungscomputer verfügbar gemacht und die Umgebungsvariable MYAPP2_SERVICE_HOST auf die lokale IP-Adresse der myapp2 aus dem mynamespace Namespace festgelegt.
Erstellen einer Umgebungsvariable mit einem konstanten Wert
Geben Sie unter env einen Wert für name und value für jede Umgebungsvariable an, die Sie auf Ihrem Entwicklungscomputer erstellen möchten. Der Name ist die Umgebungsvariable, die auf Ihrem Entwicklungscomputer verwendet wird, und der Wert ist der Wert. Zum Beispiel:
version: 0.1
env:
- name: DEBUG_MODE
value: "true"
Im obigen Beispiel wird eine Umgebungsvariable namens DEBUG_MODE mit dem Wert trueerstellt.
Hinzufügen einer Dienstabhängigkeit
Sie können eine Dienstabhängigkeit angeben, z. B. eine Datenbank oder einen Cache, mithilfe eines generischen Abhängigkeitsfelds, ähnlich wie dienste deklariert werden. Geben Sie hier eine Abhängigkeit an, wenn der Dienst, den Sie debuggen, eine Verbindung mit Ressourcen herstellen muss, die nicht auf Ihrem Cluster ausgeführt werden. Deklarieren Sie eine Abhängigkeit wie im folgenden Beispiel:
version: 0.1
volumeMounts:
env:
- name: DB_HOST
value: $(externalendpoints:server-bridgetest123.database.windows.net:1433)
Geben Sie den Host-DNS-Namen (server-bridgetest13.database.windows.net
im Beispiel) und port (1433 im Beispiel) für Ihre Abhängigkeit an.
Wenn Sie Abhängigkeiten wie Datenbanken angeben, funktionieren Umleitungsauthentifizierungsmodelle nicht. Für die Azure SQL-Datenbank sollten Sie beispielsweise die Verbindungsrichtlinie auf "Proxy" (anstelle von "Umleitung" oder "Standard") festlegen.
Beispiel KubernetesLocalProcessConfig.yaml
Hier ist ein Beispiel für eine vollständige KubernetesLocalProcessConfig.yaml
Datei:
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"
Nächste Schritte
Informationen zu den ersten Schritten mit Bridge to Kubernetes zum Herstellen einer Verbindung mit Ihrem lokalen Entwicklungscomputer mit Ihrem Cluster finden Sie unter Verwenden von Bridge to Kubernetes mit Visual Studio Code und Verwenden von Bridge to Kubernetes mit Visual Studio.