当前位置: 首页 > 知识库问答 >
问题:

如何在一组自动伸缩吊舱上创建Kubernetes RBAC策略(或者有可能吗)?

左丘嘉言
2023-03-14

我的目标是创建一个Kubernetes角色,以限制特定部署下pods上的kubectl exec访问。我下面构建了一个策略,当我的吊舱的数量和名称都是静态的时,它成功地创建了角色。问题是,我的部署是水平自动伸缩的,所以如果创建了一个新的pod,那么角色将不会应用于该新pod(因为每个pod名称都是在角色中显式定义的)&新pod将在其名称后面附加一个随机散列。

下面的格式是Terraform中的,但它的高级结构与yaml中定义的角色相同

resource kubernetes_cluster_role alb_exec_role {
  metadata {
    name = "alb-exec-role"
  }

  rule {
    api_groups     = [""]
    resources      = ["pods", "pods/log"]
    resource_names = [<pod names>]
    verbs          = ["get", "list"]
  }

  rule {
    api_groups     = [""]
    resources      = ["pods/exec"]
    resource_names = [<pod names>]
    verbs          = ["create"]
  }
}

共有1个答案

姜泰宁
2023-03-14

最重要的是,为什么不从角色中的所有Pods中删除pod/exec,然后将允许执行的

也就是说,您需要的可能是一个自定义控制器,它监听命名空间中的Pod事件,并在创建或调度新Pod时更新RBAC角色

 类似资料:
  • 但不知何故,豆荚卡在“容器创建”的状态,当我运行docker图像时,我看不到nginx图像被拉出。通常nginx图像没有那么大,所以现在必须已经拉了(15分钟)。kubectl description pods给出了pod沙箱创建失败的错误,kubernetes将重新创建它。 我搜索了关于这个问题的所有内容,并尝试了stackoverflow上的解决方案(重新启动以重新启动集群,搜索描述豆荚,新的

  • 我的要求是在自定义指标上扩展POD,如队列中的挂起消息,PODS必须增加以处理作业。在kubernetes,Scale up在普罗米修斯适配器和普罗米修斯操作员中工作得很好。 我在pods中有长时间运行的进程,但HPA检查自定义度量并试图缩小规模,因为这个进程杀死了操作的中间并丢失了消息。我如何控制HPA只杀死没有进程运行的自由豆荚。 序列查询:‘{namespace=“default”,serv

  • 以前我的MySQL pod停留在终止状态,然后我尝试使用如下命令强制删除 后来我再次尝试helm升级,我的吊舱被卡在containercreating状态,这个事件来自吊舱 任何人请帮助我解决这个问题,非常感谢。

  • 如果我对有一个更灵活的背书政策感兴趣,我们可以不断增加新的同行,并希望背书政策基于与特定交易相关的独特的同行集,这可能吗? 即。在某些情况下,交易是在两个特定的对等方之间进行的,所以他们都应该是有效的背书人。另外五个同行存在,假设他们是竞争对手,在这种情况下,他们不应该被允许背书。 在1.1中,它看起来并不像https://jira.hyperledger.org/browse/fab-8729中

  • 假设某个负载均衡器(希望将来不会出现一个故障点,但我不知道如何实现这一点,或者可能只是转移到AWS)正在将SocketIO连接从终端客户机分配到聊天服务器。不同的用户连接到不同的服务器可能在同一个房间,因此需要将消息发送到其他服务器。 我如何可行地实现这样的东西?希望不要太复杂。 问题:(1)如果所有服务器都需要处理所有的消息,因为用户可以通过任何服务器登录,这是否可以扩展?(2)服务器之间是否需

  • 我正在尝试HPA:https://kubernetes.io/docs/tasks/run-application/hosteral-pod-autoscale/ HPA: 并创建了新的吊舱: 正如您所看到的,我使用的是,它不支持访问模式。 我发现了一些东西:没有什么可以确保新扩展的pod将与第一个pod运行在同一个节点上。因此,如果卷插件不支持,并且缩放的pod在另一个节点上运行,则它将无法挂载