【发布时间】:2017-02-21 01:30:16
【问题描述】:
我有一个 docker 容器,其中的应用程序暴露了 8080 端口。 我可以在本地计算机上运行并访问它:
$ docker run -p 33333:8080 foo
* Running on http://127.0.0.1:8080/ (Press CTRL+C to quit)
我可以测试它:
$ 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
我不明白为什么我无法访问它...
【问题讨论】:
-
我注意到只用 nc 运行容器是可行的:
标签: python docker kubernetes