无法访问kubernetes容器的代理

时间:2020-01-17 09:48:20

标签: kubernetes

我使用kind在debian 9机器上创建了一个kubernetes集群。
显然可以,因为我可以使用有效的输出运行kubectl cluster-info

现在,我想闲逛Learn Kubernetes Basics网站上的教程。

我已经部署了应用程序

kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1

并启动kubectl proxy

kubectl get deployments

的输出
NAME                  READY   UP-TO-DATE   AVAILABLE   AGE
kubernetes-bootcamp   1/1     1            1           17m

我现在的问题是:当我尝试使用curl查看应用程序的输出时,我得到了

尝试访问服务时出错:“拨号TCP 10.244.0.5:80:连接:连接被拒绝”

我的命令

export POD_NAME=$(kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}')
curl http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME/proxy/

为了完整起见,我可以运行curl http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME/并获得有效的输出。

3 个答案:

答案 0 :(得分:2)

本教程模块中的步骤代表了环境,就像您在集群节点之一上工作一样。

该命令尝试检查节点上本地服务的连接性。

但是,在您的情况下,通过在docker(种类)集群中运行kubernetes,最有可能从提供了kubernetes的docker容器的主机上执行curl命令。

可能可以使用docker exec进入kind节点并尝试从那里运行curl命令。

希望这会有所帮助。

答案 1 :(得分:1)

我还按照种类使用本教程,并完成了转发端口的工作:

 kubectl port-forward $POD_NAME 8001:8001

答案 2 :(得分:0)

尝试在 $POD_NAME

后添加 :8080
 curl http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME:8080/proxy/
相关问题