操作シナリオ
Tencent Kubernetes Engine(TKE)は、PV/PVCを作成し、作成したワークロードにデータボリュームを追加する際に既存のPVCを使用することで、PVおよびPVCによってCBSを管理することができます。ここでは、コンソール、Kubectlという2つの方式によってPVおよびPVCによるCBS管理を実現する方法についてご説明します。
注意
CBSは異なるアベイラビリティーゾーン間でのマウントをサポートしていません。CBSタイプのPVをマウントしたPodを他のアベイラビリティーゾーンに移行しようとすると、マウントに失敗します。
TKEコンソールはCBSの拡張をサポートしていません。拡張操作はCBSコンソールで行うことができます。詳細については、CBS拡張をご参照ください。 操作手順
コンソール操作ガイド
コンソールからStorageClassを作成する
CBSタイプのPVを静的に作成した場合は、同タイプの利用可能なStorageClassをバインドする必要があるため、StorageClassの作成を参照して作成を完了してください。 PVを静的に作成する
説明
静的に作成するPVは、既存のクラウドディスクで、かつクラスター内で使用するケースに適しています。
1. TKEコンソールにログインし、左側ナビゲーションバーのクラスターを選択します。 2. PVを作成したいクラスターIDを選択し、このクラスターの詳細ページに進みます。
3. 左側メニューバーのStorage > PersistentVolumeを選択し、PersistentVolume ページに進みます。下図に示すとおりです。 4. 新規作成を選択し、「PersistentVolumeの新規作成」ページに進み、次の情報を参照して作成します。下図に示すとおりです。 主なパラメータの情報は次のとおりです。
ソース設定:静的作成を選択します。
名前:ご自身で定義します。ここではcbs-pvとします。
Provisioner:CBSを選択します。
読み取り/書き込み権限:CBSはシングルマシン読み取り/書き込みのみサポートしています。
説明
PVCとPVは同一のStorageClassにバインドされます。
指定しない場合は、このPVが対応するStorageClassの値が空であり、対応するYAMLファイル内のstorageClassNameフィールドの値が空の文字列であることを意味します。
クラウドディスク:作成済みのCBSを選択します。
ファイルシステム:デフォルトでext4となります。
5. PersistentVolumeの作成をクリックすると作成が完了します。
PVCの作成
1. クラスターの詳細ページで、左側メニューバーのStorage > PersistentVolumeClaimを選択し、「PersistentVolumeClaim」ページに進みます。下図に示すとおりです。 2. 新規作成を選択し、「PersistentVolumeClaimの新規作成」ページに進み、次の情報を参照して作成します。下図に示すとおりです。 主なパラメータの情報は次のとおりです。
名前:ご自身で定義します。ここではcbs-pvcとします。
ネームスペース:「default」を選択します。
Provisioner:CBSを選択します。
読み取り/書き込み権限:CBSはシングルマシン読み取り/書き込みのみサポートしています。
説明
PVCとPVは同一のStorageClassにバインドされます。
指定しない場合は、このPVCが対応するStorageClassの値が空であり、対応するYAMLファイル内のstorageClassNameフィールドの値が空の文字列であることを意味します。
PersistVolume:必要に応じてPersistentVolumeを指定します。ここでは、PVを静的に作成する手順で作成したcbs-pvを例にとります。 説明
指定のStorageClassが同一かつステータスがAvailableおよびReleasedであるPVだけが選択可能な状態になります。現在のクラスター内に条件を満たす、選択可能なPVがない場合は、PersistVolumeを「指定しない」を選択してください。
選択したPVのステータスがReleasedの場合、このPVをPVCにスムーズにバインドするには、このPVに対応するYAML設定ファイル内のclaimRefフィールドを手動で削除する必要があります。詳細については、PVとPVCのバインドルールの確認をご参照ください。 3. PersistentVolumeClaimの作成をクリックすると作成が完了します。
Workloadを作成してPVCデータボリュームを使用する
説明
この手順ではワークロードDeploymentの作成を例にとります。
1. 「クラスター管理」ページで、ターゲットのクラスターIDを選択し、デプロイするWorkloadのクラスターの「Deployment」ページに進みます。
2. 新規作成をクリックし、「Workloadの新規作成」ページに進み、Deploymentの作成を参照して作成し、次の情報を参照してデータボリュームのマウントを行います。下図に示すとおりです。 データボリューム(オプション):
マウント方式:「既存のPVCを使用」を選択します。
データボリューム名:ご自身で定義します。ここではcbs-volとします。
PVCの選択:PVCの作成の手順で作成した「cbs-pvc」を選択します。 インスタンス内コンテナ:マウントポイントの追加をクリックし、マウントポイントを設定します。
データボリューム:この手順で追加済みのデータボリューム「cbs-vol」を選択します。
ターゲットパス:ターゲットパスを入力します。ここでは/cacheとします。
サブパスのマウント:選択したデータボリューム内のサブパスまたは単一のファイルのみをマウントします(例:/dataまたは/test.txt)。
3. Workloadの作成をクリックすると作成が完了します。
注意
CBSのPVCマウントモードを使用すると、データボリュームは1台のNodeホスト上にしかマウントできません。
Kubectl操作ガイド
次のYAMLサンプルファイルによって、Kubectlを使用して作成操作を行うことができます。
(オプション)PVを作成する
既存のCBSによってPVを作成することもできますが、直接PVCの作成を行い、対応するPVをシステムによって自動作成することもできます。YAMLファイルのサンプルは次のとおりです。 apiVersion: v1
kind: PersistentVolume
metadata:
name: cbs-test
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 10Gi
csi:
driver: com.tencent.cloud.csi.cbs
fsType: ext4
readOnly: false
volumeHandle: disk-xxx
storageClassName: cbs
PVCの作成
PVの作成がまだの場合は、PVCの作成の際に、対応するPVをシステムが自動作成します。YAMLファイルのサンプルは次のとおりです。 kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: nginx-pv-claim
spec:
storageClassName: cbs
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
CBSのサイズは10の倍数でなければなりません。
高性能CBSは少なくとも10GB、SSDおよび強化型SSD CBSは少なくとも20GB必要です。詳細についてはCBSの作成をご参照ください。 PVCの使用
Workloadを作成してPVCデータボリュームを使用することができます。YAMLのサンプルは次のとおりです。
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 1
selector:
matchLabels:
qcloud-app: nginx-deployment
template:
metadata:
labels:
qcloud-app: nginx-deployment
spec:
containers:
- image: nginx
imagePullPolicy: Always
name: nginx
volumeMounts:
- mountPath: "/opt/"
name: pvc-test
volumes:
- name: pvc-test
persistentVolumeClaim:
claimName: nginx-pv-claim