
GemäßVerknüpfung, wir können Pods mit mehreren Netzwerken erstellen, wenn die Anwendung einen Port mit einem nicht standardmäßigen Netzwerk (eth2,3 usw.) öffnet. Wie können wir es als Dienst verfügbar machen? Im Dienst-YAML finde ich keine andere Möglichkeit, den Dienst als die Standardfunktion verfügbar zu machen.
Antwort1
Mit Multus können Sie Netzwerkgeräte an Ihre Pods anschließen. Wir möchten jedoch darauf hinweisen, dass diese Schnittstellen nicht Teil unseres Kubernetes-Cluster-SDN sind.
Bei Multus-basierten Geräten: Sie weisen Ihren Pods IPs zu, entweder über DHCP, statische IPs, ... ganz wie Sie möchten. Bedenken Sie, dass diese Adressen unabhängig von Ihrem Kubernetes SDN sind.
Wenn andere Container in diesem Cluster diese Endpunkte verbinden müssen, würde ihr Datenverkehr Ihr SDN verlassen und über ihr übliches Standard-Gateway laufen, das wiederum über bestimmte Kenntnisse über die Subnetze Ihrer Multus-Adressen (und deren Route dorthin) verfügen sollte.
Sie können jedoch weiterhin Dienste erstellen und Adressen aus Ihrem SDN zuweisen. Dies geschieht, indem Sie neben Ihrem Dienst ein Endpoints-Objekt erstellen, beispielsweise:
---
apiVersion: v1
kind: Endpoints
metadata:
name: svc-out-sdn
namespace: ns
subsets:
- addresses:
- ip: 10.0.0.1
ports:
- name: tcp-80
port: 80
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: svc-out-sdn
namespace: ns
spec:
clusterIP: None
ports:
- name: tcp-80
port: 80