我们正在尝试找出一种方法来定期为我们的 K8s 集群安装系统安全补丁,以确保我们的系统安全并满足安全要求。
我们的 K8s 集群在不同的云、AWS、Azure、裸机等中运行。
对于云,我们可以更改我们的 IAM 镜像以更新到最新版本、替换旧镜像、启动新节点并耗尽旧节点。对于裸机,我们需要排空旧节点,然后修补,然后将它们添加回来。
不确定是否有任何其他方法可以自动执行此操作。我们不想在每个云中每个月都做这项工作。也许有更好的解决方案?
我们正在尝试找出一种方法来定期为我们的 K8s 集群安装系统安全补丁,以确保我们的系统安全并满足安全要求。
我们的 K8s 集群在不同的云、AWS、Azure、裸机等中运行。
对于云,我们可以更改我们的 IAM 镜像以更新到最新版本、替换旧镜像、启动新节点并耗尽旧节点。对于裸机,我们需要排空旧节点,然后修补,然后将它们添加回来。
不确定是否有任何其他方法可以自动执行此操作。我们不想在每个云中每个月都做这项工作。也许有更好的解决方案?
HashiCorp 的 Packer 是用于自动创建机器映像的免费工具。
Packer 可以为不同的云构建机器映像,包括 AWS、Azure 和 VMware 等自托管虚拟化平台。
使用 Packer,您可以使用已发布的参考机器(例如 Amazon 发布的 AMI),自动安装补丁、更新和任何自定义配置,然后再将已修补的映像发布回您的云平台,以供使用。
Packer 还可用于将标准配置管理工具植入云映像。例如执行 ansible 或 puppet 运行,和/或烘焙必要的配置以在实例启动时运行这些配置。
Terraform(免费提供),同样由 HashiCorp 提供,可让您自动配置计算平台,例如 AWS/Azure/VMware,允许您自动更新配置。
如果您希望部署或更新正在运行的 Kubernetes 集群中的节点使用的 AMI,您可以通过使用 Terraform 创建指向新的 Packer 构建映像的新启动配置来实现此目的。
您可能会减少工作量的一种方法是修改实例组的启动脚本(云初始化/用户数据),以在启动时运行类似“yum update”的东西。这样您就可以使用预先制作的图像,并且只需在每次发布这些图像时将 AMI ID 更新到最新版本。这很可能使用 Terraform 来完成。