我正在使用Windows 10上Docker Desktop上的本地Kubernetes集群。没有虚拟机,没有迷你库。
我需要在本地主机上公开端口以提供某些服务。
例如,我从官方教程中获取kubernetes-bootcamp图像:
docker pull jocatalin/kubernetes-bootcamp:v2
将其放入本地注册表中:
docker tag jocatalin/kubernetes-bootcamp:v2 localhost:5000/kubernetes-bootcamp
docker push localhost:5000/kubernetes-bootcamp
然后使用此映像创建部署:
kubectl create deployment kubernetes-bootcamp --image=localhost:5000/kubernetes-bootcamp
然后让我们公开一个用于访问我们的部署的端口:
kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port 8080
kubectl get services
kubernetes-bootcamp NodePort 10.102.167.98 <none> 8080:32645/TCP 8s
因此,我们发现我们的部署的公开端口为32645。让我们尝试请求它:
curl localhost:32645
Failed to connect to localhost port 32645: Connection refused
什么都不是。
但是,如果我尝试端口转发,则一切正常:
kubectl port-forward deployment/kubernetes-bootcamp 7000:8080
Forwarding from 127.0.0.1:7000 -> 8080
Forwarding from [::1]:7000 -> 8080
Handling connection for 7000
另一个控制台:
curl localhost:7000
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-7b5598d7b5-8qf9j | v=2
我在做什么错?我发现了像我这样的几篇文章,但没有一个对我有帮助。
答案 0 :(得分:0)
尝试运行此CMD:
kubectl get svc | grep kubernetes-bootcamp
之后,使用CMD将pod暴露给您的网络:
kubectl expose pod (podname) --type=NodePort
之后,您可以使用cmd示例
检查URL。minikube 0r kubectl service (service name) --url
答案 1 :(得分:0)
所以我发现了问题的根源-本地Kubernetes集群以某种方式无法正常工作。
我如何解决问题:
现在,我之前使用的相同脚本效果很好。