当前位置: 首页 > 知识库问答 >
问题:

Kubernetes入口控制器-需要什么?

苏嘉歆
2023-03-14

在AWS控制台中创建ALB规则时,是否有入口控制器在后台运行?

当学习ALB入口控制器时,我有点困惑。我以为这只是对AWS中ALB服务的API调用。但是讲师似乎安装了一个aws入口控制器。然后编写规则来重定向到节点端口服务的路径。

与在AWS控制台中创建和通过kubernets集群进行创建相比,有什么不同。

这是正在安装的控制器。

https://github.com/kubernetes-sigs/aws-load-balancer-controller

共有2个答案

劳通
2023-03-14

先看看我的图表

因此,从高级角度来看,您有一个AWS ALB,它将流量重定向到基础集群。然后,入口控制器负责将流量重定向到正确的库伯内特斯服务,该服务将流量重定向到它的一个pod。对此有多种不同的解决方案。

我最喜欢的解决方案是:

  • 使用像ingress-nginx这样的入口控制器(库伯内特斯有多个不同的入口控制器,这里提供了一个非常好的比较)
  • 将IngressController服务配置为使用NodePort作为类型并使用30080等端口
  • 以Terraform为例创建自己的AWS ALB并将NodePort 30080添加到TargetGroup
  • 创建入口资源以配置IngressController

因此,我希望该图有助于理解ALB和入口控制器的原因。

如果你还有问题,就问这里。

颛孙建业
2023-03-14

通常,在Kubernetes中,控制器是一个正在运行的程序,它观察一些Kubernetes对象,并在此基础上管理其他对象。例如,有一个控制器可以观察部署并从中创建复制集,还有一个控制器可以观察复制集并创建匹配的POD。在这种情况下,ALB入口控制器观察入口对象并创建相应的AWS ALB规则。

没有什么可以阻止您手动执行相同的设置,或者使用Terraform这样的工具,它更专门用于管理云资源。使用Ingress对象在不同环境中的可移植性更强(例如,您可以对本地minikube安装使用类似的Ingress设置)。这种方法还允许您使用Helm这样的单一工具来创建部署、服务和入口,并自动更新ALB;如果删除舵图,它将删除Kubernetes对象,ALB将再次更新自身。

开发团队也有可能在Kubernetes中拥有创建入口对象的权限,但在AWS中没有(直接)创建负载平衡器的权限,根据您的本地安全和治理要求,这种设置可能有意义。

 类似资料:
  • 我正在云中的AWS EKS服务上运行我的工作负载。我可以看到没有默认的入口控制器可用(因为它可用于GKE),我们必须选择第三方。 我决定使用Traefik。在跟踪文档和其他资源(像这样)之后,我觉得使用Traefik作为IngresController不会自动在云中创建LoadBalancer。我们必须手动完成它来设置所有内容。 如何使用Traefik作为Kubernetes入口,就像其他入口控制

  • 什么是微控制器,为什么需要微控制器? 在阅读Arduino 文档的时候, Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。由一个欧洲开发团队于2005年冬季开发。其成员包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nic

  • 我在RedHat EC2实例上安装了Minikube v1.3.1以进行一些测试。 由于nginx-ingress-控制器默认使用的端口已经在使用中,我正在尝试在部署中更改它们,但没有结果。有人能建议如何做吗? 如何知道端口已在使用? 当我使用命令kubectl-n kube system get deployment | grep nginx列出系统吊舱时,我得到: nginx入口控制器0/1

  • 我试图创建一个入口控制器,它指向我通过Nodeport公开的服务。 以下是入口控制器的yaml文件(摘自https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/):

  • 我们正在GKE(谷歌kubernetes引擎)上运行一个API服务器。我们使用Google云endpoint和API密钥处理授权。我们将每个API密钥上的某些IP地址列为白名单。为了做到这一点,我们必须将负载平衡器转换为入口控制器,以公开我们的API服务器。IP白名单不适用于loadbalancer服务。现在,我们有一个类似以下内容的入口设置:

  • 我正在AWS EKS上设置NGINX入口控制器。 我浏览了k8s入口资源,它非常有助于理解我们将LB端口映射到k8s服务端口,例如file Def。我安装了nginx控制器,直到必要的步骤。然后教程指示我创建一个入口资源。 我错过了什么?