无法访问Kubernetes上的LoadBalancer服务

无法访问Kubernetes上的LoadBalancer服务,kubernetes,kubectl,kubernetes-service,amazon-ecr,Kubernetes,Kubectl,Kubernetes Service,Amazon Ecr,我设法在kubernetes集群部署了一个python应用程序。python应用程序映像部署在AWS ECR弹性容器注册表中。 我的部署是: NAMEcharting rest server就绪1/1最新1可用1年33M容器charting rest server映像*****.dkr.ecr.eu-west-2.amazonaws.com/charting rest server:最新选择OrApp=charting rest server 我的服务是: NAMEcharting rest

我设法在kubernetes集群部署了一个python应用程序。python应用程序映像部署在AWS ECR弹性容器注册表中。 我的部署是:

NAMEcharting rest server就绪1/1最新1可用1年33M容器charting rest server映像*****.dkr.ecr.eu-west-2.amazonaws.com/charting rest server:最新选择OrApp=charting rest server

我的服务是:

NAMEcharting rest server服务类型LoadBalancer CLUSTER-IP10.100.4.207 EXTERNAL-IP******.eu-west-2.elb.amazonaws.com端口8765:32735/TCP AGE124m SELECTORapp=图表rest server

根据这一点,当我做curl*****.us-west-2.elb.amazonaws.com:80时,我应该能够从外部访问负载平衡器,负载平衡器将把我路由到pod的ip。 但我得到的只是

6无法解析主机:******.eu-west-2.elb.amazonaws.com

仔细想想,如果我想访问我的pod并发送一些请求,我应该有一个外部ip,比如111.111.111.111 obv

编辑

部署的yaml是:

该服务的yaml:

我已经尝试了评论中的建议,使用了一个ingress实例,但我只花了大量时间试图理解它们是如何工作的,我是否做错了什么?/等等

我将把我使用的yaml文件放在这里,但它没有改变,因为我的地址字段是空的-没有ip可以使用

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: charting-rest-server-ingress
spec:
  rules:
  - host: charting-rest-server-service
    http:
      paths:
      - path:/
        backend:
          serviceName: charting-rest-server-service
          servicePort: 80

我被这个问题困扰了很长时间,因此我非常感谢您的帮助。

您已经使用LoadBalancer类型创建了一个服务,但看起来您配置的端口不正确

您的部署是使用containerPort:5000创建的,您的服务指向targetPort:9376。这些需要与要公开的部署相匹配

如果您在为服务编写yaml时遇到困难,可以使用以下kubectl命令公开部署:

kubectl expose --namespace=tick deployment charting-rest-server --type=LoadBalancer --port=8765 --target-port=5000 --name=charting-rest-server-service
修复这些端口后,您将能够使用服务的主机名从外部访问该服务:

status:
  loadBalancer:
    ingress:
    - hostname: aba02b223436111ea85ea06a051f04d8-1294697222.eu-west-2.elb.amazonaws.com
我也推荐这本指南


如果您需要对HTTP规则进行更多的控制,请考虑使用,也可以阅读更多有关./P>您是否有一个入口对象来为您的应用程序设置HTTP路径路由?kubectl获取入口请为您的pod、服务和部署发布yaml文件。如果你也这样做的话。更新了问题我只是更新了问题。据我所知,不复杂的应用不需要入口,但即使使用入口,我也无法访问该服务-pod@FloraBiletsiou,您最好发布一个包含所有所需信息的新问题,而不是完全更改现有问题。

kubectl expose --namespace=tick deployment charting-rest-server --type=LoadBalancer --port=8765 --target-port=5000 --name=charting-rest-server-service
status:
  loadBalancer:
    ingress:
    - hostname: aba02b223436111ea85ea06a051f04d8-1294697222.eu-west-2.elb.amazonaws.com