在kubernetes访问docker集装箱
我有一个应用程序暴露端口8080泊坞窗容器。我可以运行它,并在我的本地计算机上访问它:
$ docker run -p 33333:8080 foo * Running on http://127.0.0.1:8080/ (Press CTRL+C to quit)
我可以testing它:
$ nc -v locahost 33333 connection succeeded!
但是,当我在Kubernetes部署它不起作用。 这是清单文件:
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
和
apiVersion: v1 kind: Service metadata: name: foo-service namespace: foo spec: type: NodePort ports: - port: 8080 - NodePort: 33333 selector: name: foo-pod
部署在:
$ kubectl apply -f foo.yaml $ nc -v <publicIP> 33333 Connection refused
我不明白为什么我不能访问它…
问题是应用程序正在监听IP 127.0.0.1
。 它需要听取0.0.0.0
在kubernetes工作。 应用程序代码的更改没有办法。