永続ボリューム要求を作成する
この記事では、ストレージ キー認証を使用して永続ボリュームを作成する方法について説明します。
前提条件
このセクションでは、永続ボリューム (PV) を作成するための前提条件について説明します。
こちらの手順に従ってストレージ アカウントを作成します。
Note
ストレージ アカウントを作成するときは、Kubernetes クラスターと同じリソース グループの下に作成します。 また、Kubernetes クラスターと同じリージョン/場所に作成することをお勧めします。
こちらの手順に従って、前の手順で作成したストレージ アカウントにコンテナーを作成します。
ストレージ キー認証の構成
次の内容を含む add-key.sh という名前のファイルを作成します。 編集や変更は必要ありません。
#!/usr/bin/env bash while getopts g:n:s: flag do case "${flag}" in g) RESOURCE_GROUP=${OPTARG};; s) STORAGE_ACCOUNT=${OPTARG};; n) NAMESPACE=${OPTARG};; esac done SECRET=$(az storage account keys list -g $RESOURCE_GROUP -n $STORAGE_ACCOUNT --query [0].value --output tsv) kubectl create secret generic -n "${NAMESPACE}" "${STORAGE_ACCOUNT}"-secret --from-literal=azurestorageaccountkey="${SECRET}" --from-literal=azurestorageaccountname="${STORAGE_ACCOUNT}"
ファイルを作成したら、ファイルの書き込みアクセス許可を変更し、次のコマンドを使用してシェル スクリプトを実行します。 これらのコマンドを実行すると、
{YOUR_STORAGE_ACCOUNT}-secret
という名前のシークレットが作成されます。 このシークレットの名前は、PV を構成するときにsecretName
値に使用されます。chmod +x add-key.sh ./add-key.sh -g "$YOUR_RESOURCE_GROUP_NAME" -s "$YOUR_STORAGE_ACCOUNT_NAME" -n "$YOUR_KUBERNETES_NAMESPACE"
永続ボリューム (PV) を作成する
ローカル インスタンスを作成してリモート BLOB ストレージ アカウントにバインドするには、キャッシュ ボリューム用の永続ボリューム (PV) を作成する必要があります。
バインドする PVC の spec: volumeName
で指定する必要があるため、metadata: name:
を記録しておきます。 前提条件の一部として作成したストレージ アカウントとコンテナーを使用します。
pv.yaml という名前のファイルを作成します。
apiVersion: v1 kind: PersistentVolume metadata: ### Create a name here ### name: CREATE_A_NAME_HERE spec: capacity: ### This storage capacity value is not enforced at this layer. ### storage: 10Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain storageClassName: esa csi: driver: edgecache.csi.azure.com readOnly: false ### Make sure this volumeid is unique in the cluster. You must specify it in the spec:volumeName of the PVC. ### volumeHandle: YOUR_NAME_FROM_METADATA_NAME_IN_LINE_4_HERE volumeAttributes: protocol: edgecache edgecache-storage-auth: AccountKey ### Fill in the next two/three values with your information. ### secretName: YOUR_SECRET_NAME_HERE ### From the previous step, this name is "{YOUR_STORAGE_ACCOUNT}-secret" ### ### If you use a non-default namespace, uncomment the following line and add your namespace. ### ### secretNamespace: YOUR_NAMESPACE_HERE containerName: YOUR_CONTAINER_NAME_HERE
この .yaml ファイルを適用するには、次を実行します。
kubectl apply -f "pv.yaml"