Terraform使用中的常见问题与秘密管理
1. 零停机部署的局限性
在使用自动扩展组(ASG)配合 create_before_destroy 进行零停机部署时,存在一些问题。
1.1 与自动扩展策略不兼容
该方法与自动扩展策略不兼容,每次部署后,ASG 大小会重置为 min_size 。例如, webserver - cluster 模块中有 aws_autoscaling_schedule 资源,会在早上 9 点将集群中的服务器数量从 2 增加到 10。若在上午 11 点进行部署,替换的 ASG 将仅启动 2 台服务器,直到第二天早上 9 点才会恢复正常。
解决方法有:
- 调整 aws_autoscaling_schedule 的 recurrence 参数。
- 将 ASG 的 desired_capacity 参数设置为从自定义脚本获取值,该脚本使用 AWS API 确定部署前运行的实例数量。
1.2 建议使用原生解决方案
对于零停机部署这类重要且复杂的任务,应优先使用原生的一流解决方案,而非临时拼凑的方法。AWS 为自动扩展组提供了名为实例刷新(instance refresh)的原生解决方案。
操作步骤如下:
1. 回到 aws_autoscaling_group 资源,撤销零停机部署的更改:
- 将
超级会员免费看
订阅专栏 解锁全文
817

被折叠的 条评论
为什么被折叠?



