2017-04-08 2 views
0

Ich versuche, einen Pod einzurichten, der Pakete für Port 1234 von externen Hosts empfängt. Ich habe über tcpdump bestätigt, dass die Pakete tatsächlich beim Openshift-Cluster ankommen. Jetzt habe ich pod AAAA bereits ausgeführt, die die Pakete für Port 1234 (geroutet oder weitergeleitet vom OpenShift-Master) bekommen soll. Wir haben bereits eine IP für den Pod vergeben, so dass die untenstehenden Dokumente gründlich beachtet wurden, um das externeIP, die Ports usw. einzurichten. Ich vermute, dass das Problem bei der Master-Konfiguration liegt, aber ich kann sie hier nicht einfügen.Openshift keine Weiterleitung von Paketen zu Pod

Meine Frage ist, welche Konfigurationen in der Master-Config erforderlich sind, um Port 1234 Pakete zu Pod AAAA zu routen.

bereits versucht, unter Openshift docs:

Antwort

1

Zunächst einmal - Sie werden nur in POD verweisen. Ich würde empfehlen, Ihre App als Deployment eher zu implementieren. Bitte beziehen Sie sich auf this und this.

Um Deployments nach außen in Kubernetes freizulegen, müssen Sie einen Service einrichten. Es kann Ihre App auf verschiedene Arten verfügbar machen. Bitte lesen Sie this für die Details.

Wenn Sie eine Standard-App verwenden, finden Sie normalerweise eine Beispiel-Bereitstellung/einen Service, indem Sie den Namen der App und 'kubernetes' googlen.

+0

OpenShift hatte sein eigenes Konzept von Bereitstellungen, die auf der Ressource 'DeploymentConfig' basieren. Die "Deployment" in Kubernetes ist eigentlich abgeleitet von dem, was OpenShift vor Kubernetes getan hat. In OpenShift würde die normale Art und Weise, wie Sie eine Anwendung bereitstellen, automatisch ein "Service" -Objekt erstellen. Seien Sie also vorsichtig, wenn Sie vorschlagen, die rohe Kubernetes-Methode zu betrachten, es ist nicht wahrscheinlich, dass sie Dinge so tun, dass rohe Kubernetes-Methoden immer zutreffen. –

+0

Bis zu diesem Zeitpunkt überprüfe ich dieses Problem noch. Ich möchte nur mehr Details über diesen Kommentar zur Verfügung stellen. In tcpdump habe ich bestätigt, dass die UDP-Pakete im Openshift-Master zum Beispiel an Port 1234 ankommen.Es ist nur, dass ich nicht sicher bin, wie man das Master-Paket an Port 1234 in einem Openshift-Pod weiterleiten lässt. Ist das wirklich eine fehlende Konfiguration auf Knoten, Master oder beides (?). –

0

In Ihrem Master-config (etc/Herkunft/Master/Master-config.yaml), fügen Sie einfach

servicesNodePortRange: "1234-1234"

kubernetesMasterConfig: 
    apiServerArguments: 
    controllerArguments: 
    masterCount: 1 
    masterIP: x.x.x.x 
    podEvictionTimeout: 
    proxyClientInfo: 
    certFile: master.proxy-client.crt 
    keyFile: master.proxy-client.key 
    schedulerArguments: 
    schedulerConfigFile: /etc/origin/master/scheduler.json 
    servicesNodePortRange: "1234-1234" 
    servicesSubnet: 172.30.0.0/16 
    staticNodeNames: [] 

Danach starten Sie atomarer openshift- Meisterservice.

Erstellen Sie dann einen zweiten Service für Ihre Bereitstellung mit einem Lastenausgleichstypen. Unter der Annahme der Bereitstellung Konfigurationsname "myapp", erstellen Sie neue Datei unter ähnlichen,

--- "new-svc.yml" ----

apiVersion: v1 
kind: Service 
metadata: 
    creationTimestamp: null 
    labels: 
    app: myapp 
    template: myapp-template 
    name: myapp-ext 
spec: 
    ports: 
    - name: myapp 
    nodePort: 1234 
    port: 1234 
    protocol: TCP 
    targetPort: 1234 
    selector: 
    name: myapp 
    sessionAffinity: None 
    type: LoadBalancer 

Danach erstellen einen neuen Service

Schließlich, legen Sie den neuen Dienst "myapp-ext" durch Hinzufügen von Route (1234 < - 1234).

Verwandte Themen