带有 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 中指定多个可用区,则无法保证节点将以一种方式登陆每个可用区。
当我创建一个 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 中指定多个可用区,则无法保证节点将以一种方式登陆每个可用区。