tencent cloud

容器服务

动态与公告
产品动态
公告
产品发布记录
产品简介
产品概述
产品优势
产品架构
应用场景
产品功能
基本概念
原生 Kubernetes 名词对照
容器服务高危操作
地域和可用区
开源组件
购买指南
购买指引
购买 TKE 标准集群
购买原生节点
购买超级节点
快速入门
新手指引
快速创建一个标准集群
入门示例
容器应用部署 Check List
集群配置
标准集群概述
集群管理
网络管理
存储管理
节点管理
GPU 资源管理
远程终端
应用配置
工作负载管理
服务和配置管理
组件和应用管理
弹性伸缩
容器登录方式
可观测配置
运维可观测性
成本洞察和优化
调度配置
调度组件概述
资源利用率优化调度
业务优先级保障调度
Qos 感知调度
安全和稳定性
容器服务安全组设置
身份验证和授权
应用安全
多集群管理
计划升级
备份中心
云原生服务指南
云原生 etcd
Prometheus 监控服务
TKE Serverless 集群指南
TKE 注册集群指南
实践教程
集群
Serverless 集群
调度
安全
服务部署
网络
发布
日志
监控
运维
Terraform
DevOps
弹性伸缩
容器化
微服务
成本管理
混合云
AI
故障处理
节点磁盘爆满排障处理
节点高负载排障处理
节点内存碎片化排障处理
集群 DNS 解析异常排障处理
集群 Kube-Proxy 异常排障处理
集群 API Server 网络无法访问排障处理
Service&Ingress 网络无法访问排障处理
Service&Ingress 常见报错和处理
Nginx Ingress 偶现 Connection Refused
CLB Ingress 创建报错排障处理
Pod 网络无法访问排查处理
Pod 状态异常与处理措施
授权腾讯云售后运维排障
CLB 回环问题
API 文档
History
Introduction
API Category
Making API Requests
Elastic Cluster APIs
Resource Reserved Coupon APIs
Cluster APIs
Third-party Node APIs
Relevant APIs for Addon
Network APIs
Node APIs
Node Pool APIs
TKE Edge Cluster APIs
Cloud Native Monitoring APIs
Scaling group APIs
Super Node APIs
Other APIs
Data Types
Error Codes
TKE API 2022-05-01
常见问题
TKE 标准集群
TKE Serverless 集群
运维类
隐患处理
服务类
镜像仓库类
远程终端类
事件类
资源管理类
服务协议
TKE Service Level Agreement
TKE Serverless Service Level Agreement
联系我们
词汇表

使用对象存储 COS

PDF
聚焦模式
字号
最后更新时间: 2025-09-29 10:25:49

操作场景

腾讯云容器服务 TKE 支持通过创建 PersistentVolume(PV)和 PersistentVolumeClaim(PVC),并为工作负载挂载数据卷的方式使用腾讯云对象存储 COS。本文介绍如何在 TKE 集群中为工作负载挂载对象存储。

准备工作

1. 安装对象存储扩展组件

说明:
若您的集群已安装 COS-CSI 扩展组件,则请跳过此步骤。
1. 登录 容器服务控制台,选择左侧导航栏中的集群
2. 集群管理页面,单击目标集群 ID,进入集群详情页。
3. 选择左侧导航中的组件管理,在组件管理页面中单击新建。
4. 新建组件页面,勾选 COS(腾讯云对象存储)组件。
5. 单击完成

2. 创建访问密钥

注意:
为避免主账号密钥泄露造成您的云上资产损失,建议您参照 安全设置策略 停止使用主账号登录控制台或者使用主账号密钥访问云 API,并使用已授予相关管理权限的子账号/协作者进行相关资源操作。
本文以已授予访问管理相关权限的子用户创建或查看访问密钥为例,关于如何创建子用户并实现访问管理权限请参考文档 自定义创建子用户
1. 使用子账号用户登录 访问管理控制台,选择左侧导航中的访问密钥 > API 密钥管理。
2. API 密钥管理页面,单击新建密钥等待新建完成即可。
说明:
一个子用户最多可以创建两个 API 密钥。
API 密钥是构建腾讯云 API 请求的重要凭证,为了您的财产和服务安全,请妥善保存和定期更换密钥。当您更换密钥后,请及时删除旧密钥。

3. 创建存储桶

登录 对象存储控制台并创建一个存储桶,操作详情请参见 创建存储桶。创建完成后,在存储桶列表中进行查看。

4. 获取存储桶子目录

1. 存储桶列表页,单击已创建的存储桶名称,进入该存储桶的详情页。
2. 选择左侧导航中的文件列表,在文件列表中选择需要挂载的子文件夹,进入该文件夹详情页。在页面右上角获取子目录路径 /costest。如下图所示:


操作步骤

通过控制台使用对象存储

步骤1:创建可以访问对象存储的 Secret

1. 登录 容器服务控制台,选择左侧导航栏中的集群
2. 集群管理页面,单击目标集群 ID,进入集群详情页。
3. 选择左侧导航中的配置管理 > Secret,在 Secret 页面中单击新建
4. 新建 Secret 页面,根据以下信息进行设置。如下图所示:



名称:自定义,本文以 cos-secret 为例。
Secret 类型:选择 Opaque,该类型适用于保存密钥证书和配置文件,Value 将以 Base64 格式编码。
生效范围:选择指定命名空间,请确保 Secret 创建在 kube-system 命名空间下。
内容:此处用于设置 Secret 访问存储桶(Bucket)所需的访问密钥,需包含变量名 SecretIdSecretKey 及其分别所对应的变量值。请参考 创建访问密钥 完成创建,并前往 API 密钥管理 页面获取访问密钥。
5. 单击创建 Secret 即可。

