我们将 GKE 与 Kubernetes 集群结合使用。我们正在运行的应用程序之一是 Jenkins for CI。不幸的是,Jenkins Slave 需要使用 Docker 来挂载其主机的docker.sock
。这可能是一种升级漏洞。
解决方案是在 API 服务器中设置您的准入控制器以使用DenyEscalatingExec
。但我一生都无法弄清楚如何通过 GKE 达到该设置。它甚至可以默认设置,但我不知道如何获取隐藏在 GKE 后面的默认设置。
有没有办法通过 GKE 设置此控制器(以及其他控制器),或者检查默认值以查看是否已设置?
遗憾的是,您无法更改 GKE 上启用的准入控制器。 Alpha 集群支持外部准入 webhook https://kubernetes.io/docs/admin/extensible-admission-controllers但这将涉及大量的定制工作。
另一种选择是使用 PodSecurityPolicy 只允许特权 Pod 在一些紧密控制器命名空间中运行。例如,您可以创建一个 jenkins 命名空间,并只允许在 jenkins 和 kube-system 命名空间中创建特权 Pod,然后阻止除集群管理员之外的所有用户在这些命名空间中执行 Pod。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)