我有一个托管在 GKE 上的集群,我在此集群上有多个部署,
我可以使用
kubectl exec
连接到 pod:
kubectl exec -it mypod-1234566-7890976 -- bash
我想删除与
kubectl exec
连接到某个容器的选项
有没有办法通过阻止容器
DOCKERFILE
上的 ssh 来阻止连接到容器的选项?或者任何其他方式
要限制 pod 的
kubectl exec
能力,您需要创建一个自定义 Role & RoleBinding,删除 create
资源的 pods/exec
动词。一个简单的方法可能是复制默认的 RBAC 策略,然后进行适当的编辑和重命名。
由于 RBAC 的工作原理,您可以应用的最精细粒度是每个命名空间,但不可能将其过滤到特定的 pod/部署/等。
对于 pod 的其他入站外部连接,默认情况下这是不可能的,除非您创建了一个 Ingress 和/或 Service 来专门执行此操作。这是因为大多数提供商将使用私有 IP 地址范围作为节点 IP 和 Pod 网络,因此如果没有一些 NAT'ing 或代理,就无法从外部访问它们。
希望这有帮助。