当我创建一个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
我不确定这是正确的还是最佳实践?
我认为所有大师都应该在一个实例组中。
答案 0 :(得分:2)
我假设您的意思是多个可用区。这是冗余的默认行为。像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中指定多个可用性区域,则无法保证节点将以每个可用性上都有一个的方式降落区域。