在使用 Amazon EKS (Elastic Kubernetes Service) 管理容器化应用程序时,我们经常需要更新应用程序的 Docker 镜像,并重新部署服务。这个过程包括构建新的 Docker 镜像、推送到 Amazon ECR (Elastic Container Registry)、更新 EKS 节点组的 AMI (Amazon Machine Image) 以及重新部署 Kubernetes 服务。手动执行这些步骤不仅繁琐,而且容易出错。
为了简化这个过程,我编写了一个 Bash 脚本,可以自动完成上述所有步骤。该脚本具有以下功能:
- 构建新的 Docker 镜像并推送到 Amazon ECR
- 获取 BottleRocket AMI 的快照 ID
- 更新 EKS 节点组的 AMI 快照 ID
- 更新 Kubernetes Deployment 的镜像版本
- 发送 DingDing 通知,通知重启成功
脚本代码
使用方法
- 将脚本保存为一个文件,例如
update_service.sh
。 - 根据您的实际环境,修改脚本开头的环境变量值。
- 确保已经安装了 AWS CLI 和 Docker,并且具有相应的权限。
- 在脚本所在目录执行
bash update_service.sh
。
脚本将自动执行以下步骤:
- 构建新的 Docker 镜像并推送到 Amazon ECR。
- 获取 BottleRocket AMI 的快照 ID。
- 使用新的快照 ID 更新 EKS 节点组的 AMI。
- 使用新的 Docker 镜像版本更新 Kubernetes Deployment。
- 发送 DingDing 通知,通知重启成功。
通过使用这个脚本,您可以大大简化 Docker 镜像更新和 EKS 服务重新部署的过程,提高效率并减少手动操作的风险。