Edwin Vinas
Edwin Vinas

Reputation: 21

Openshift not forwarding packets to pod

I'm trying to setup a pod which receives packets for port 1234 coming from external hosts. I confirmed via tcpdump that the packets are indeed arriving at the openshift cluster. Now, I have pod AAAA running already which supposed to get the packets for port 1234 (routed or forwarded from the openshift master). We already have assigned an IP for the pod so the docs below has been followed thoroughly to setup the externalIP, ports, etc. I suspect the issue is with the master-config but I cant paste them here.

My question is what are the configs necessary to be put in place in the master-config in order to route port 1234 packets to pod AAAA.

Tried already below Openshift docs:

Upvotes: 0

Views: 618

Answers (2)

Okan
Okan

Reputation: 1

In your master config (etc/origin/master/master-config.yaml), just add

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: []

After that, restart atomic-openshift-master service.

Then, create a second service for your deployment with a load balancer type. Assuming your deployment config name is "myapp", create new file similar below,

--- "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

After that, create a new service

#oc create -f new-svc.yml

Finally, expose the new service "myapp-ext" by adding route (1234 <-- 1234).

Upvotes: 0

Oswin Noetzelmann
Oswin Noetzelmann

Reputation: 9555

First of all - You are only referring to a POD. I would recommend to deploy your app as a Deployment rather. Please refer to this and this.

Additionally, in order to expose Deployments to the outside world in Kubernetes you have to establish a Service. It can expose your app in a few different ways. Please read through this for the details.

If you using any standard app you can usually find an example deployment/service by googling the name of the app and 'kubernetes'.

Upvotes: 1

Related Questions