kubernetes nodeport外部IP无法访问

时间:2020-05-30 16:57:04

标签: spring spring-boot docker kubernetes

我一直试图在 kubernetes 集群上部署 Spring Boot 应用程序。但是以某种方式,我无法从群集外部访问其余端点。

这是我执行的步骤

  1. 按照指南-Kubernetes Cluster setup using Kubespray

  2. 使用kubespray设置kubernetes集群。
  3. 将spring boot docker镜像推送到docker hub

  4. 创建的Kubernetes部署

vagrant@node1:~/spring-boot$ kubectl create deployment demo --image=rahulwagh17/kubernetes:jhooq-k8s-springboot
deployment.apps/demo created
  1. 使用外部IP = 1.1.1.1公开了部署
kubectl expose deployment demo --type=LoadBalancer --name=demo-service --external-ip=1.1.1.1 --port=8080

service/demo-service exposed
  1. 这就是我的部署外观
vagrant@node1:~/spring-boot$ kubectl get deployment
NAME   READY   UP-TO-DATE   AVAILABLE   AGE
demo   1/1     1            1           24s
  1. 这就是我的服务外观
vagrant@node1:~/spring-boot$ kubectl get service
NAME           TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
demo-service   LoadBalancer   10.233.31.159   1.1.1.1       8080:30099/TCP   13s
kubernetes     ClusterIP      10.233.0.1      <none>        443/TCP          23h
  1. 我可以毫无问题地卷曲集群中的其余端点
vagrant@node1:~/spring-boot$ curl 10.233.31.159:8080/hello
Hello - Jhooq-k8s

我面临的问题-当我尝试从群集外部卷曲其余点时,我做不到

$ curl http://1.1.1.1:30099/hello
curl: (7) Failed to connect to 1.1.1.1 port 30099: Operation timed out

我对kubernetes并不陌生,因此任何线索或建议都将受到高度赞赏

1 个答案:

答案 0 :(得分:1)

请通过以下方法尝试: 通过节点端口:-表示NodeIP:NodePort,在这种情况下,请获取任何节点IP,然后运行命令

curl http://$NODE_IP:30099/hello

,您应该可以访问您的服务。