So stellen Sie Docker-Container bereit und führen Port-Mapping/-Weiterleitung mithilfe des YAML-Manifests von Kubernetes durch

So stellen Sie Docker-Container bereit und führen Port-Mapping/-Weiterleitung mithilfe des YAML-Manifests von Kubernetes durch

Bitte helfen Sie mir, den folgenden Docker-Befehl in eine Kubernetes-YAML-Datei zu konvertieren, zusammen mit der Portzuordnung/-weiterleitung an den Docker-Container

 # docker run -p 5775:5775/udp -p 6831:6831/udp -p 6832:6832/udp -p 5778:5778 -p 16686:16686 -p 14268:14268 jaegertracing/all-in-one:latest

Ich habe die folgende Konfiguration ausprobiert:

Bildbeschreibung hier eingeben

Aber ich bekomme kein Ergebnis.

Ich brauche hier Experten, die mir sagen können, ob die obige Bereitstellungsdatei falsch ist und wenn ja, welche möglichen Änderungen ich hier vornehmen kann, um Ergebnisse zu erzielen. Ich habe mehrere andere Kombinationen ausprobiert und bekomme keine Ergebnisse.

Hinweis: Der Container wird bereitgestellt, aber die Portzuordnung/-weiterleitung funktioniert nicht. Da stecke ich fest und brauche Hilfe.

Antwort1

Wenn wir einen NodePort-Dienst angeben, weist Kubernetes jedem Knoten einen Port zu. Der ausgewählte NodePort ist nach der Erstellung in der Dienstspezifikation sichtbar. Alternativ kann man beim Erstellen des Dienstes einen bestimmten Port angeben, der als NodePort in der Spezifikation verwendet werden soll. Wenn kein bestimmter NodePort angegeben ist, wird zufällig ein Port aus einem im Kubernetes-Cluster konfigurierten Bereich (Standard: 30000-32767) ausgewählt.

In Kubernetes können Sie Ihre Ports mit dem # Port-Label definieren. Dieses Label gehört zur Port-Konfiguration in Ihrer Bereitstellung. Entsprechend den Konfigurationen können Sie einfach eine beliebige Anzahl von Ports definieren. Das folgende Beispiel zeigt, wie zwei Ports definiert werden.

apiVersion: v1 
kind: Service
 Metadata:
      name: my-service 
Spec:
  selector: 
     app: MyApp 
  Ports:
    - name: http
      protocol: TCP
      port: 80 
      targetPort: 9376 
    - name: https
      protocol: TCP
      port: 443 
      targetPort: 9377

Um eine Portweiterleitung zum lokalen Host durchzuführen, führen Sie den folgenden Befehl aus.

 kubectl port-forward <pod-name> <locahost-port>:<pod-port>

Weitere Informationen finden Sie unter den Links fürDocker-Container-PortweiterleitungUndKnotenports.

verwandte Informationen