SYS_TIME 功能现在在 kubernetes 中工作
Posted
技术标签:
【中文标题】SYS_TIME 功能现在在 kubernetes 中工作【英文标题】:SYS_TIME capability now working in kubernetes 【发布时间】:2020-05-05 15:32:22 【问题描述】:当我创建一个具有以下安全上下文的 Pod 并有权更改系统时间时出现错误
apiVersion: v1
kind: Pod
metadata:
name: ubuntu-sleeper
namespace: default
spec:
containers:
- command:
- sleep
- "4800"
image: ubuntu
securityContext:
runAsUser: 1010
capabilities:
add: ["SYS_TIME"]
name: ubuntu
我收到无法设置日期操作不允许的错误。
master $ kubectl create -f ubu.yml
pod/ubuntu-sleeper created
master $ kubectl exec -it ubuntu-sleeper -- date -s '19 APR 2012 11:14:00'
date: cannot set date: Operation not permitted
Thu Apr 19 11:14:00 UTC 2012
command terminated with exit code 1
master $
【问题讨论】:
【参考方案1】:要更改系统时间,您必须以 root 身份运行容器:
apiVersion: v1
kind: Pod
metadata:
name: ubuntu-sleeper
namespace: default
spec:
containers:
- command:
- sleep
- "4800"
image: ubuntu
securityContext:
capabilities:
add: ["SYS_TIME"]
name: ubuntu
【讨论】:
【参考方案2】:如果您将用户移动到 pod 级别应该可以工作
apiVersion: v1
kind: Pod
metadata:
name: ubuntu-sleeper
namespace: default
spec:
securityContext:
runAsUser: 1010
containers:
- command:
- sleep
- "4800"
image: ubuntu
name: ubuntu-sleeper
securityContext:
capabilities:
add: ["SYS_TIME"]
【讨论】:
不,因为容器只是从 pod 级别继承了相同的 1010以上是关于SYS_TIME 功能现在在 kubernetes 中工作的主要内容,如果未能解决你的问题,请参考以下文章