tencent cloud

마지막 업데이트 시간:2025-09-29 10:26:10
COS 사용
마지막 업데이트 시간: 2025-09-29 10:26:10

작업 시나리오

Tencent Kubernetes Engine(TKE)을 사용하면 PersistentVolume(PV) 또는 PersistentVolumeClaims(PVC)를 생성하고 워크로드에 볼륨을 마운트하여 Cloud Object Storage(COS)를 사용할 수 있습니다. 본문은 워크로드에 COS를 마운트하는 방법을 설명합니다.

준비 작업

1. COS 애드온 설치

설명
클러스터가 COS-CSI 애드온과 함께 설치된 경우 이 단계를 건너뜁니다.
1. TKE 콘솔에 로그인합니다. 왼쪽 사이드바에서 클러스터를 선택합니다.
2. 클러스터 관리 페이지에서 대상 클러스터의 ID를 클릭하여 클러스터 세부 정보 페이지로 이동합니다.
3. 왼쪽 사이드바에서 애드온 관리를 선택하여, 애드온 관리 페이지에서 생성을 클릭합니다.
4. 애드온 생성 페이지에서 Tencent Cloud COS를 선택합니다.
5. 완료를 클릭합니다.

2. 액세스 키 생성

참고
루트 계정 키 유출로 인한 클라우드 자산 손실을 방지하려면, 보안 설정 정책을 참고하여 루트 계정 콘솔 로그인을 비활성화하거나 루트 계정 키를 사용하여 클라우드 API에 액세스하고, 관련 관리 권한이 있는 서브 계정/협업 파트너를 사용하여 관련 리소스를 운영하는 것이 좋습니다.
본문은 관련 액세스 및 관리 권한이 있는 서브 사용자를 사용하여 액세스 키를 생성하거나 보는 방법을 설명합니다. 서브 사용자를 생성하고 서브 사용자에게 액세스 및 관리 권한을 부여하는 방법에 대한 자세한 내용은 사용자 정의 서브 사용자 생성을 참고하십시오.
1. 서브 계정을 사용하여 클라우드 액세스 관리 콘솔에 로그인하고 왼쪽 사이드바에서 액세스 키 > API 키를 선택하여 API Keys 관리 페이지로 이동합니다.
2. API Keys 관리 페이지에서 키 생성을 클릭하고 키가 생성될 때까지 기다립니다.
설명
한 명의 서브 사용자는 최대 두 개의 API Keys를 가질 수 있습니다.
API Keys는 Tencent Cloud API 요청을 생성하기 위한 중요한 자격 증명입니다. 자산과 서비스를 안전하게 유지하려면 키를 적절하게 저장하고 정기적으로 변경하십시오. 새 키가 생성되면 이전 키를 삭제하십시오.

3. 버킷 생성

COS 콘솔에 로그인하여 버킷을 생성합니다. 자세한 내용은 버킷 생성을 참고하십시오. 생성 완료 후 버킷 리스트에서 확인하십시오.

4. 버킷 서브 디렉터리 가져오기

1. 버킷 리스트 페이지에서 생성된 버킷의 이름을 클릭하면 해당 버킷의 세부 정보 페이지로 이동합니다.
2. 왼쪽 사이드바에서 파일 목록을 선택하고 파일 목록에서 마운트할 서브 폴더를 선택한 후 폴더 세부 정보 페이지로 이동합니다. 페이지의 오른쪽 상단 모서리에 있는 서브 디렉터리 경로 /costest를 가져옵니다. 아래 이미지와 같습니다.


작업 단계

콘솔을 통해 COS 사용

1단계: COS에 액세스할 수 있는 Secret 생성

1. TKE 콘솔에 로그인합니다. 왼쪽 사이드바에서 클러스터를 선택합니다.
2. 클러스터 관리 페이지에서 대상 클러스터의 ID를 클릭하여 클러스터 세부 정보 페이지로 이동합니다.
3. 왼쪽 사이드바에서 구성 관리 > Secret을 선택하고 Secret 페이지에서 생성을 클릭합니다.
4. Secret 생성 페이지에서 다음 정보에 따라 설정합니다. 아래 이미지와 같습니다.

이름: 사용자 지정 이름입니다. 이 문서에서는 cos-secret을 예로 사용합니다.
Secret 유형: Opaque를 선택합니다. 이 유형은 키 인증서 및 구성 파일을 저장하는 데 적합합니다. Value는 Base64로 코딩됩니다.
유효 범위: 특정 네임스페이스를 선택합니다. Secret이 kube-system 네임스페이스 아래에 생성되었는지 확인하십시오.
콘텐츠: Secret이 버킷(Bucket)에 액세스하기 위해 요구하는 액세스 키를 설정하기 위해 사용됩니다. 변수 이름 SecretIdSecretKey와 해당 변수 값을 포함해야 합니다. 액세스 키 생성을 참고하여 액세스 키를 생성하고, API Keys 관리 페이지에서 상세 정보를 확인하십시오.
5. Secret 생성을 클릭합니다.

2단계: 동적 COS-CSI 구성을 지원하는 PV 생성

참고
이 단계에는 버킷이 필요합니다. 현재 리전에서 사용할 수 있는 버킷이 없으면 버킷을 생성합니다. 자세한 내용은 버킷 생성을 참고하십시오.
1. 대상 클러스터 세부 정보 페이지의 왼쪽 사이드바에서 스토리지 > PersistentVolume을 선택하고 PersistentVolume 페이지에서 생성을 클릭합니다.
2. PersistentVolume 생성 페이지에서 다음 정보를 참고하여 PV를 생성합니다. 아래 이미지와 같습니다.

