ユースケース
Tencent Kubernetes Engine(TKE)では、PersistentVolume(PV)およびPersistentVolumeClaim(PVC)を作成し、ワークロードにデータボリュームをマウントする方法でTencent Cloud Object Storage(COS)を使用することができます。ここでは、TKEクラスターでワークロードにCOSをマウントする方法についてご説明します。
準備作業
1. COS拡張コンポーネントのインストール
説明
クラスターにCOS-CSI拡張コンポーネントがすでにインストールされている場合は、この手順をスキップしてください。
1. TKEコンソールにログインし、左側ナビゲーションバーのクラスターを選択します。 2. クラスター管理ページでターゲットのクラスターIDをクリックし、クラスター詳細ページに進みます。
3. 左側ナビゲーションバーでコンポーネント管理を選択し、コンポーネント管理ページで新規作成をクリックします。
4. コンポーネントの新規作成ページでCOS(Tencent Cloud Object Storage)コンポーネントにチェックを入れます。
5. 完了をクリックします。
2. アクセスキーの作成
注意
ルートアカウントキーの漏洩によるクラウド上の資産の損失を防ぐため、セキュリティ設定ポリシーを参照して、ルートアカウントによるコンソールへのログインまたはルートアカウントキーによるTencent Cloud APIへのアクセスを停止し、関連の管理権限を付与されたサブアカウント/コラボレーターを使用して関連リソースの操作を行うことをお勧めします。 ここではアクセス管理に関連する権限を付与されたサブユーザーがアクセスキーを作成または確認する場合を例にとります。サブユーザーを作成し、アクセス管理権限を実装する方法に関しては、ドキュメントサブユーザーのカスタム作成をご参照ください。 1. サブアカウントユーザーを使用してCAMコンソールにログインし、左側ナビゲーションバーでアクセスキー > APIキー管理を選択します。 2. APIキー管理ページで、キーの新規作成をクリックし、作成が完了するまで待ちます。
説明
APIキーは1つのサブユーザーにつき、最大2つまで作成できます。
APIキーはTencent Cloud APIリクエストを作成するための重要なクレデンシャルです。ご自身の財産とサービスの安全性のため、キーを適切に保存し、定期的に変更してください。キーを変更した後は、古いキーを速やかに削除してください。
3. バケットの作成
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)にアクセスするために必要なアクセスキーの設定に使用します。変数名SecretIdとSecretKey、およびそれらにそれぞれ対応する変数値が含まれる必要があります。アクセスキーの作成を参照して作成し、APIキー管理ページでアクセスキーを取得してください。 5. Secretの作成をクリックします。
ステップ2:COS-CSI動的設定をサポートするPVを作成する
注意
この手順ではバケットを使用します。現在のリージョンに使用可能なバケットがない場合は、バケットの作成を参照して作成してください。 1. ターゲットのクラスターの詳細ページで、左側メニューバーのStorage > PersistentVolumeを選択し、PersistentVolume ページで新規作成をクリックします。
2. PersistentVolumeの新規作成ページで、次の情報を参照してPVを作成します。下の図をご覧ください。 3. 主なパラメータ情報は下記の通りです:
ソース設定:静的作成を選択します。
名前:ご自身で定義します。ここではcos-pvとします。
Provisioner:COSを選択します。
読み取り/書き込み権限:COSはマルチマシン読み取り/書き込みのみサポートしています。
説明
シングルマシン読み取り/書き込み:現在Cloud Block Storage(CBS)は同時に1台のマシンへのマウントのみをサポートしているため、単一のマシンのデータ読み込み/書き込みのみ処理できます。
マルチマシン読み取り/書き込み:Cloud File Storage(CFS)/Cloud Object Storage(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. ターゲットのクラスターの詳細ページで、左側メニューバーのStorage > PersistentVolumeClaimを選択し、PersistentVolumeClaimページで新規作成をクリックします。
2. PersistentVolumeClaimの新規作成ページで、次の情報を参照してPVCを作成します。下の図をご覧ください。 名前:ご自身で定義します。ここではcos-pvcとします。
ネームスペース:kube-systemを選択します。
Provisioner:COSを選択します。
読み取り/書き込み権限: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とします。
サブパスのマウント:選択したデータボリューム内のサブパスまたは単一のファイルのみをマウントします(例:./dataまたはdata)。
3. Deploymentの作成をクリックします。
YAMLファイルによるCOSの使用
COSにアクセス可能なSecretを作成する
COSにアクセス可能なSecretをYAMLで作成できます。テンプレートは次のとおりです。
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: cos-secret
namespace: kube-system
data:
SecretId: VWVEJxRk5Fb0JGbDA4M...(base64 encode)
SecretKey: Qa3p4ZTVCMFlQek...(base64 encode)
COS-CSI動的設定をサポートするPVを作成する
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:
url: http://cos.ap-XXX.myqcloud.com
bucket: XXX-1251707795
path: /costest
volumeHandle: XXX
persistentVolumeReclaimPolicy: Retain
volumeMode: Filesystem
PVCを作成してPVをバインドする
上記のPVをバインドしたPVCをYAMLで作成できます。テンプレートは次のとおりです。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: cos-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
storageClassName: ""
Podが使用するPVCを作成する
PodをYAMLで作成できます。テンプレートは次のとおりです。
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:
claimName: cos-pvc
関連情報