如何限制Kubernetes容器在主机(K8s minion)操作系统上查看阻止设备列表



在自定义K8s flexvolume开发过程中,我观察到容器能够查看K8s minion(主机(上运行的完整块设备列表。基本上,如果在容器上执行"lsblk",主机操作系统上的"lsblk"命令输出也是可见的。同样,如果容器c1具有分配的柔性体积v1,并且c2具有v2;并且c1和c2都在同一个K8s主机上运行,那么c1操作系统可以在"lsblk"输出中看到v1和v2。在c1只能访问v1而不能访问v2的情况下,这是预期的,但出于某些安全方面,我们不希望c1 os查看c2或K8s主机访问的任何块设备。K8s正在使用docker作为集装箱化服务。

请任何人在这里指导以实现预期的配置。K8s命名空间还有路要走吗?如果是,你能举个例子吗?提前谢谢。

  • 持久卷和主机卷/路径没有名称空间
  • 但是,持久卷声明PVC属于单个命名空间
  • 您可以通过PVC使用存储,这样每个命名空间都可以访问自己的PVC
  • 按名称空间分隔容器/pod
  • 在生产中不使用主机卷
  • 使用podSecurityPolicy允许特定的卷类型并拒绝其他卷类型,如HostPaths

此外,已经绑定到一个PVC的PV不能绑定到另一个,与命名空间无关。这意味着即使用户试图制造一种PVC,该PVC声称来自不同的命名空间,它将失败。使用三叉戟时,PV和PVC默认情况下同时销毁。可以更改此行为,以便PV被保留,但PV与PVC结合了一次,然后未绑定的再也无法绑定。

https://netapp.io/2018/06/15/highly-secure-kubernetes-persistent-volumes/

使用pod安全策略限制pod不能访问主机路径,只能访问某些特定的卷类型和pvs

https://kubernetes.io/docs/concepts/policy/pod-security-policy/#volumes-和文件系统

AllowedHostPaths - See Volumes and file systems.
Volumes and file systems
Volumes - Provides a whitelist of allowed volume types. The allowable values correspond to the volume sources that are defined when creating a volume. For the complete list of volume types, see Types of Volumes. Additionally, * may be used to allow all volume types.
The recommended minimum set of allowed volumes for new PSPs are:
configMap
downwardAPI
emptyDir
persistentVolumeClaim
secret
projected

相关内容

  • 没有找到相关文章

最新更新