TKE挂载COS桶容器目录权限如何设置
1.问题背景
用户在tke的集群中创建工作负载并把某一个对应的/data目录挂载到cos桶的根目录,在镜像构建的时候有把/data目录设置权限为755,但是运行容器后成功挂载/data/目录到cos桶的根目录,但是发现用非root账号确无法访问/data下面的文件,这边镜像的启动用户是非root用户,查看容器内/data目录权限变成了700,为什么这边设置的目录权限是755,挂载到COS后就变成了700权限呢?
2.排查思路
这边首先进行了简单的自测,启动2个nginx工作负载,一个负载将目录/etc/nginx/conf.d挂载到cos桶上,一个正常运行不挂载,然后发现确实挂载cos后,默认会把目录权限变成700。
这边咨询的cos的同事,他们说有一个参数是用来控制目录权限的,如果挂载时候不加这个参数就默认变成700,加了这个参数才不会。现在问题已经大致明确了,就是这个参数没有设置的原因,那么这个参数该怎么使用呢?
-oallow_other
如果要允许其他用户访问挂载文件夹,可以在运行 COSFS 的时候指定该参数。
3.配置-oallow_other参数
其实在使用cos桶进行挂载的时候在pv创建界面是可以进行参数设置的,但是由于我们习惯在控制直接创建pvc关联pv,然后pv会自动创建导致很多人没有去关注这个cos的参数项配置。
如果你想配置-oallow_other这个参数,可以通过2种方式进行配置,一种是编写yaml文件来创建pv,pvc,这种方式可以参考这个指导 https://github.com/TencentCloud/kubernetes-csi-tencentcloud/blob/master/docs/README_COSFS.md
另外一种方式就是通过控制台来配置参数,具体操作如下
- 控制台创建pv,配置参数
在挂载选项填入-oallow_other这个参数,想填写多个参数空格分隔,cos提供的参数配置选项可以参考https://cloud.tencent.com/document/product/436/6883#.E5.B8.B8.E7.94.A8.E6.8C.82.E8.BD.BD.E9.80.89.E9.A1.B9
- 创建pvc关联创建的pv
新建pvc关联创建好的pv
- 在工作负载中挂载创建好的pvc
创建nginx的工作负载挂载创建好的pvc
- 验证对应的目录权限是否正确
进入容器中查看/etc/nginx/conf.d的目录不再是700,创建一个test文件,也挂载到了cos桶中
- 上传一个文件到cos桶看容器中是否可以访问
上传一个1.txt文件到cos桶,从容器中看文件权限是777,可以进行正常访问
- 报警系统QuickAlarm之报警规则的设定与加载
- 报警系统QuickAlarm之报警执行器的设计与实现
- 如何在Kerberos与非Kerberos的CDH集群BDR不可用时复制数据
- 一个可扩展的报警系统Quick-Alarm
- 如何借助GitHub搭建属于自己的maven仓库
- Java可以如何实现文件变动的监听
- 如何在CDH中安装Kudu&Spark2&Kafka
- 秒懂 javascript 拖拽上传文件
- 一款轻量级树形控件EasyTreeview
- 大白话谈 Git
- 打造一个属于自己的 server
- 一款不可多得的火柴时钟
- 常见端口转发工具的使用方式(二)
- 如何在CDH启用Kerberos的情况下安装及使用Sentry(一)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 通过 Apache Ant 来运行 Tomcat
- 你要的干货!信息收集之绕过CDN获取真实网站IP方法总结
- ES聚合操作
- leetcode-easy-array-删除排序数组中的重复项
- SQL注入靶场之SQLiLabs搭建指南
- [OHIF-Viewers]医疗数字阅片-医学影像-redux-token实操(1)
- [OHIF-Viewers]医疗数字阅片-医学影像-屏蔽StudyList病例列表
- Ant Design for Vue的Table组件一列显示多个参数
- 【React】React-router的使用记录
- Blazor带我重玩前端(四)
- Android绘制系统简介
- E: Sub-process /usr/bin/dpkg returned an error code (1) 解决方案
- Linux 如何使用包管理器安装 Node.js
- CSS画图
- R语言聚类算法的应用实例