如何使用 Ansible 在 kubernetes 集群的不同层上进行证书轮换?
在我们使用 fleet 之前,现在迁移到 kubernetes。
如果我没听错你的情况,那么我认为你会最高兴在节点上安装(和可选的监视器)ansible-pull.service
和ansible-pull.timer
DaemonSet
。
该DaemonSet
确保容器在每个节点上调度(与 CronJob 等不同),并且/etc/systemd/system
卷挂载到容器中,加上 go-systemd 的守护程序重新加载能力(当然还有 dbus 套接字),容器可以写出适当描述性的.service
并为该节点.timer
文件。
然后ansible-pull
将像以前一样运行,采取您现有的 ansible 剧本所做的任何步骤。
有许多方法可以在非 Node 机器上实现类似的操作,因此我将把它作为练习留给读者。
我不知道你对"基础设施"层的定义是什么,但从 ansible-pull 的角度来看,轮换 Kubernetes 证书相对简单:写出新的worker.pem
,并在/etc/kubernetes/ssl
中写出worker.key
,反弹kubelet.service
(或其hyperkube
等效物),瞧。我希望上层平台服务由 (ReplicaSet|部署|ReplicationController|etc)拥有它们,这意味着可以对集群内资源更具声明性,可以访问ConfigMap
,Secret
,Service
等的全部功能。