我如何实际连接到kubernetes的前端?



我尝试在EKS上部署,我的配置。Yaml遵循以下建议的格式:

botfront:
app:
# The complete external host of the Botfront application (eg. botfront.yoursite.com). It must be set even if running on a        private or local DNS (it populates the ROOT_URL).
host: botfront.yoursite.com
mongodb:
enabled: true # disable to use an external mongoDB host
# Username of the MongoDB user that will have read-write access to the Botfront database. This is not the root user
mongodbUsername: username
# Password of the MongoDB user that will have read-write access to the Botfront database. This is not the root user
mongodbPassword: password
# MongoDB root password
mongodbRootPassword: rootpassword

然后我运行这个命令:

helm install -f config.yaml -n botfront --namespace botfront botfront/botfront

显示部署成功,所有pod都在运行。

但是botfront.yoursite.com没有任何进展。我检查了入口,匹配了,但没有外部ip地址之类的。我不知道部署到kubernetes后如何访问我的后台站点。

我错过了什么?

编辑:

与nginx lb安装kubectl get ingresses -n botfront现在返回:

NAME                   CLASS    HOSTS                ADDRESS                                                                         PORTS   AGE
botfront-app-ingress   <none>   botfront.cream.com   a182b0b24e4fb4a0f8bd6300b440e5fa-423aebd224ce20ac.elb.us-east-2.amazonaws.com   80      4d1h

kubectl get svc -n botfront返回:

NAME                        TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)           AGE
botfront-api-service        NodePort   10.100.207.27   <none>        80:31723/TCP      4d1h
botfront-app-service        NodePort   10.100.26.173   <none>        80:30873/TCP      4d1h
botfront-duckling-service   NodePort   10.100.75.248   <none>        80:31989/TCP      4d1h
botfront-mongodb-service    NodePort   10.100.155.11   <none>        27017:30358/TCP   4d1h

如果运行kubectl get svc -n botfront,它将显示所有暴露botfrontServices

$ kubectl get svc -n botfront
NAME                        TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)           AGE
botfront-api-service        NodePort   10.3.252.32    <none>        80:32077/TCP      63s
botfront-app-service        NodePort   10.3.249.247   <none>        80:31201/TCP      63s
botfront-duckling-service   NodePort   10.3.248.75    <none>        80:31209/TCP      63s
botfront-mongodb-service    NodePort   10.3.252.26    <none>        27017:31939/TCP   64s

它们中的每一个都是NodePort类型,这意味着它将您的应用程序暴露在每个EKS的外部IP地址上

在指定端口上集群节点。如果你输入node1ip恰好是1.2.3.4,你可以在1.2.3.4:32077上访问botfront-api-service。不要忘记在防火墙/安全组上允许访问这个端口。如果您有任何已注册域名,例如yoursite.com,您可以为其配置子域名botfront.yoursite.com,并将其指向您的一个EKS节点。然后你就可以用你的域名访问它了。这是最简单的方法。

为了能够以比使用特定节点的IP和非标准端口更有效的方式访问它,您可能希望通过Ingress公开它,这将创建一个外部负载平衡器,使您的NodePort服务在一个外部IP地址和标准http端口下可用。

更新:我看到这个图表已经与ingress一起暴露了你的应用程序:

$ kubectl get ingresses -n botfront 
NAME                   HOSTS                   ADDRESS   PORTS   AGE
botfront-app-ingress   botfront.yoursite.com             80      70m

如果通过以下方式检索其yaml定义:

$ kubectl get ingresses -n botfront -o yaml

你会看到它使用了以下注释:

kubernetes.io/ingress.class: nginx

这意味着你需要在你的EKS上安装nginx-ingress控制器集群。这可能是它失败的原因之一。正如您在我的示例中看到的,这个入口没有获得任何外部IP。这是因为nginx-ingress没有安装在我的GKE集群。不确定EKS但据我所知,它没有附带nginx-ingress预装.

还有一件事:我假设在你的config.yaml中你放了一些你已经注册的真实域名而不是botfront.yoursite.com。假设您的域是yoursite.com,并且您成功地创建了子域botfront.yoursite.com,您应该将其重定向到负载均衡器的IP (ingress使用的IP)。

如果你运行kubectl get ingresses -n botfront,但ADDRESS是空的,你可能没有nginx-ingress已安装且无法创建底层负载平衡器。如果您在这里有一些外部IP地址,那么将您的注册域名重定向到此地址。

相关内容

  • 没有找到相关文章

最新更新