Рубрики
Uncategorized

Kubernetes Storage Config Упрощен

Конфигурация хранения Kubernetes может быть запутанной, давайте посмотрим на основные варианты, которые у нас есть и что имеет отношение к нашей архитектуре программного обеспечения. Tagged с начинающими, DevOps, Kubernetes.

  • новичок в Kubernetes? Читать Kubernetes в двух словах

С сайта Kubernetes:

Файлы на диске в контейнере являются эфемерными, которые представляют некоторые проблемы для нетривиальных приложений при запуске в контейнерах.

Это означает, что, поскольку стручки являются одноразовыми, мы не можем сохранить файлы в контейнер или файловых системах POD. После сбоя Kubelet, управляющий им, перезагрузит контейнер/стручок и приведет к удалению всех файлов.

👉 Зачем нам нужно хранилище?

В некоторых лучших практиках упоминается, что микросервисы должны быть без сохранения состояния, но реальность показывает, что иногда приложения должны иметь возможность хранить и получать данные. Это может быть из файловой системы или NoSQL/SQL Storage.

Чтобы получить эти данные, нам нужно будет настроить тома Анкет

Что такое объемы?

При обсуждении хранилища данных, том относится к логическому диску. Фактическая физическая файловая система на жестком диске.

Для любого вида хранилища мы хотели бы поработать, нам нужно сначала определить их, используя файл YAML.

Есть много типов объемов, мы сосредоточимся на 3 из них:

💾 EmptyDir

Используя пусто Мы можем определить каталог на самом узле. Однако, если узел не работает, содержание emptydir стерто.

В файле YAML это будет выглядеть так:

apiVersion: v1
kind: Pod
metadata:
  name: test-pd
spec:
  containers:
  - image: k8s.gcr.io/test-webserver
    name: test-container
    volumeMounts:
    - mountPath: /cache
      name: cache-volume
  volumes:
  - name: cache-volume
    emptyDir: {}

💽 Hostpath

Другой — Hostpath Анкет

С Hostpath Мы включаем один из каталогов или файлов из файловой системы узла хоста в капсулу. Основное различие между Hostpath и emptydir это Hostpath Может быть, не пустой каталог. Кстати, Hostpath , вместе с привилегированными Kubernetes Daemonset Можно использовать для настройки базовой виртуальной машины, выполняя команды на хосте. Тем не менее, мы должны быть осторожны, так как это может вызвать нарушения безопасности.

  • Deamonset — Набор процессов, которые работают в фоновом режиме на определенных узлах. Например, Deamonset of Type Logs Collection. Это означает, что мы хотели бы, чтобы процессы сбора журналов работали в фоновом режиме для всех наших стручков, чтобы мы могли собирать журналы и хранить их в выделенном месте.

В файле YAML это будет выглядеть так:

apiVersion: v1
kind: Pod
metadata:
  name: test-pd
spec:
  containers:
  - image: k8s.gcr.io/test-webserver
    name: test-container
    volumeMounts:
    - mountPath: /test-pd
      name: test-volume
  volumes:
  - name: test-volume
    hostPath:
      # directory location on host
      path: /data
      # this field is optional
      type: Directory

Последний, но тем не менее важный:

🌤 Публичные облака

Если вы используете один из публичных облаков, вы можете воспользоваться многими существующими услугами, такими как AWS Elastic Block Store и Azure Дисковое хранилище Анкет

💡 Это обертка! Ресурсы и узнайте больше:

Оригинал: «https://dev.to/adipolak/kubernetes-storage-config-simplified-3fhn»