Konfigurieren von Bridge to Kubernetes
Hinweis
Microsoft plant, die Brücke zum Kubernetes-Projekt nicht mehr aktiv aufrechtzuerhalten. In den nächsten Monaten werden wir das Projekt in einen Archivierungszustand umstellen. In der Zwischenzeit steht das Projekt weiterhin zum Verwenden und Herunterladen zur Verfügung. In diesem Zeitraum hoffen wir, Community-Projekte zu erkunden und zu empfehlen, die ähnliche Vorteile wie Bridge to Kubernetes für Ihre zukünftige Nutzung bieten. Wenn Sie Fragen haben, wenden Sie sich bitte an uns in unserem Issues-Board auf GitHub.
Sie können den lokalen Bridge to Kubernetes-Prozess mit zwei Methoden konfigurieren. Sie können Dienste auf Ihrem Cluster kommentieren und lokale Konfigurationen bereitstellen.
Kubernetes-Konfiguration
Die Kubernetes-Konfigurationsdatei (kubeconfig) ist standardmäßig unter ~/.kube/config
gespeichert, Sie können den Speicherort jedoch mithilfe der Umgebungsvariable KUBECONFIG einstellen.
Bei Verwendung von Visual Studio können Sie das Startprofil „Bridge to Kubernetes“ in der IDE über die Benutzeroberfläche von Debugstartprofilen in den Debugeigenschaften bearbeiten. Siehe Bearbeiten des Startprofils.
Dort 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 weiterleiten
Konfigurieren Sie Bridge to Kubernetes, um die Zuordnung bestimmter Ports für einen Kubernetes-Dienst zu Ihrem Computer zu ignorieren, indem Sie die Anmerkung bridgetokubernetes/ignore-ports
zum Dienst hinzufügen.
apiVersion: v1
kind: Service
metadata:
annotations:
bridgetokubernetes/ignore-ports:445,23
Lokale Konfiguration mithilfe von (KubernetesLocalProcessConfig.yaml)
Mit der Datei KubernetesLocalProcessConfig.yaml
können Sie Umgebungsvariablen und eingebundene Dateien replizieren, die für Pods in Ihrem Cluster verfügbar sind. 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.
- Machen Sie einen in Ihrem Cluster ausgeführten Dienst für Prozesse verfügbar, die auf Ihrem Entwicklungscomputer ausgeführt werden.
- Erstellen Sie eine Umgebungsvariable mit einem konstanten Wert.
Eine KubernetesLocalProcessConfig.yaml
-Standarddatei wird nicht automatisch erstellt, daher müssen Sie die Datei manuell im Stammverzeichnis des Projekts erstellen.
Herunterladen eines Volumes
Geben Sie unter env einen Wert für name und value für jedes Volume an, das Sie herunterladen möchten. 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. Gemäß Standardverhalten werden die Dateien in den Pfad heruntergeladen, den Sie in einem temporären Verzeichnis auf Ihrem Entwicklungscomputer angeben. Im obigen Beispiel ist ALLOW_LIST_PATH auf /TEMPORARY_DIR/allow-list
festgelegt.
Hinweis
Beim Herunterladen eines Volumes wird unabhängig von dem von Ihnen festgelegten Pfad der gesamte Inhalt dieses Volumes heruntergeladen. Der Pfad wird nur verwendet, um die Umgebungsvariable festzulegen, die auf dem Entwicklungscomputer verwendet werden soll. 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 einfach eine praktische Lösung, falls Ihre App einen Verweis auf eine bestimmte Datei innerhalb des 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-*)
Das obige Beispiel verwendet den Eintrag in env, um ein Volume herunterladen, das mit default-token- übereinstimmt, wie z. B default-token-1111 oder default-token-1234-5678-90abcdef. In Fällen, in denen mehrere Volumes übereinstimmen, wird die erste Übereinstimmung verwendet. Alle Dateien werden unter Verwendung des Eintrags volumeMounts in den Pfad /var/run/secrets/kubernetes.io/serviceaccount
auf Ihrem Entwicklungscomputer heruntergeladen. Die Umgebungsvariable KUBERNETES_IN_CLUSTER_CONFIG_OVERRIDE ist auf /var/run/secrets/kubernetes.io/serviceaccount
festgelegt.
Verfügbarmachen eines Diensts
Geben Sie unter env einen Wert für name und value für jeden Dienst an, den Sie auf Ihrem Entwicklungscomputer verfügbar machen möchten. 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/
Das obige Beispiel macht den Dienst myapp1 für Ihren Entwicklungscomputer verfügbar, und die Umgebungsvariable MYAPP1_SERVICE_HOST ist auf die lokale IP-Adresse des Diensts myapp1 mit dem Pfad /api/v1
festgelegt, also auf 127.1.1.4/api/v1
. Auf den Dienst myapp1 kann über die Umgebungsvariable, myapp1 oder myapp1.svc.cluster.local zugegriffen werden.
Hinweis
Wenn Sie einen Dienst auf Ihrem Entwicklungscomputer verfügbar machen, wird unabhängig von dem von Ihnen festgelegten Pfad der gesamte Dienst verfügbar. Der Pfad wird nur verwendet, um die Umgebungsvariable festzulegen, die auf dem Entwicklungscomputer verwendet werden soll. Mit $(services:SERVICE_NAME.NAMESPACE_NAME) können Sie auch einen Dienst aus einem bestimmten Kubernetes-Namespace verfügbar machen. Zum Beispiel:
version: 0.1
env:
- name: MYAPP2_SERVICE_HOST
value: $(services:myapp2.mynamespace)
Das obige Beispiel macht myapp2 aus dem Namespace mynamespace auf Ihrem Entwicklungscomputer verfügbar und legt die Umgebungsvariable MYAPP2_SERVICE_HOST auf die lokale IP-Adresse von myapp2 aus dem Namespace mynamespace fest.
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. name ist die Umgebungsvariable, die auf Ihrem Entwicklungscomputer verwendet wird, und value ist der Wert. Zum Beispiel:
version: 0.1
env:
- name: DEBUG_MODE
value: "true"
Das obige Beispiel erstellt eine Umgebungsvariable namens DEBUG_MODE mit dem Wert true.
Dienstabhängigkeit hinzufügen
Sie können eine Dienstabhängigkeit angeben, z.B. eine Datenbank oder einen Cache, mit einem generischen Abhängigkeitsfeld, ä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 die Authentifizierungsmodelle für die Umleitung nicht. Beispielsweise sollten Sie für Azure SQL-Datenbank Verbindungsrichtlinie auf "Proxy" festlegen (anstelle von "Umleitung" oder "Standard").
KubernetesLocalProcessConfig.yaml-Beispieldatei
Hier sehen Sie ein Beispiel einer vollständigen 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
Wenn Sie mit der Verwendung von Bridge to Kubernetes beginnen möchten, um Ihren lokalen Entwicklungscomputer mit Ihrem Cluster zu verbinden, finden Sie unter Verwenden von Bridge to Kubernetes mit Visual Studio Code und Verwenden von Bridge to Kubernetes mit Visual Studio weitere Informationen.