Weisen Sie einem Pod in Kubernetes eine statische öffentliche IP zu und geben Sie sie im Dienst an.

Weisen Sie einem Pod in Kubernetes eine statische öffentliche IP zu und geben Sie sie im Dienst an.

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

verwandte Informationen