Создание постоянного тома
В этой статье описывается создание постоянного тома с помощью проверки подлинности ключа хранилища.
Необходимые компоненты
В этом разделе описываются предварительные требования для создания постоянного тома (PV).
Создайте учетную запись хранения, следуя инструкциям ниже.
Примечание.
При создании учетной записи хранения создайте ее в той же группе ресурсов, что и кластер 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
. Это имя секрета используется дляsecretName
значения при настройке PV: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).
Запишите metadata: name:
, как необходимо указать его в spec: volumeName
ПВХ, который привязывается к нему. Используйте учетную запись хранения и контейнер, созданный в рамках предварительных требований.
Создайте файл с именем 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"