Мы пытаемся найти способ периодически устанавливать исправления безопасности для нашего кластера K8s, чтобы поддерживать безопасность нашей системы и соответствовать требованиям безопасности.
наши кластеры K8s работают в разных облаках: AWS, Azure, Bare Metal и т. д.
для облаков мы можем изменить наш образ IAM, чтобы обновить его до последнего, заменить старый образ, запустить новые узлы и слить старые узлы. Для bare metal нам нужно слить старые узлы, а затем пропатчить и добавить их обратно.
Не уверен, есть ли другой способ сделать это автоматически. Мы не хотим выполнять эту работу каждый месяц в каждом облаке. Может быть, есть лучшее решение?
решение1
Packer от HashiCorp — бесплатный инструмент для автоматизации создания образов машин.
Packer может создавать образы машин для различных облаков, включая AWS, Azure и самостоятельные платформы виртуализации, такие как VMware.
Используя Packer, вы можете использовать опубликованные эталонные машины (например, опубликованные Amazon AMI), автоматизировать установку исправлений, обновлений и любой пользовательской конфигурации, прежде чем опубликовать исправленный образ обратно на вашей облачной платформе, готовый к использованию.
Packer также можно использовать для загрузки стандартных инструментов управления конфигурацией в облачные образы. Например, выполнить запуски ansible или puppet и/или запечь необходимую конфигурацию для их запуска при запуске экземпляра.
Terraform (доступен бесплатно), также разработанный HashiCorp, позволяет автоматизировать настройку вычислительных платформ, таких как AWS/Azure/VMware, позволяя автоматически обновлять конфигурацию.
Если вы хотите развернуть или обновить AMI, используемый узлами в работающем кластере Kubernetes, вы, скорее всего, можете сделать это, создав новую конфигурацию запуска, указывающую на новый образ, созданный Packer, с помощью Terraform.
Один из способов потенциального сокращения объема работы — это изменение загрузочного скрипта (cloud init/user data) группы экземпляров для запуска чего-то вроде 'yum update' при загрузке. Таким образом, вы можете использовать готовые образы и просто обновлять AMI ID до последней версии каждый раз, когда они выпускаются. Вероятно, это можно сделать с помощью Terraform.