siw*_*aki 4 security-context kubernetes podsecuritypolicy
在我的 POD 中,我想使用 securityContext 将所有容器限制为只读文件系统
:readOnlyRootFilesystem: true
示例(注意:为简洁起见,减少了 yaml)
apiVersion: v1
kind: Pod
metadata:
labels:
run: server123
name: server123
spec:
securityContext:
readOnlyRootFilesystem: true
containers:
- image: server1-image
name: server1
- image: server2-image
name: server2
- image: server3-image
name: server3
Run Code Online (Sandbox Code Playgroud)
这将导致:
错误:验证“server123.yaml”时出错:验证数据时出错:ValidationError(Pod.spec.securityContext):io.k8s.api.core.v1.PodSecurityContext 中的未知字段“readOnlyRootFilesystem”;如果您选择忽略这些错误,请使用 --validate=false 关闭验证
相反,我必须配置为:
apiVersion: v1
kind: Pod
metadata:
labels:
run: server123
name: server123
spec:
containers:
- image: server1-image
name: server1
securityContext:
readOnlyRootFilesystem: true
- image: server2-image
name: server2
securityContext:
readOnlyRootFilesystem: true
- image: server3-image
name: server3
securityContext:
readOnlyRootFilesystem: true
Run Code Online (Sandbox Code Playgroud)
有没有办法为所有容器设置一次此安全限制?如果不是为什么不呢?
siw*_*aki 11
在 Kubernetes 中,可以在 pod 和/或容器级别配置securityContext,容器将继承 pod 级别的设置,但可以覆盖自己的设置。
然而,Pod 和容器的配置选项不会重叠 - 您只能在每个级别设置特定的选项,
容器级别:https://kubernetes.io/docs/reference/ generated/kubernetes-api/v1.23/# securitycontext-v1-core
Pod 级别:https://kubernetes.io/docs/reference/ generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core
它没有清楚地记录什么可以继承,什么不能继承(以及为什么!)。您必须通读两个列表并进行比较。我假设 POD 的 securityContext 允许将readOnlyRootFilesystem: true和各种功能设置一次,而不必在每个底层容器的 securityContext 中复制,但PodSecurityContext不允许这样做!
在(重新)配置各种工作负载以遵守 PodSecurityPolicies 时特别有用。
我想知道为什么 Pod 的securityContext配置被标记为这样,而不是它实际代表的podSecurityContext 。
归档时间: |
|
查看次数: |
4712 次 |
最近记录: |