我正在使用eksctl创建我们的EKS集群。
对于第一次运行,效果很好,但是如果我以后想升级cluster-config,它就不起作用了。
我随身带着一个cluster-config文件,但是对它所做的任何更改都不能用update/upgrade命令来反映。
我遗漏了什么?
Cluster.yaml:
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: supplier-service
region: eu-central-1
vpc:
subnets:
public:
eu-central-1a: {id: subnet-1}
eu-central-1b: {id: subnet-2}
eu-central-1c: {id: subnet-2}
nodeGroups:
- name: ng-1
instanceType: t2.medium
desiredCapacity: 3
ssh:
allow: true
securityGroups:
withShared: true
withLocal: true
attachIDs: ['sg-1', 'sg-2']
iam:
withAddonPolicies:
autoScaler: true现在,如果将来我想改变instance.type或副本,我必须销毁整个集群,recreate...which变得非常麻烦。
如何使用EksCtl创建的集群进行就地升级?谢谢。
发布于 2021-01-21 09:10:00
我在调查和你完全一样的问题。
在对Internet进行了大量搜索之后,我发现还不可能就地升级EKS中现有的节点组。
首先,eksctl update已经不受欢迎了。当我执行eksctl upgrade --help时,它发出了如下警告:
DEPRECATED: use 'upgrade cluster' instead. Upgrade control plane to the next version.第二,正如这个GitHub问题和eksctl文件中提到的,到目前为止,eksctl upgrade nodegroup只用于升级托管节点组的版本。
因此,不幸的是,您必须创建一个新的节点组来应用您的更改,迁移您的工作负载/将您的流量切换到新的节点组,并将旧的节点组分解。在您的示例中,没有必要对整个集群进行核弹并重新创建。
如果您正在寻求以最小/零停机时间进行无缝升级/迁移,我建议您尝试托管节点组,在这种情况下,工作负载的优雅耗尽似乎是有希望的:
Node updates and terminations gracefully drain nodes to ensure that your applications stay available.注意:在上面的配置文件中,如果指定nodeGroups而不是managedNodeGroups,将提供一个非托管节点组。
然而,不要失去希望。已在eksctl GitHub存储库中放置了一个添加eksctl apply选项的eksctl apply。在这个阶段,它还没有发布。如果这一切成真那就太好了。
https://stackoverflow.com/questions/61724527
复制相似问题