Я настроил кластер kubernetes с тремя узлами. Все узлы являются машинами Linux Centos.
Мне нужен постоянный том для хранения данных, и я пытаюсь добиться этого.
Я следовал этому уроку. Но он охватывает только один узел кластера.
https://kubernetes.io/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/
Поскольку мой кластер состоит из трех узлов, я не могу использовать локальный путь. Предыдущий урок не работал для меня.
Мне нужен сетевой путь, и использование NFS кажется мне разумным решением. (Есть ли хорошая альтернатива, которую я хотел бы услышать.)
Использование сетевого монтирования NFS состоит из двух шагов.
Во-первых, создание постоянного тома на сетевом пути.
Во-вторых, определите этот сетевой путь как постоянный том и используйте его.
Второй шаг довольно прямой. Это объясняется в документации kubernetes и даже есть пример yaml.
документация: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistent-volumes
пример: https://github.com/kubernetes/examples/blob/master/staging/volumes/nfs/nfs-pv.yaml
Первая часть также кажется прямой. Это объясняется в следующем документе
https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nfs-mount-on-ubuntu-16-04#step-5-%E2%80%94-creating-the-mount-points-on-the-client
/etc/exports
directory_to_share client(share_option1,...,share_optionN)
/etc/exports
/var/nfs/general 203.0.113.256(rw,sync,no_subtree_check)
/home 203.0.113.256(rw,sync,no_root_squash,no_subtree_check)
Но когда вы экспортируете путь как путь NFS, вы должны выполнить некоторую настройку и предоставить клиентам некоторые права. В основном вам нужен клиент ip.
В kubernetes мы используем абстракции, такие как pods, и мы не хотим иметь дело с реальными машинами и их IP-адресами. Итак, проблема начинается здесь.
Итак, я не хочу передавать узлы ip серверу nfs. (Они могут измениться в первую очередь.) Должно быть лучшее решение, чтобы все модули (в любом узле) могли подключаться к сетевому пути NFS.
Даже разрешение всех ip без ограничений или диапазон ip может решить проблему. Я хотел бы услышать, если есть такое решение. Но я также хотел бы услышать, что является лучшей практикой. Как все остальные используют сетевой путь NFS из kubernetes.
Я не смог найти никакого решения. Если вы решили похожую проблему, пожалуйста, дайте мне знать, как вы ее решаете. Любая документация по этому вопросу тоже будет хорошей. Заранее спасибо!