Service Connections
Eine ServiceConnection erstellt einen verschlüsselten, authentifizierten Tunnel zwischen einer Quelle und einem
Ziel-Service. Sie ermöglicht es Applikationen in NKE-Clustern oder Deploio,
On-Demand Services über ein privates Netzwerk statt über das öffentliche Internet zu erreichen.
Quellen
Folgende Quellen werden unterstützt:
- NKE Kubernetes-Cluster (
kubernetescluster) - Deploio-Applikationen (
application)
Ziele
Folgende Ziele werden unterstützt:
- Key-Value Store (
keyvaluestore) - MySQL (
mysql,mysqldatabase) - PostgreSQL (
postgres,postgresdatabase)
Das Ziel muss sich im selben Projekt wie die Service Connection befinden.
Service Connection erstellen
- Cockpit
- nctl
Service Connections sind in Cockpit noch nicht verfügbar. Bitte verwenden Sie vorerst nctl.
Verwenden Sie nctl create serviceconnection mit --source und --destination im Format
kind/name:
nctl create serviceconnection my-connection \
--source=kubernetescluster/my-cluster \
--destination=keyvaluestore/my-kvs
Verbindung zu einem Service über eine Service Connection herstellen
Nach der Konfiguration einer Service Connection können Sie über den privaten FQDN des Services eine Verbindung herstellen:
- Cockpit
- nctl
Service Connections sind in Cockpit noch nicht verfügbar. Bitte verwenden Sie vorerst nctl.
nctl get keyvaluestore my-kvs \
-o yaml
Notieren Sie das Feld privateNetworkingFQDN in der Ausgabe.
Sie können diesen FQDN verwenden, um eine Verbindung zum Service herzustellen.
Zugriff einschränken
Wenn Sie einen NKE Kubernetes-Cluster (kubernetescluster) als Quelle verwenden, können Sie den Zugriff auf bestimmte Pods oder Namespaces einschränken:
Zugriff nach Pod einschränken
Standardmässig können alle Pods im Quell-Cluster die Verbindung nutzen. Um den Zugriff auf bestimmte Pods einzuschränken, geben Sie einen Label-Selektor an:
- Cockpit
- nctl
Service Connections sind in Cockpit noch nicht verfügbar. Bitte verwenden Sie vorerst nctl.
Verwenden Sie --source-pod-selector:
nctl create serviceconnection \
--source=kubernetescluster/my-cluster \
--destination=keyvaluestore/my-kvs \
--source-pod-selector='app=my-app,env=production'
Zugriff nach Namespace einschränken
Um die Verbindung auf bestimmte Namespaces zu beschränken, geben Sie einen Namespace-Label-Selektor an:
- Cockpit
- nctl
Geben Sie im Formular Service Connection erstellen einen Label-Selektor im Feld
Namespace-Selektor ein, zum Beispiel: kubernetes.io/metadata.name=production
Verwenden Sie --source-namespace-selector:
nctl create serviceconnection \
--source=kubernetescluster/my-cluster \
--destination=keyvaluestore/my-kvs \
--source-namespace-selector='kubernetes.io/metadata.name=production'
Wenn beide Selektoren gesetzt sind, können nur Pods, die dem Pod-Selektor entsprechen und sich in Namespaces befinden, die dem Namespace-Selektor entsprechen, die Verbindung nutzen.
Service Connections für Deploio-Applikationen
Wenn Sie Deploio verwenden, kann Nine Service Connections automatisch erstellen und verwalten, wenn Sie Service-Referenzen konfigurieren.