我想使用 AWS Systems Manager Automation 为 Amazon Elastic Kubernetes Service (Amazon EKS) Worker 节点的亚马逊机器映像 (AMI) 应用安全补丁。
解决方法
使用 AWS Systems Manager Automation 运行手册为您的 Amazon EKS Worker 节点应用安全补丁。使用运行手册来应用新版本,以便自动为托管节点组或自行管理的节点安装安全补丁和版本升级。
为托管节点组使用 AWS Systems Manager Automation
要运行 AWS-UpdateEKSManagedNodeGroup 运行手册,请完成以下步骤:
- 打开 AWS 管理控制台。
- 选择您的 Amazon EKS 集群所在的 AWS 区域。
- 打开 AWS Systems Manager 控制台。
- 在导航窗格中,选择 Automation(自动化)。
- 选择 Execute runbook(执行运行手册)。
- 在 Automation runbook(Automation 运行手册)搜索字段中,输入 AWS-UpdateEKSManagedNodeGroup,然后选择 AWS-UpdateEKSManagedNodeGroup 运行手册。
**注意:**运行手册详细信息选项卡将在新的浏览器窗口中打开。
- 选择 Execute automation(执行自动化)。
**注意:**执行自动化运行手册选项卡将在新的浏览器窗口中打开。
- 在 Input parameters(输入参数)下,输入以下参数:
对于 ClusterName,输入包含节点组的 Amazon EKS 集群的名称。
对于 NodeGroupName,输入要更新的节点组的名称。
对于 UpdateType,选择 Update Node Group Version(更新节点组版本)。
对于 ForceUpdate,如果由于容器组 (pod) 中断预算问题而无法耗尽现有节点组的容器组 (pod),请选择 True。否则,请选择 False。
(可选)对于 AutomationAssumeRole,输入 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称 (ARN),以便 Systems Manager Automation 代表您执行操作。如果未指定角色,则 Systems Manager Automation 将使用启动运行手册的用户的权限。
- 如果您并非从启动模板创建的节点组,请指定以下参数:
(可选)对于 KubernetesVersion,输入要将节点组更新到的 Kubernetes 版本。例如,输入 1.30。
(可选)对于 AMIReleaseVersion,输入要使用的 Amazon EKS 优化型 AMI 的版本。例如,输入 1.30.2-20240828。系统默认使用最新版本。
- 如果您是从启动模板创建的节点组,则可以指定以下参数:
(可选)对于 LaunchTemplateId,输入启动模板的 ID。
(可选)对于 LaunchTemplateName,输入启动模板的名称。
- 选择 Execute(执行)。
为自行管理的节点组使用 AWS Systems Manager Automation
**重要事项:**如果您的集群使用自动扩缩,则必须在使用运行手册之前将 cluster-autoscaler 部署缩减到两个副本。要缩减 cluster-autoscaler 部署,请运行以下命令:
kubectl scale deployments/cluster-autoscaler --replicas=2 -n kube-system
要运行 AWS-UpdateEKSSelfManagedLinuxNodeGroups 运行手册,请完成以下步骤:
- 打开 AWS 管理控制台。
- 选择您的 Amazon EKS 集群所在的 AWS 区域。
- 打开 AWS Systems Manager 控制台。
- 在导航窗格中,选择 Automation(自动化)。
- 选择 Execute runbook(执行运行手册)。
- 在 Automation runbook(Automation 运行手册)搜索字段中,输入 AWS-UpdateEKSSelfManagedLinuxNodeGroups,然后选择 AWS-UpdateEKSSelfManagedLinuxNodeGroups 运行手册。
**注意:**运行手册详细信息选项卡将在新的浏览器窗口中打开。
- 选择 Execute automation(执行自动化)。
**注意:**执行自动化运行手册选项卡将在新的浏览器窗口中打开。
- 在 Input parameters(输入参数)下,输入以下参数:
(可选)对于 AutomationAssumeRole,输入 IAM 角色的 ARN,以便 Systems Manager Automation 代表您执行操作。如果未指定角色,则 Systems Manager Automation 将使用启动运行手册的用户的权限。
对于 StackName,输入自行管理的节点的 AWS CloudFormation 堆栈名称。
对于 NodeAutoScalingGroupDesiredCapacity,输入节点组维护的节点数。
对于 NodeAutoScalingGroupMaxSize,输入您的节点自动扩缩组的最大节点数。
对于 NodeInstanceType,输入节点组要使用的实例类型。
对于 NodeImageIdSSMParam,输入您的节点组 AMI 的 Parameter Store 路径。
(可选)对于 NodeImageId,输入节点组的 AMI ID 以覆盖为 NodeImageIdSSMParam 指定的任何值。
对于 DisableIMDSv1,选择是否关闭 IMDSv1。
对于 WaitForStackUpdateProgress,输入自动化等待的持续时间(以秒为单位),以便在评测堆栈状态之前为启动模板堆栈更新和滚动更新留出时间。
- 选择 Execute(执行)。
- 更新完成后,要将 cluster-autoscaler 部署扩展回所需的副本数,请运行以下命令:
kubectl scale deployments/cluster-autoscaler --replicas=number -n kube-system
**注意:**请将 number 替换为您要使用的副本数。
相关信息
更新集群的托管节点组
更新集群的自行管理的节点
创建您自己的运行手册