【问题标题】:Kops interaction between vpc with internal configurationvpc 与内部配置之间的 Kops 交互
【发布时间】:2020-02-04 17:12:08
【问题描述】:

我的目标是在 AWS 中的某个私有 VPC(比如 A)中部署集群,并提供与其他 VPC(比如 B)的对等连接。主要思想是只能从 VPC B 访问 k8s。据我所知,我应该创建一个带有内部负载均衡器的私有拓扑集群。像这样:

kops create cluster --name=$cluster --state=$state --zones=$zones --topology=private --networking=weave --api-loadbalancer-type=internal

但不幸的是,kops 将 api 负载均衡器放在私有子网中,因此使其无法从其他 VPC 访问。如果我把它公开

kops create cluster --name=$cluster --state=$state --zones=$zones --topology=private --networking=weave --api-loadbalancer-type=public

Kops 创建了一个互联网可见的 api 负载平衡器,为了安全起见,我想避免这种情况。有谁知道可以通过 kops 实现这样的解决方案吗?

【问题讨论】:

  • 你说访问k8s是指访问k8s内部运行的服务还是访问k8s api server进行集群管理? API 服务器访问可以通过 --admin-access 标志来限制,这将限制 API 访问提供的 CIDR。如果不设置,访问将不受 IP 限制。 (默认 [0.0.0.0/0])
  • @Clowin 我的意思是访问 k8s api 进行集群管理。我没有设置 --admin-access 标志,所以在我的情况下它没有限制 [0.0.0.0/0]
  • 好的,那么设置 --admin-access 标志应该可以解决您的问题,对吧?我将在下面添加它作为答案。

标签: amazon-web-services kubernetes kops


【解决方案1】:

负载均衡器将流量引导到您在集群内运行的 Pod。因此,如果 pod 需要暴露于外部流量,那么您正在做的事情是有效的。

如果您想限制对用于集群管理的集群 api 的访问,请使用--admin-access 标志,这将限制对提供的 CIDR 的 API 访问。如果不设置,访问将不受 IP 限制。 (默认 [0.0.0.0/0])

【讨论】:

  • 我已经尝试过了。我设置了 --api-loadbalancer-type=public 并使用了 --admin-access=172.20.0.0/16 但效果不佳。当我意识到 AWS 创建了一个用于访问负载均衡器的公共 api 和通信将像 VPC B -> 互联网 -> VPC A,但也有限制 VPC B 端访问公共互联网我想像 VPC B 一样通信->VPC A
【解决方案2】:

我认为在您的第一个示例中放入负载均衡器的私有子网应该不是问题,如果您需要安全性,我会在公共子网上使用它。

猜测这更多是 VPC 对等和路由不正确而不是 kops 设置的问题

两个 VPC 是否位于不同的子网上,路由表是否正确路由流量?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    • 2022-08-04
    • 2018-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    相关资源
    最近更新 更多