我们使用机器学习技术将英文博客翻译为简体中文。您可以点击导航栏中的“中文(简体)”切换到英文版本。
使用 亚马逊云科技 Config 监控亚马逊弹性 Kubernetes 服务的版本合规性
Kubernetes 集群具有控制平面和数据平面。在不同平面上运行的 Kubernetes 软件需要更新才能保持最新状态。控制层面更新由 亚马逊云科技 管理,因此您只需要启动新的次要版本的流程即可。在数据层面,Amazon EKS 通过提供 Amazon E
使用 亚马逊云科技 Config 监控亚马逊 EKS
在这篇文章中,我们将使用
亚马逊云科技 Config 在
以下是我们将部署的 亚马逊云科技 Config 规则的架构图:
该解决方案中的不同组件是:
- 用于检查 EKS 控制平面版本的 亚马逊云科技 Config 托管规则。
- 一条 亚马逊云科技 Config 自定义 Lambda 规则,用于监控我们托管节点组的新 AMI 版本。
- 亚马逊云科技 Config 生成的所有事件都将发送到亚马逊 EventBridge。通过事件模式,您可以触发通知给利益相关者(电子邮件、http 等)或将其转发给其他目标。
先决条件:
要完成 亚马逊云科技 托管规则部分的步骤,您将需要以下内容:
-
在您的账户中启用了 亚马逊云科技 Config,如果需要,您可以 直接从控制台使用
一键设置 。
对于 亚马逊云科技 Config 自定义 Lambda 规则部分,您将需要:
-
安装
亚马逊云科技 命令行接口 (亚马逊云科技 CLI) 。 -
安装
亚马逊云科技 无服务器应用程序模型命令行 (亚马逊云科技 SAM CLI)。 -
安装
Git 。 -
安装
Node.js 和 npm 。
通过 亚马逊云科技 Config 托管规则监控 EKS 控制平面版本
对于 Amazon EKS,我们可以使用 亚马逊云科技 Config
要从 亚马逊云科技 Config 启用 eks-cluster 支持的版本,请执行以下操作:
- 打开 亚马逊云科技 Config 控制台。
- 在导航窗格中,选择 “ 规则”。
- 选择 “ 添加规则”。
- 在 亚马逊云科技 托管规则 下 ,搜索 E KS。
- 选择 eks-cluster 支持的版本,选择 “下一步 ”。
- 在 “ 参数 ” 下的 “ 值 ” 列中,输入您要视为合规的 EKS 的最新版本。在撰写本文时,我使用的是 1.26。
- 选择 “ 下一步 ” ,查看您的规则,然后单击 “ 添加规则”。
- 从列表中选择新规则,然后在 “ 操作 ” 下选择 “ 重新评估 ”。
此屏幕截图显示了您的账户中包含三个集群的规则详细信息。
利用 亚马逊云科技 Lambda 扩展 亚马逊云科技 Config 以监控 EKS 托管节点组 (MNG)
以下步骤创建了一个 亚马逊云科技 Config 自定义 Lambda 规则,并使用
安装程序:
让我们首先使用 sam-cli 工具创建所需的 Lambda:
# You can download the zip from github instead of git clone
git clone https://github.com/aws-samples/aws-config-eks-mng-checkupdate.git
cd aws-config-eks-mng-checkupdate
sam build
sam deploy --guided
我们建议将
config-custom-rule-eks-mng
作为堆栈名称的值。
对其他选项使用默认值。
以下是此命令的输出示例:
Deploying with following values
===============================
Stack name : config-custom-rule-eks-mng
Region : ca-central-1
Confirm changeset : True
Disable rollback : False
Deployment s3 bucket : aws-sam-cli-managed-default-samclisourcebucket-xxxxx
Capabilities : ["CAPABILITY_IAM"]
Parameter overrides : {}
Signing Profiles : {}
…
Successfully created/updated stack - config-eks-ami in ca-central-1
这将在 亚马逊云科技 Config 中创建 Lambda 以及自定义规则
eks-Mng-CheckUpdate
,其中包含调用该 Lambda 的资源策略。为 Lambda 创建的 IAM 角色拥有 EKS 的只读权限,并拥有
GetPar
ameter 权限。
周期性触发器类型
亚马逊云科技 Config 规则可以在定期计划或配置更改时触发。亚马逊云科技 Config 目前不为托管节点组 (MNG) 提供支持。为了评估 MNG 资源,我们定义了定期运行的 亚马逊云科技 Config 自定义 Lambda 规则。有多种定期选择,从每小时到每 24 小时一次。考虑到这与 AMI 更新频率有关,我们通过模板选择了 24 小时时段。请注意,随着规则评估的增加,您的 亚马逊云科技 Config 成本将增加。要了解更多信息,请参阅 亚马逊云科技 Config
以下是来自 亚马逊云科技 Config 控制台的自定义规则提供的结果视图:
用于筛选亚马逊 EventBridge 中事件的事件模式
如果您想对我们在EventBridge中的新规则发生的任何合规性变化做出反应。以下是涵盖当今使用规则的事件模式示例:
{
"source": ["aws.config"],
"detail-type": ["Config Rules Compliance Change"],
"detail": {
"configRuleName": ["EKS-MNG-CheckUpdate", "eks-cluster-supported-version"]
}
}
对于目标,可以从各种 亚马逊云科技 服务甚至外部 API 中进行选择,
清理
为了防止您的账户产生额外费用,以下步骤将删除已创建的资源:
1 — 通过 亚马逊云科技 Config 控制台。
选择规则
eks-cluster-supported-version
, 然后从操作菜单中使用删除规则选项。
2 — 通过以下命令删除自定义规则和关联资源:
sam 删除--stack-name config-custom-rule-eks-mng
3 — 在 EventBridge 控制台中,删除已添加的规则(如果有)。
结论
在这篇博客文章中,我们演示了如何在控制层面和数据层面跟踪您的 EKS 版本。通过利用 亚马逊云科技 Config 规则(托管和自定义),您可以自动完成跟踪有效版本所需的工作。
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。