【问题标题】:access docker container in kubernetes访问 Kubernetes 中的 docker 容器
【发布时间】: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


【解决方案1】:

问题在于应用程序正在侦听 IP 127.0.0.1。 它需要收听0.0.0.0 才能在 Kubernetes 中工作。更改应用程序代码就可以解决问题。

【讨论】:

    猜你喜欢
    • 2019-12-18
    • 2018-05-26
    • 2020-03-17
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    • 2021-03-09
    • 2015-08-21
    • 2022-11-16
    相关资源
    最近更新 更多