Docker 如何创建Kubernetes入口以使用SparkJava端口4567?
我创建了一个基于Java的web服务,它利用SparkJava。默认情况下,此web服务绑定并侦听端口4567。我的公司要求将其放在Docker容器中。我创建了一个Dockerfile并创建了图像,当我运行时,我暴露了端口4567Docker 如何创建Kubernetes入口以使用SparkJava端口4567?,docker,kubernetes,kubernetes-ingress,Docker,Kubernetes,Kubernetes Ingress,我创建了一个基于Java的web服务,它利用SparkJava。默认情况下,此web服务绑定并侦听端口4567。我的公司要求将其放在Docker容器中。我创建了一个Dockerfile并创建了图像,当我运行时,我暴露了端口4567 docker run -d -p 4567:4567 -t myservice 我可以调用我的web服务来测试调用CURL命令 curl -i -X "POST" -H "Content-Type: application/json" -d "{}" "http:/
docker run -d -p 4567:4567 -t myservice
我可以调用我的web服务来测试调用CURL命令
curl -i -X "POST" -H "Content-Type: application/json" -d "{}" "http://localhost:4567/myservice"
kubectl cluster-info
。。。这是有效的。然后我的公司说它想把这个放到亚马逊EKS Kubernetes上,所以我把我的Docker形象发布到公司的私人Dockerhub上。我创建了三个yaml文件
- 部署.yaml
- 服务中心
- 亚马尔酒店
kubectl get ingress my-api-ingress
kubectl get service my-api-service
。。。显示
NAME HOSTS ADDRESS PORTS AGE
my-api-ingress * 80 9s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-api-service ClusterIP 172.20.247.225 <none> 4567/TCP 16h
当我运行命令时
kubectl get ingress my-api-ingress
kubectl get service my-api-service
。。。显示
NAME HOSTS ADDRESS PORTS AGE
my-api-ingress * 80 9s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-api-service ClusterIP 172.20.247.225 <none> 4567/TCP 16h
。。。我明白了
Kubernetes master is running at https://12CA0954AB5F8E1C52C3DD42A3DBE645.yl4.us-east-1.eks.amazonaws.com
因此,我试图通过发出
curl -i -X "POST" -H "Content-Type: application/json" -d "{}" "http://12CA0954AB5F8E1C52C3DD42A3DBE645.yl4.us-east-1.eks.amazonaws.com:4567/myservice"
一段时间后,我收到一个超时错误
curl: (7) Failed to connect to 12CA0954AB5F8E1C52C3DD42A3DBE645.yl4.us-east-1.eks.amazonaws.com port 4567: Operation timed out
我相信我的ingress是错误的,但我很难找到非NGINX的例子进行比较
思想?巴利皮克
您的服务应该是“类型:NodePort”
这个例子非常相似(但是在GKE中进行了测试)
在ingresskubectl get ingress
中,您应该看到一个外部ip地址
您可以找到特定的AWS实现。此外,有关公开服务的更多信息,您可以找到查看入口格式。您安装了哪个入口控制器?@CharlesXu-我们使用的是AWS EKS。不确定安装了哪个入口控制器。我如何确定安装了哪个入口控制器?您可以通过code
kubectl get deploy--all namespace
获得所有部署,然后您可以查看nginx入口是否已经存在。