Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes GKE-在集群创建完成后升级集群主机_Kubernetes_Google Cloud Platform_Google Kubernetes Engine - Fatal编程技术网

Kubernetes GKE-在集群创建完成后升级集群主机

Kubernetes GKE-在集群创建完成后升级集群主机,kubernetes,google-cloud-platform,google-kubernetes-engine,Kubernetes,Google Cloud Platform,Google Kubernetes Engine,一旦我们使用JMeter客户端增加负载,我部署的服务就会中断,在GCP/GKE控制台上,它会说- Upgrading cluster master The values shown below are going to change soon. 我的kubectl客户端在升级过程中抛出此错误- Unable to connect to the server: dial tcp 35.236.238.66:443: connectex: No connection could be made b

一旦我们使用JMeter客户端增加负载,我部署的服务就会中断,在GCP/GKE控制台上,它会说-

Upgrading cluster master
The values shown below are going to change soon.
我的kubectl客户端在升级过程中抛出此错误-

Unable to connect to the server: dial tcp 35.236.238.66:443: connectex: No connection could be made because the target machine actively refused it.
如何停止此升级或防止服务中断?如果服务将被中断,那么这种自动缩放就没有任何好处。我是GKE的新手,如果我缺少任何配置或参数,请告诉我。 我正在使用此命令创建集群-

gcloud container clusters create ajeet-gke --zone us-east4-b --node-locations us-east4-b --machine-type n1-standard-8 --num-nodes 1 --enable-autoscaling --min-nodes 4 --max-nodes 16
它不是在升级k8s版本。因为它可以在较小的负载下正常工作,但随着负载的增加,集群开始升级主服务器。因此,看起来主节点正在调整自身大小以容纳更多节点。升级后,我可以在GCP控制台上看到更多节点

下面的命令表示实例组上未启用自动缩放

> gcloud compute instance-groups managed list
NAME                     AUTOSCALED  LOCATION    SCOPE   ---
ajeet-gke-cluster-      no        us-east4-b   zone   ---
default-pool-4***0 
解决方法

抱歉,忘了在这里更新它,我找到了一个解决方法来修复它-将“群集创建”命令分为两个步骤后,群集将自动缩放,而无需重新启动主节点:

gcloud container clusters create ajeet-ggs --zone us-east4-b --node-locations us-east4-b --machine-type n1-standard-8 --num-nodes 1
gcloud container clusters update ajeet-ggs --enable-autoscaling --min-nodes 1 --max-nodes 10 --zone us-east4-b --node-pool default-pool

为了防止出现这种情况,您应该始终使用硬编码集群版本创建集群,直到最后一个可用版本

请参阅文档:

这意味着Goolge正在管理主机,这意味着如果您的主机不是最新的,它将更新为最新版本,并允许google限制当前管理的版本数


现在,为什么在更新过程中服务会中断:因为您处于区域模式,只有一个主节点,为了防止出现这种情况,您应该使用多个主节点进入区域群集模式,以便进行干净的滚动更新。

主节点不会调整节点大小,除非在其中启用了

如上面的回答所述,这是该级别的一个功能。通过查看问题的描述,您的节点池似乎启用了“自动缩放”,最终GKE的群集自动缩放器会根据您想要运行的工作负载需求自动调整群集的大小(即当存在由于资源短缺(如CPU)而无法调度的POD时)

此外,Kubernetes群集自动缩放不使用托管实例组自动缩放器。它在Kubernetes主机上运行群集自动缩放控制器,该控制器使用Kubernetes特定的信号来缩放节点


因此,强烈建议不要在Kubernetes Engine创建的实例组上使用(或依赖MIG显示的自动缩放状态)Compute Engine的自动缩放功能

感谢@night gold的及时回复,它不是升级k8s版本。因为它可以在较小的负载下正常工作,但随着负载的增加,集群开始升级主服务器。因此,看起来主节点正在调整自身大小以容纳更多节点。升级后,我可以在GCP控制台上看到更多节点。这似乎回答了这个问题,再加上您处于单声道主控配置。您可以在区域集群上测试它,看看负载增加是否使主服务器可用,或者滚动更新是否正确地完成了它的工作?不,这不起作用。Regional cluster也有同样的问题-gcloud容器群集创建ajeet ggs Regional--region us-east4--机器类型n1-standard-8--num nodes 1--启用自动缩放--最小节点3--最大节点16GCP文档还建议使用cause master restart进行自动缩放-不激活自动缩放,但是自动调用是一种节点池功能,因此当节点进行缩放时,这不会对masterThank@Digil产生任何影响。我是GKE新手,那么如何在不使用GKE自动缩放('--enable autoscaling')选项的情况下创建一个自动伸缩的k8s集群呢?我在应用程序中使用k8s的HorizontalPodAutoscaler(Pod4到16)。如果我没有使用GKE的自动缩放选项,那么它不会创建更多的节点,并且新的POD仍处于挂起状态。我不想创建一个固定大小的大型集群。如果您真的是GKE新手,那么我必须建议您参考文档,了解如何根据需要部署应用程序吊舱。GKE本身的自动缩放功能是一项推荐功能,在该功能中,将根据工作负载的需求对节点进行“向上”和“向下”缩放。