本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

aws-eks-asg-rolling-update-handler是一款用于AWS EKS集群中自动扩展组(ASG)滚动更新的工具。它通过识别并替换配置过时的节点(即节点当前配置与ASG的启动模板版本或启动配置不匹配的节点),实现ASG的滚动升级。该工具受aws-asg-roller启发,专注于优雅缩容过时节点,不控制节点总数,而是依赖cluster-autoscaler进行后续节点数量调整。与其他解决方案相比,它基于资源需求确定扩容节点数量,尤其适用于实例类型变更等场景,确保更新过程中的高可用性。
| 环境变量 | 描述 | 是否必填 | 默认值 |
|---|---|---|---|
| CLUSTER_NAME | EKS集群名称,用于替代AUTO_SCALING_GROUP_NAMES。会检查ASG上是否有k8s.io/cluster-autoscaler/<CLUSTER_NAME>: owned和k8s.io/cluster-autoscaler/enabled: true标签 | 是 | "" |
| AUTO_SCALING_GROUP_NAMES | 逗号分隔的ASG名称列表,CLUSTER_NAME优先级更高 | 是 | "" |
| IGNORE_DAEMON_SETS | 排空节点时是否忽略DaemonSets | 否 | true |
| DELETE_LOCAL_DATA | 排空节点时是否删除本地数据 | 否 | true |
| AWS_REGION | AWS区域 | 否 | us-west-2 |
| ENVIRONMENT | 若设为dev,使用本地kubeconfig创建Kubernetes客户端;其他值使用集群内配置 | 否 | "" |
应用需具备以下AWS权限以正常工作:
apiVersion: core/v1 kind: ServiceAccount metadata: name: aws-eks-asg-rolling-update-handler namespace: kube-system labels: k8s-app: aws-eks-asg-rolling-update-handler --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRole metadata: name: aws-eks-asg-rolling-update-handler labels: k8s-app: aws-eks-asg-rolling-update-handler rules: - apiGroups: - "*" resources: - "*" verbs: - get - list - watch - apiGroups: - "*" resources: - nodes verbs: - get - list - watch - update - patch - apiGroups: - "*" resources: - pods/eviction verbs: - get - list - create - apiGroups: - "*" resources: - pods verbs: - get - list --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: aws-eks-asg-rolling-update-handler labels: k8s-app: aws-eks-asg-rolling-update-handler roleRef: kind: ClusterRole name: aws-eks-asg-rolling-update-handler apiGroup: rbac.authorization.k8s.io subjects: - kind: ServiceAccount name: aws-eks-asg-rolling-update-handler namespace: kube-system --- apiVersion: apps/v1 kind: Deployment metadata: name: aws-eks-asg-rolling-update-handler namespace: kube-system labels: k8s-app: aws-eks-asg-rolling-update-handler spec: replicas: 1 template: metadata: labels: k8s-app: aws-eks-asg-rolling-update-handler spec: automountServiceAccountToken: true serviceAccountName: aws-eks-asg-rolling-update-handler restartPolicy: Always dnsPolicy: Default containers: - name: aws-eks-asg-rolling-update-handler image: twinproduction/aws-eks-asg-rolling-update-handler imagePullPolicy: Always env: - name: AUTO_SCALING_GROUP_NAMES value: "asg-1,asg-2,asg-3" # 替换为实际的ASG名称列表
通过Helm chart部署:
helm repo add twinproduction [***] helm repo update helm install aws-eks-asg-rolling-update-handler twinproduction/aws-eks-asg-rolling-update-handler
本地运行时需:
ENVIRONMENT=dev和AUTO_SCALING_GROUP_NAMES(逗号分隔的ASG名称列表)。免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429