kubernetes 是否可以在一个AWS区域创建主节点,在另一个区域创建工作节点?

qf9go6mv  于 2023-05-06  发布在  Kubernetes
关注(0)|答案(2)|浏览(145)

是否有可能在一个区域内创建eks集群(例如ap-south-1)和从另一个区域(例如,ap-north-east-2)。如果是,谁能告诉我怎么做?

vs3odd8k

vs3odd8k1#

这是不可能的,即使是使用自管理节点组,因为远程区域中的节点无法进行身份验证以加入群集。
此身份验证由名为aws-iam-authenticator的组件执行,该组件是EKS为您运行的Kubernetes主组件之一。当节点尝试加入集群时,aws-iam-authenticator尝试将节点验证的IAM角色Map到Kubernetes用户名system:node:<nodename><nodename>必须精确匹配节点的名称,即其私有EC2 DNS名称。为了生成此用户名,aws-iam-authenticator使用EC2 API查找节点的私有DNS名称,但它在与EKS集群相同的区域中执行此操作,因此对于试图从另一个区域加入的节点,它将失败。
可以在aws-iam-authenticator中修补此行为,但由于AWS将此组件作为EKS主组件的一部分为您运行,因此您无法运行修补版本。
当然,您可以通过部署自己的集群来实现多地域K8s集群,而无需使用EKS。然而,远距离节点存在风险。如果两个区域失去彼此的网络连接,或者延迟增加超过一定量,则涉及远处区域中的节点的控制平面操作将失败,并且主设备将看到那些节点丢失。除此之外,这意味着在远程节点上运行的pod可以在其他地方重新调度,尽管实际上仍然在远程区域中运行。请注意,即使两个区域仍然连接到Internet的其他部分,区域之间的连接也可能丢失或受损。
您应该在第二个区域部署另一个集群。SIG Multicluster下有各种解决方案用于联合集群,允许它们一起管理。

2ic8powd

2ic8powd2#

不是,是因为你没有能力改变主节点上的任何东西。

Amazon EKS是完全托管的Kubernetes服务,您需要在EC2示例上创建自己的集群。

相关问题