Локальные тома общих пограничных вычислений
В этой статье описывается конфигурация локальных общих пограничных томов (высокодоступное, устойчивое локальное хранилище).
Что такое локальный общий пограничный том?
Функция локальных общих пограничных томов обеспечивает высокодоступное, отказоустойчивое хранилище, локальное в кластере Kubernetes. Этот общий тип хранилища остается независимым от облачной инфраструктуры, что делает его идеальным для места с нуля, временного хранилища и локальных постоянных данных, которые могут быть неподходящими для облачных назначений.
Создание утверждения сохраняемого тома локального общего пограничного сервера (PVC) и настройка модуля pod для ПВХ
Создайте файл с именем
localSharedPVC.yaml
со следующим содержимым. Изменитеmetadata.name
значение с именем утверждения постоянного тома. Затем в строке 8 укажите пространство имен, соответствующее предполагаемому потреблению pod. Значениеmetadata.name
ссылается на последнюю строку следующегоdeploymentExample.yaml
шага. Параметрspec.resources.requests.storage
определяет размер постоянного тома. В этом примере это 2 ГБ, но его можно изменить в соответствии с вашими потребностями:Примечание.
Используйте только строчные буквы и дефисы. Дополнительные сведения см. в документации по именовании объектов Kubernetes.
kind: PersistentVolumeClaim apiVersion: v1 metadata: ### Create a name for your PVC ### name: <create-a-pvc-name-here> ### Use a namespace that matches your intended consuming pod, or "default" ### namespace: <intended-consuming-pod-or-default-here> spec: accessModes: - ReadWriteMany resources: requests: storage: 2Gi storageClassName: unbacked-sc
Создайте файл с именем
deploymentExample.yaml
со следующим содержимым. Добавление значений дляcontainers.name
иvolumes.persistentVolumeClaim.claimName
. Параметрspec.replicas
определяет количество создаваемых модулей pod реплики. Это 2 в этом примере, но его можно изменить в соответствии с вашими потребностями:Примечание.
Используйте только строчные буквы и дефисы. Дополнительные сведения см. в документации по именовании объектов Kubernetes.
apiVersion: apps/v1 kind: Deployment metadata: name: localsharededgevol-deployment ### This will need to be unique for every volume you choose to create spec: replicas: 2 selector: matchLabels: name: wyvern-testclientdeployment template: metadata: name: wyvern-testclientdeployment labels: name: wyvern-testclientdeployment spec: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: - wyvern-testclientdeployment topologyKey: kubernetes.io/hostname containers: ### Specify the container in which to launch the busy box. ### - name: <create-a-container-name-here> image: 'mcr.microsoft.com/mirror/docker/library/busybox:1.35' command: - "/bin/sh" - "-c" - "dd if=/dev/urandom of=/data/acsalocalsharedtestfile count=16 bs=1M && while true; do ls /data &>/dev/null || break; sleep 1; done" volumeMounts: ### This name must match the following volumes::name attribute ### - name: wyvern-volume ### This mountPath is where the PVC will be attached to the pod's filesystem ### mountPath: /data volumes: ### User-defined name that is used to link the volumeMounts. This name must match volumeMounts::name as previously specified. ### - name: wyvern-volume persistentVolumeClaim: ### This claimName must refer to your PVC metadata::name from lsevPVC.yaml. claimName: <your-pvc-metadata-name-from-line-5-of-pvc-yaml>
Чтобы применить эти файлы YAML, выполните следующую команду:
kubectl apply -f "localSharedPVC.yaml" kubectl apply -f "deploymentExample.yaml"
Выполните команду
kubectl get pods
, чтобы найти имя модуля pod. Скопируйте это имя, так как оно необходимо на следующем шаге.Примечание.
Так как
spec::replicas
вdeploymentExample.yaml
качестве2
значения задано два модуля pod, используютсяkubectl get pods
. Вы можете выбрать любое имя модуля pod, используемое для следующего шага.Выполните следующую команду и замените
POD_NAME_HERE
скопированное значение на предыдущем шаге:kubectl exec -it pod_name_here -- sh
Измените
/data
каталоги на путь подключения, как указано вdeploymentExample.yaml
разделе .Например, создайте файл с именем
file1.txt
и напишите его с помощьюecho "Hello World" > file1.txt
.
После выполнения предыдущих действий начните мониторинг развертывания с помощью Azure Monitor и Мониторинга Kubernetes или мониторинга сторонних производителей с помощью Prometheus и Grafana.