腾讯云TKE-PV使用COS存储案例:容器目录权限问题
背景
在TKE的集群中创建工作负载并把某一个对应的cos桶的根目录挂载到/data目录,在镜像构建的时候有把/data目录设置权限为755,但是运行容器后成功挂载cos桶的根目录到/data/目录,发现用非root账号却无法访问/data下面的文件,镜像的启动用户是非root用户,查看容器内/data目录权限变成了700。
为什么设置的目录权限是755,挂载到COS后就变成了700权限呢?
原因分析
测试启动2个nginx工作负载,一个负载将目录/etc/nginx/conf.d挂载到cos桶上,另一个工作负载正常运行不挂载,然后发现确实挂载cos后,默认会把目录权限变成700。
TKE中使用cos本质上是使用的Cosfs,腾讯云官方文档 COSFS 工具使用里面可以查到这样一个参数-oallow_other
。如果要允许其他用户访问挂在文件夹, 可以在允许COSFS的时候指定该参数。
COSFS 工具:https://cloud.tencent.com/document/product/436/6883?from=10680
解决方案
TKE中如何配置-oallow_other
参数?
在使用cos桶进行挂载的时候在pv创建界面是可以进行参数设置的,但是由于我们习惯在控制台直接创建pvc关联pv,然后pv会自动创建导致很多人没有去关注这个cos的参数。
方式一:手动创建
通过编写yaml文件来创建pv,pvc
以下内容来源:https://github.com/TencentCloud/kubernetes-csi-tencentcloud/blob/master/docs/README_COSFS.md
pv-cos.yaml(需要关注volumeAttributes 下的additional_args 属性添加了-oallow_other)
apiVersion: v1
kind: PersistentVolume
metadata:
name: "pv-cos"
spec:
accessModes:
- ReadWriteMany
capacity:
storage: 1Gi
csi:
driver: com.tencent.cloud.csi.cosfs
# Specify a unique volumeHandle like bucket name.(this value must different from other pv's volumeHandle)
volumeHandle: xxx
volumeAttributes:
# Replaced by the url of your region.
url: "http://cos.ap-guangzhou.myqcloud.com"
# Replaced by the bucket name you want to use.
bucket: "testbucket-1010101010"
# You can specify sub-directory of bucket in cosfs command in here.
# path: "/my-dir"
# You can specify any other options used by the cosfs command in here.
additional_args: "-oallow_other"
nodePublishSecretRef:
# Replaced by the name and namespace of your secret.
name: cos-secret
namespace: kube-system
pvc-cos.yaml(存储大小自行修改)
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-cos
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
# You can specify the pv name manually or just let kubernetes to bind the pv and pvc.
# volumeName: pv-cos
# Currently cos only supports static provisioning, the StorageClass name should be empty.
storageClassName: ""
kubectl apply -f pv-cos.yaml pvc-cos.yaml
$ kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pv-cos 1Gi RWX Retain Available 5s
$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
pvc-cos Bound pv-cos 1Gi RWX
方式二:控制台创建
1、创建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
2、创建pvc并关联pv
3、在工作负载中使用pvc
4、验证对应的目录权限是否正确
进入容器中查看/etc/nginx/conf.d的目录不再是700,创建一个test文件,也挂载到了cos桶
5、上传一个文件到cos桶看容器中是否可以访问
腾讯云TKE-PV使用COS存储案例:容器目录权限问题的更多相关文章
- 腾讯云 TKE Everywhere 特性发布,用户可在自有基础设施中托管 K8s 服务
作者 孔令飞,腾讯云资深工程师,拥有大规模 Kubernetes 集群.微服务的研发和架构经验,目前专注于云原生混合云领域的基础架构开发. 朱翔,腾讯云容器服务高级产品经理,目前负责云原生混合云产品方 ...
- Kubernetes最佳实践之腾讯云TKE 集群组建
作者陈鹏,腾讯工程师,负责腾讯云 TKE 的售中.售后的技术支持,根据客户需求输出合理技术方案与最佳实践,为客户业务保驾护航.使用 TKE 来组建 Kubernetes 集群时,会面对各种配置选项,本 ...
- 腾讯云静态资源放到cos存储桶里,并开启CDN自定义域名加速
首先根据腾讯云cos对应文档创建cos存储桶(权限为共有读私有写),上传build之后的静态文件到存储桶根目录,然后配置静态网站,然后访问静态网站的访问节点,如果报错请配置索引文档和错误文档为inde ...
- 腾讯云--对象存储cos绑定自定义域名
1.登录腾讯云控制台,找到对象存储一栏 2.选择一个你想绑定域名的存储桶 3.进入你选择的存储桶,点击域名管理 4.选择自定义源站域名.在域名处填写你要设置的自定义域名,在源站类型处选择静态网站源站, ...
- 国内云存储对比: 阿里云、腾讯云、Ucloud、首都在线
阿里云的数据存储<http://www.aliyun.com/product/rds/> RDS — 关系型数据库服务(Relational Database Service,简称RDS) ...
- 腾讯云容器服务 TKE 拿下新加坡 MTCS 最高级别安全认证
近日,腾讯云容器服务 TKE 荣获新加坡 MTCS 最高级安全认证,标志着腾讯云 TKE 在为用户提供可靠.易部署.灵活扩展等基础服务上,已经全面满足了新加坡监管机构以及多个行业客户对服务安全的要求. ...
- qGPU on TKE - 腾讯云发布下一代 GPU 容器共享技术
背景 qGPU 是腾讯云推出的 GPU 共享技术,支持在多个容器间共享 GPU卡,并提供容器间显存.算力强隔离的能力,从而在更小粒度的使用 GPU 卡的基础上,保证业务安全,达到提高 GPU 使用率. ...
- 如何用腾讯云打造一款微视频APP
版权声明:本文由腾讯云原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/196 来源:腾云阁 https://www.qclo ...
- 使用腾讯云无服务器云函数(SCF)分析天气数据
欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:李想 无服务器云函数(SCF)是腾讯云提供的Serverless执行环境,也是国内首款FaaS(Function as a Service ...
- 腾讯云EMR大数据实时OLAP分析案例解析
OLAP(On-Line Analytical Processing),是数据仓库系统的主要应用形式,帮助分析人员多角度分析数据,挖掘数据价值.本文基于QQ音乐海量大数据实时分析场景,通过QQ音乐与腾 ...
随机推荐
- dfs与贪心算法——洛谷5194
问题描述: 有n个砝码,将砝码从大到小排列,从第三个砝码开始,所有砝码均大于其前两个砝码之和,问怎样的砝码组合才可以组合出不大于c的最大重量,输出该重量 输入: 第一行输入两个个整数N,c,代表有N个 ...
- 视频剪辑过于卡顿,让Pr更流畅的技巧 ( 待测试 )
事件起因: 项目组某后期同事,使用Pr剪辑视频非常卡顿,但是机器配置是完全满足他的办公需求的 解决办法: 1. 降低回放分辨率 如果你的视频预览卡顿,首先应该考虑的,就是当前回放分辨率是否过高.通常在 ...
- Windows 中的硬链接、目录联接(软链接)、符号链接、快捷方式
在Linux文件系统中经常提及硬链接(Hard Link)和符号链接(Symbolic Link),Windows中也可以创建链接,但由于丰富的图形界面操作,很少提及链接.Windows 的 NTFS ...
- Android Qcom USB Driver学习(七)
最近遇到了USB 插拔后,系统重启的问题,抓取串口log发现如下问题,log中查看trace分析就是空指针造成的panic Unable to handle kernel read from unre ...
- 对于ChannelNet的一点理解
主要是为了个人理解,做个笔记 1.Pytorch代码 2.论文出处 3.详细介绍 这篇论文在2018年发出来,而ShuffleNet是从2017年由旷视发出来.起初了解shufflenet的提出,主要 ...
- 对于python中GIL的一些理解与代码实现
近期看了一些关于GIL的一些内容,敲一下代码看看效果. # coding:utf-8 # GIL(Global Interpreter Lock):他只允许任何时刻只有一个线程处于执行状态,即使是在具 ...
- Pytorch 实现 GAN 网络
Pytorch 实现 GAN 网络 原理 GAN的基本原理其实非常简单,假设我们有两个网络,G(Generator)和D(Discriminator).它们的功能分别是: G 是一个生成网络,它接收一 ...
- PostgreSQL 15新版本特性解读(含直播问答、PPT资料汇总)
2022年6月23日,墨天轮技术社区联合PostgreSQL中文社区共同举办[PostgreSQL 15 新特性解读]直播活动. 小编在这里整理了直播间的代表性问题,请老师为大家解答.并在文末附上视频 ...
- 何为ORM框架?和ADO.NET 对比
百度:ORM(Object Relational Mapping)框架采用元数据来描述对象与关系映射的细节,元数据一般采用XML格式,并且存放在专门的对象一映射文件中.简单理解为一种框架的格式 . 只 ...
- vuex 基本代码规范 js 文件
import Vue from "vue"; import Vuex from "vuex"; import { setItem, getItem } from ...