美文网首页
AWS EKS 集群版本升级备忘

AWS EKS 集群版本升级备忘

作者: 国服最坑开发 | 来源:发表于2024-08-30 17:11 被阅读0次

0x00 升级过程应该了解到的信息

1、在控制网页上升级的是,仅是EKS的控制平台版本,这个对用户是透明的。
2、控制平台升级时,不会触发数据平台的Pod升级,但如果版本差异太大的话,会在未来几天自动重部署。
3、存在三个版本相关的情况:
  a:控制平台版本号,也就是 1.22-1.30这种版本号
  b:  托管节点组版本号,如果采用托管节点方式部署的话,节点上的系统版本一般跟着控制平台版本号保持一致
       c:  Fargate 节点版本号,因为Fargate每一个Pod其实都是一个独立的 Node,它也有控制平台相应的平台号
4、Pod服务分两种:系统驱动Pod、应用业务服务Pod
  a: 系统驱动会对K8s版本有一定适配需求,这个需要在升级前保持最新
  b: 应用业务Pod(Java),这类服务只要没有用到K8s API,可以无视版本
5、如果Pod已经和外部的ebs/efs卷配置成功并运行中了,此时如何卸载了 ebs/efs驱动也不会影响使用中的Pod, 但新Pod肯定无法使用新的卷配置。

0x01 升级前的准备

  • 系统驱动服务:确保版本号在当前EKS版本号最新,包含 kube-proxy、core-dns等

    • 推荐:使用EKS网页上的系统插件去覆盖手动部署系统服务。官方称之为:托管插件模式 efs 驱动例外,下面单独讲
      • 关于EBS托管插件安装: 可能会提示现有配置不支持更新,这里你需要先卸载系统中的ebs / efs 驱动.
  • 托管节点组: 手动点击控制台上节点组的更新按钮,保证大版本号和控制平台保持一致

  • 人员准备: 提前约好测试、研发人员,升级后第一时间验证功能完整性

  • 关于efs csi 驱动:
    如果EKS使用了Fargate部署,fargate自带了 efs 的协议,默认情况下,手动安装一下efs驱动:

apiVersion: storage.k8s.io/v1
kind: CSIDriver
metadata:
  name: efs.csi.aws.com
  annotations:
    "helm.sh/hook": pre-install, pre-upgrade
    "helm.sh/hook-delete-policy": before-hook-creation
    "helm.sh/resource-policy": keep
spec:
  attachRequired: false

确认方式:

kubectl get csidriver
# 下面表示已经支持 ebs, efs 两种卷驱动
NAME              ATTACHREQUIRED   PODINFOONMOUNT   STORAGECAPACITY   TOKENREQUESTS   REQUIRESREPUBLISH   MODES        AGE
ebs.csi.aws.com   true             false            false             <unset>         false               Persistent   45h
efs.csi.aws.com   false            false            false             <unset>         false               Persistent   44m

0x02 留意AWS网页上的更新提醒

AWS计划性自动升级行为,应该每3天刷一下
https://health.console.aws.amazon.com/health/home#/account/dashboard/scheduled-changes?viewType=table

0x03 普适性规则

  • 不要在 K8s中部署数据库,即使你使用了 efs卷,依然不如使用RDS服务来的安全
  • 网关的低频升级服务,建议放在集群外面部署

相关文章

网友评论

      本文标题:AWS EKS 集群版本升级备忘

      本文链接:https://www.haomeiwen.com/subject/unmfljtx.html