3. 주요 매개변수 정보는 다음과 같습니다.
소스 설정: 정적 생성을 선택합니다.
이름: 사용자 지정 이름입니다. 이 문서에서는 cos-pv를 예로 사용합니다.
Provisioner: COS를 선택합니다.
읽기/쓰기 권한: COS는 다중 호스트 읽기/쓰기만 지원합니다.
설명
단일 머신 읽기/쓰기: 현재 CBS 디스크는 동일한 머신에만 마운트할 수 있으므로 단일 머신에서 데이터 읽기/쓰기만 처리할 수 있습니다.
다중 머신 읽기/쓰기: CFS/COS는 한 번에 여러 시스템에 장착할 수 있으므로 여러 시스템에서 데이터 읽기/쓰기를 처리할 수 있습니다.
Secret: 1단계에서 생성한 Secret을 선택합니다. 이 문서에서는 cos-secret을 예로 사용합니다(Secret이 kube-system 네임스페이스 아래에 생성되었는지 확인하십시오).
버킷 리스트: COS 객체를 저장하는 데 사용되는 버킷 리스트입니다. 필요에 따라 사용 가능한 버킷을 선택할 수 있습니다.
버킷 서브 디렉터리: 버킷 서브 디렉터리 가져오기에서 얻은 버킷 서브 디렉터리를 입력합니다. 이 문서에서는 /costest를 예로 사용합니다. 입력한 서브 디렉터리가 없으면 시스템에서 자동으로 생성합니다.
도메인: 기본 도메인 이름이 표시됩니다. 이 도메인 이름을 사용하여 버킷에 액세스할 수 있습니다.
마운트 옵션: COSFS 툴을 사용하면 버킷을 로컬로 마운트할 수 있습니다. 버킷이 마운트된 후 버킷에 있는 COS 객체에서 직접 작업할 수 있습니다. 이 옵션은 관련 제한을 설정하는 데 사용됩니다. 이 예시에서 마운트 옵션 -oensure_diskfree=20480은 캐시 파일이 저장된 디스크의 여유 공간이 20480MB 미만인 경우 COSFS 툴 실행에 실패함을 나타냅니다.
설명
각 마운트 옵션은 공백으로 구분하십시오. 마운트 옵션에 대한 자세한 내용은 일반 마운트 옵션 문서를 참고하십시오.
4. PersistentVolume 생성을 클릭합니다.

3단계: PVC 생성 및 PV 바인딩

참고
Bound 상태인 PV를 바인딩하지 마십시오.
1. 대상 클러스터 세부 정보 페이지의 왼쪽 사이드바에서 스토리지 > PersistentVolumeClaim을 선택하고 PersistentVolumeClaim 페이지에서 생성을 클릭합니다.
2. PersistentVolumeClaim 생성 페이지에서 다음 정보를 참고하여 PVC를 생성합니다. 아래 이미지와 같습니다.


이름: 사용자 지정 이름입니다. 이 문서에서는 cos-pvc를 예로 사용합니다.
네임스페이스: kube-system을 선택합니다.
Provisioner: COS를 선택합니다.
읽기/쓰기 권한: COS는 다중 호스트 읽기/쓰기만 지원합니다.
PersistentVolume: 2단계에서 생성한 PV를 선택합니다. 이 문서에서는 cos-pv를 예로 사용합니다.
3. PersistentVolumeClaim 생성을 클릭합니다.

4단계: PVC를 사용하는 Pod 생성

설명
이 단계에서는 워크로드 Deployment 생성을 예로 들어 설명합니다.
1. 대상 클러스터 세부 정보 페이지의 왼쪽 사이드바에서 워크로드 > Deployment를 선택하고 Deployment 페이지에서 생성을 클릭합니다.
2. Deployment 생성 페이지에서 Deployment 생성을 참고하여 데이터 볼륨 마운트를 생성하고 설정합니다. 아래 이미지와 같습니다.


**볼륨(선택 사항)**:
마운트 방법: 기존 PVC 사용을 선택합니다.
볼륨 이름: 사용자 지정 이름입니다. 이 문서에서는 cos-vol을 예로 사용합니다.
PVC 선택: 3단계에서 생성한 PVC를 선택합니다. 이 문서에서는 cos-pvc를 예로 사용합니다.
인스턴스 컨테이너: 마운트 포인트 추가를 클릭하여 마운트 포인트를 설정합니다.
볼륨: 이 단계에서 추가한 볼륨 “cos-vol”을 선택합니다.
대상 경로: 대상 경로를 입력합니다. 이 문서에서는 /cache를 예로 사용합니다.
서브 경로: ./data 또는 data와 같은 서브 경로 또는 선택한 볼륨의 단일 파일만 마운트합니다.
3. Deployment 생성을 클릭합니다.

YAML 파일을 통해 COS 사용

COS에 액세스할 수 있는 Secret 생성

YAML 파일을 사용하여 COS에 액세스할 수 있는 Secret을 작성할 수 있습니다. YAML 파일 템플릿은 다음과 같습니다.
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 파일을 사용하여 COS-CSI 동적 구성을 지원하는 PV를 생성할 수 있습니다. YAML 파일 템플릿은 다음과 같습니다.
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

PV를 바인딩하는 PVC 생성

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: ""

PVC를 사용하는 Pod 생성

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

관련 정보

COS 사용 방법에 대한 자세한 내용은 README_COSFS.md를 참고하십시오.
문제 해결에 도움이 되었나요?
더 자세한 내용은 문의하기 또는 티켓 제출 을 통해 문의할 수 있습니다.
아니오

피드백