0

I have a docker container with an application exposing port 8080. I can run it and access it on my local computer:

$ docker run -p 33333:8080 foo
* Running on http://127.0.0.1:8080/ (Press CTRL+C to quit) 

I can test it with:

$ nc -v locahost 33333
connection succeeded!

However when I deploy it in Kubernetes it doesn't work. Here is the manifest file:

apiVersion: v1
kind: Pod
metadata:
  name: foo-pod
  namespace: foo
  labels:
    name: foo-pod
spec:
  containers:
  - name: foo
    image: bar/foo:latest
    ports:
    - containerPort: 8080

and

apiVersion: v1
kind: Service
metadata:
  name: foo-service
  namespace: foo
spec:
  type: NodePort
  ports:
    - port: 8080
    - NodePort: 33333
  selector:
    name: foo-pod

Deployed with:

$ kubectl apply -f foo.yaml 
$ nc -v <publicIP> 33333
Connection refused 

I don't understand why I cannot access it...

1
  • I noted that running a container only with nc will work: Commented Oct 12, 2016 at 12:38

1 Answer 1

1

The problem was that the application was listening on IP 127.0.0.1. It needs to listen on 0.0.0.0 to work in kubernetes. A change in the application code did the trick.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.