如何阻止“kubectl exec”选项以及与集群上特定容器的任何其他外部连接

din*_*ina 4 kubernetes google-kubernetes-engine

我有一个托管在 GKE 上的集群,我在此集群上有多个部署,
我可以连接kubectl exec到 Pod:

kubectl exec -it mypod-1234566-7890976 -- bash

我想删除连接到kubectl exec某个容器的选项

有没有办法通过阻止容器上的 ssh 来阻止连接到容器的选项DOCKERFILE?或任何其他方式

cew*_*ood 6

要限制 pod 的能力,kubectl exec您需要创建一个自定义 Role 和 RoleBinding,以删除资源create的动词pods/exec。一种简单的方法可能是复制默认 RBAC 策略,然后进行适当的编辑和重命名。

由于 RBAC 的工作原理,您可以应用的最精细粒度是每个命名空间,但不可能将其过滤到特定的 pod/部署/等。

至于 Pod 的其他入站外部连接,默认情况下这是不可能的,除非您创建了 Ingress 和/或 Service 来专门执行此操作。这是因为大多数提供商将使用私有 IP 地址范围作为节点 IP 以及 Pod 网络,因此如果没有一些 NAT'ing 或代理,就无法从外部访问它们。

希望这可以帮助。