gpt4 book ai didi

amazon-web-services - 在EKS(AWS kubernetes)上将JHub入口流量列入白名单的好方法?

转载 作者:行者123 更新时间:2023-12-02 12:03:02 29 4
gpt4 key购买 nike

上下文:
我有一个EKS集群(EKS是AWS的托管kubernetes服务)。
我通过 Helm 将应用程序部署到此EKS集群(JupyterHub)。
我有一个VPN服务器。
我的应用程序的用户(EKS上的JupyterHub)必须先连接到VPN服务器,然后才能访问该应用程序。
我通过删除 flex 负载均衡器上的0.0.0.0/0“允许所有”入口规则并添加仅允许来自VPN服务器的流量的入口规则来实施此操作。
上面引用的 flex 负载均衡器是由JupyterHub应用程序隐式创建的,该应用程序已通过 Helm 部署到EKS。

问题:
当我将更改部署到EKS中正在运行的JuypyterHub应用程序时,有时[取决于更改] ELB被删除并重新创建。
这将导致与ELB关联的安全组以及入口规则也被重新创建。
这是不理想的,因为在将更改部署到JupyterHub / EKS时很容易忽略它,并且开发人员可能会忘记验证安全组规则是否仍然存在。

问题:
我可以强制执行此入口网络规则(仅允许来自VPN服务器的流量)吗?

我有两个想法,但并不理想:

  • 使用NACL。这实际上是行不通的,因为由于NACL是有状态的并且在子网级别运行,因此增加了管理CIDR的大量开销。
  • 我曾想将我的入口规则添加到与EKS工作节点关联的安全组中,但是由于相同的问题,这将无法工作。当您分发对Jupyterhub / EKS的更新时,并且如果替换了ELB,则将“允许所有流量”入口规则隐式添加到EKS worker 节点安全组(允许来自ELB的所有流量)。这将覆盖我的入口规则。
  • 最佳答案

    听起来您正在为JupyterHub使用LoadBalanced服务。处理进入集群的更好方法是使用单个入口 Controller (如nginx入口 Controller )-通过不同的 Helm 图进行部署。

    然后,部署JupyterHub的Helm图表,但使用传递给版本的自定义值以及--set参数来告诉它使用ClusterIP服务而不是LoadBalancer类型。这样,对可能重新创建ClusterIP服务的JupyterHub版本所做的更改就无关紧要-因为现在您将使用Ingress Controller的Ingress Rules来管理JupyterHub的Ingress。

    使用JupyterHub掌 Helm chart 的入口规则功能为您的Nginx入口 Controller 配置入口规则:see docs here

    Nginx入口 Controller 生成的LoadBalancer将保持持久/稳定,您可以在其上单独定义安全组入口规则。

    通过使用访问 Controller +入口规则模式,您实际上可以将JupyterHub应用程序中的EKS应用程序与入口分离。

    关于入口和负载平衡器的主题

    使用EKS / Helm和负载均衡服务时,默认设置是创建一个面向Internet的 flex 负载均衡器。

    您可以在服务定义中添加一些额外的注释,以将其创建为面向内部的LoadBalancer。

    对于入口 Controller (或要使用LoadBalancer服务的其他任何地方),这可能更适合您,因为它不会立即将应用程序公开给开放的Internet。您提到您已经可以访问VPC网络的VPN,因此用户仍可以进入VPN,然后单击LoadBalancer主机名。

    我写下了guide a while back on installing the nginx ingress controller here。它谈到了使用DigitalOcean Kubernetes进行此操作,但仍与EKS相关,因为它只是一张 Helm chart 。

    我做了另一篇文章,讨论了一些可以添加到入口 Controller 服务的额外配置注释,该注释会在负载均衡器同时自动创建特定的端口范围入口安全组规则。 (这是您的另一种选择,如果您发现每次创建它,则必须手动更新安全组上的入口规则)。请参阅有关自定义Ingress Controller负载均衡器和端口范围的文章here

    您可以使用以下方法来设置用于自动配置LoadBalancer入口源范围并将其设置为内部的配置值:

  • controller.service.loadBalancerSourceRanges
  • service.beta.kubernetes.io/aws-load-balancer-internal:0.0.0.0/0

  • 希望有帮助!

    关于amazon-web-services - 在EKS(AWS kubernetes)上将JHub入口流量列入白名单的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58207239/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com