在Kubernetes中配置Container Capabilities


目前有个需求,需要修改k8s里的应用的系统时间来进行一些业务场景的测试。

但直接在pod里执行date -s 日期时,告知没有这个权限,不允许权限操作。如果需要实现在kubernetes修改容器时间,则需要设置增加sys_time的capabilities

 

这里涉及容器里的Container Capabilities

Linux Capabilities

说着Capabilities 则要说一下Linux Capabilities

 

 

 

 

 kernel 2.2 之后Linux  以capabilities区分不同单元的关联root特权。非root进程都去检查对应的capabilities。

当前设置系统时间,那么就需要CAP_SYS_TIME capabilities

 

 

而Docker与宿主机之间的安全关系,Docker默认的root权限会比宿主机的root用户少很多,来进行必要的安全隔离管理。

如果希望获取一些特殊的权限,可通过--cap-add 和 --cap-drop 参数来调整。

下面的Capabilities可参考给容器添加对应的权限

Kubernetes  Capabilities 配置

添加到pod的定义 spec.containers.sercurityContext.capabilities

 

apiVersion: v1
kind: Pod
metadata:
  name: app-systime-demo
spec:
  containers:
  - name: app-systime-demo
    image: busybox
    securityContext:
      capabilities:
        add: 
        - SYS_TIME
kubectl apply -f app-systime-demo.yaml

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM