如何通过Terraform正确配置GKE周末维护窗口?
GKE维护窗口Terraform配置问题解答
当前代码的问题
你写的代码不正确,核心问题是start_time的日期与recurrence指定的星期几不匹配:
- 你设置的
start_time是2019-01-01T00:00:00Z,这天是周二,但recurrence里指定的是SA,SU(周六、周日)。 - GKE要求
start_time的日期必须属于recurrence中BYDAY指定的星期几,否则无法正确解析重复规则,导致实际生效的维护窗口和预期不符。
符合控制台配置的正确代码
假设你在控制台设置的是周末两天全天的维护窗口,正确的Terraform代码如下:
maintenance_policy { recurring_window { # 基准日期选一个周六(比如2024-06-15是周六),确保和BYDAY匹配 start_time = "2024-06-15T00:00:00Z" end_time = "2024-06-15T23:59:00Z" # 每周六、周日重复这个全天窗口 recurrence = "FREQ=WEEKLY;BYDAY=SA,SU" } }
如果控制台的维护窗口是周末的特定时间段(比如非全天),只需调整start_time和end_time为对应的UTC时间即可,注意基准日期仍需匹配BYDAY指定的星期几。
比如你想设置北京时间(UTC+8)周六08:00到周日20:00的维护窗口,对应的UTC时间是周六00:00到周日12:00,代码如下:
maintenance_policy { recurring_window { start_time = "2024-06-15T00:00:00Z" end_time = "2024-06-16T12:00:00Z" recurrence = "FREQ=WEEKLY;BYDAY=SA,SU" } }
内容的提问来源于stack exchange,提问作者jwpol
相关产品推荐
相关产品推荐