步骤2:创建支持 COS-CSI 动态配置的 PV

注意:
本步骤需使用存储桶,若当前地域无可用存储桶,则请参考 创建存储桶 进行创建。
1. 在目标集群详情页面,选择左侧菜单栏中的存储 > PersistentVolume,在 PersistentVolume 页面单击新建
2. 新建 PersistentVolume 页面,参考以下信息创建 PV。如下图所示:

主要参数信息如下:
来源设置:选择静态创建
名称:自定义,本文以 cos-pv 为例。
Provisioner:选择为对象存储 COS
读写权限:对象存储仅支持多机读写。
说明:
单机读写:当前仅支持云硬盘同时挂载到一台机器上,因此只能处理单机器的数据读写。
多机读写:文件存储/对象存储支持同时挂载到多台机器,可以处理多机器的数据读写。
Secret:选择已在 步骤1 创建的 Secret,本文以 cos-secret 为例(请确保 Secret 创建在 kube-system 命名空间下)。
存储桶列表:用于保存对象存储中的对象,按需选择可用存储桶即可。
存储桶子目录:填写已在 获取存储桶子目录 中获取的存储桶子目录,本文以 /costest 为例。若填写的子目录不存在,则系统将为您自动创建。
域名:展示为默认域名,您可以使用该域名对存储桶进行访问。
挂载选项:COSFS 工具支持将存储桶挂载到本地,挂载后可直接操作对象存储中的对象,此项用于设置相关限制条件。本例中挂载选项 -oensure_diskfree=20480 表示当缓存文件所在磁盘剩余空间不足 20480MB 时,COSFS 将启动失败。
说明:
不同的挂载项请以空格进行间隔,更多挂载选项请参见 常用挂载选项文档
3. 单击创建 PersistentVolume 即可。

步骤3:创建 PVC 绑定 PV

注意:
请勿绑定状态为 Bound 的 PV。
1. 在目标集群详情页,选择左侧菜单栏中的存储 > PersistentVolumeClaim,在 PersistentVolumeClaim 页面单击新建
2. 新建 PersistentVolumeClaim 页面,参考以下信息创建 PVC。如下图所示:



名称:自定义,本文以 cos-pvc 为例。
命名空间:选择为 kube-system
Provisioner:选择对象存储 COS
读写权限:对象存储仅支持多机读写。
PersistentVolume:选择在 步骤2 中已创建的 PV,本文以 cos-pv 为例。
3. 单击创建 PersistentVolumeClaim 即可。

步骤4:创建 Pod 使用的 PVC

说明:
本步骤以创建工作负载 Deployment 为例。
1. 在目标集群详情页,选择左侧菜单栏中的工作负载 > Deployment,在 Deployment 页面单击新建
2. 新建 Deployment 页面,参考 创建 Deployment 进行创建,并设置数据卷挂载。如下图所示:

数据卷(选填)
挂载方式:选择使用已有 PVC
数据卷名称:自定义,本文以 cos-vol 为例。
选择 PVC:选择已在 步骤3 中创建的 PVC,本文以选择 cos-pvc 为例。
实例内容器:单击添加挂载点,进行挂载点设置。
数据卷:选择为该步骤中所添加的数据卷 “cos-vol”。
目标路径:填写目标路径,本文以 /cache 为例。
挂载子路径:仅挂载选中数据卷中的子路径或单一文件。例如,./datadata
3. 单击创建 Deployment 即可。

通过 YAML 文件使用对象存储

创建可以访问对象存储的 Secret

可通过 YAML 创建可以访问对象存储的 Secret,模板如下:
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: cos-secret
# Replaced by your secret namespace.
namespace: kube-system
data:
# Replaced by your temporary secret file content. You can generate a temporary secret key with these docs:
# Note: The value must be encoded by base64.
SecretId: VWVEJxRk5Fb0JGbDA4M...(base64 encode)
SecretKey: Qa3p4ZTVCMFlQek...(base64 encode)

创建支持 COS-CSI 动态配置的 PV

可通过 YAML 创建 PV 以支持 COS-CSI 动态配置,模板如下:
apiVersion: v1
kind: PersistentVolume
metadata:
name: cos-pv
spec:
accessModes:
- ReadWriteMany
capacity:
storage: 10Gi
csi:
driver: com.tencent.cloud.csi.cosfs
nodePublishSecretRef:
name: cos-secret
namespace: kube-system
volumeAttributes:
# Replaced by the url of your region.
url: http://cos.ap-XXX.myqcloud.com
# Replaced by the bucket name you want to use.
bucket: XXX-1251707795
# You can specify sub-directory of bucket in cosfs command in here.
path: /costest
# You can specify any other options used by the cosfs command in here.
# additional_args: "-oallow_other"# Specify a unique volumeHandle like bucket name.(this value must different from other pv's volumeHandle)
volumeHandle: XXX
persistentVolumeReclaimPolicy: Retain
volumeMode: Filesystem

创建 PVC 绑定 PV

可通过 YAML 创建绑定上述 PV 的 PVC,模板如下:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: cos-pvc
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: cos-pv
# Currently cos only supports static provisioning, the StorageClass name should be empty.
storageClassName: ""

创建 Pod 使用 PVC

可通过 YAML 创建 Pod,模板如下:
apiVersion: v1
kind: Pod
metadata:
name: pod-cos
spec:
containers:
- name: pod-cos
command: ["tail", "-f", "/etc/hosts"]
image: "centos:latest"
volumeMounts:
- mountPath: /data
name: cos
resources:
requests:
memory: "128Mi"
cpu: "0.1"
volumes:
- name: cos
persistentVolumeClaim:
# Replaced by your pvc name.
claimName: cos-pvc

相关信息

更多关于如何使用对象存储的信息请参见 README_COSFS.md

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