带有 Kops 的 Kubernetes 将每个主节点都放在自己的实例组中是否正确?

Kubernetes with Kops is it correct to have each master in its own instance group?

当我创建一个 Kubernetes 集群并指定 --master-zone us-west-2a,us-west2b-us-west2c 时,我最终得到了 3 个主节点(这很好),但它们位于不同的实例组中。

$ kops get ig 
Using cluster from kubectl context: kube2.mydomain.net

NAME            ROLE    MACHINETYPE MIN MAX ZONES
master-us-west-2a   Master  m4.large    1   1   us-west-2a
master-us-west-2b   Master  m4.large    1   1   us-west-2b
master-us-west-2c   Master  m4.large    1   1   us-west-2c
nodes           Node    m4.large    3   3   us-west-2a,us-west-2b,us-west-2c

我不确定这是正确的,还是最佳做法?

我觉得应该所有master都在一个instance group里

我假设您指的是多个可用区。这是冗余的默认行为。像 AWS 这样的云提供商建议在不同的可用性区域之间分散您的控制平面(以及与此相关的工作负载)。

如果您想在单个区域中创建它们,您可以运行像这样,例如:

$ kops create cluster --zones=us-east-1c --master-count=3 k8s.example.com

$ kops create cluster --zones=us-east-1b,us-east-1c --master-zones=us-east-1c --master-count=3

更多信息here

我认为拥有一个实例组(映射到 AWS 中的 ASG)背后的基本原理是,如果您在 ASG 中指定多个可用区,则无法保证节点将以一种方式登陆每个可用区。