仅当kube2iam启动并运行时,才将pod调度到节点上



在我们基于AWS的Kubernetes集群上,我们使用kube2iam来提供pod级别的IAM角色。

我们正在处理的一个边缘案例是,pods在kube2iam准备好之前加载,它们获得了默认的实例角色,因此无法操作。

我可以想出几个我不喜欢的解决方案:

  • 要求应用程序代码检查其自身角色
  • 添加一个init容器以检查是否正在为预期角色提供服务
  • 向每个pod添加podAfinity,以确保它与正在运行的kube2iam实例位于同一位置

我不希望每个应用程序开发人员都需要记住包含一些特定的机制来确保他们获得角色。

有办法在全球范围内做到这一点吗?我猜这会涉及到一些事情,比如在默认情况下将节点标记为不可调度,并在kube2iam启动时更改该状态。不知道如何做到这一点。

在你的Pod模板中使用liveness探针来对抗kube2iam的DaemonSet创建的Pod怎么样?它应该一直重新启动新创建的pod,直到kube2iam准备好为止。(例如针对8181端口的HTTP探测-kube2iam的默认侦听端口(

相关内容

  • 没有找到相关文章

最新更新