Я развернул Kubernetes на голом выделенном сервере, используя conjure-up kubernetes
в Ubuntu 18.04 LTS.Это также означает, что узлы являются контейнерами LXD.
Мне нужны постоянные тома для Elasticsearch и MongoDB, и после некоторых исследований я решил, что самым простым способом заставить это работать в моем развертывании был ресурс NFS.Я создал общий ресурс NFS в хост-системе со следующей конфигурацией:
/ srv / volume 127.0.0.1 (rw) 10.78.69. * (Rw, no_root_squash)
10.78.69.*
представляется мостовой сетью, используемой Kubernetes, по крайней мере, глядя на ifconfig, в которой больше ничего нет.
Затем я приступил к созданию двух папок, / srv / volume / 1 и / srv / volume./ 2 Я создал два PV из этих папок с этой конфигурацией для первой (вторая аналогична):
apiVersion: v1
kind: PersistentVolume
metadata:
name: elastic-pv1
spec:
capacity:
storage: 30Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
path: /srv/volumes/1
server: 10.78.69.1
Затем я развернул таблицу управления Elasticsearch (https://github.com/helm/charts/tree/master/incubator/elasticsearch), и он создал две заявкикоторые успешно связываются с моими PV.
Проблема заключается в том, что впоследствии контейнеры, похоже, сталкиваются с ошибками:
Ошибка: не удалось запустить контейнер "sysctl": Ошибка ответа от демона: linuxУстройства спецификации времени выполнения: lstat /dev/.lxc/proc/17848/fdinfo/24: такой файл или каталог отсутствуют: сбой при перезапуске контейнера не удалось
Представление модулей
Просмотр утверждений о постоянном объеме
Я застрял здесь.Я попытался найти ошибку, но мне не удалось найти решение этой проблемы.
Раньше, прежде чем я установил разрешенный IP-адрес в /etc/exports
на 10.78.69.*
, Kubernetes сказал бы мне, что он получил «отказано в доступе» от сервера NFS при попытке монтирования, поэтому я предполагаю, что теперь монтирование прошло успешно, так какошибка исчезла.
РЕДАКТИРОВАТЬ:
Я решил очистить развертывание руля и повторить попытку, на этот раз с другим типом хранилища, тома локального хранилища.Я создал их, следуя инструкциям Canonical, и я знаю, что они работают, потому что я настроил один для MongoDB таким образом, и он отлично работает.
Конфигурация для развертывания шлема эластичного поиска изменилась, так как теперь я должен установить сходство дляузлы, на которых были созданы постоянные тома:
values.yaml
:
data:
replicas: 1,
nodeSelector:
elasticsearch: data
master:
replicas: 1,
nodeSelector:
elasticsearch: master
client:
replicas: 1,
cluster:
env: {MINIMUM_MASTER_NODES: "1"}
Я развернул с помощью
helm install --name site-search -f values.yaml инкубатор / эластичный поиск
Это единственные изменения, однако эластичный поиск по-прежнему вызывает те же проблемы.
Дополнительная информация:
kubectl version
:
Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.3", GitCommit:"a4529464e4629c21224b3d52edfe0ea91b072862", GitTreeState:"clean", BuildDate:"2018-09-09T18:02:47Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.3", GitCommit:"a4529464e4629c21224b3d52edfe0ea91b072862", GitTreeState:"clean", BuildDate:"2018-09-09T17:53:03Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
Изображение эластичного поиска является стандартным изображением в таблице управления:
docker.elastic.co /asticsearch /asticsearch-oss: 6.4.1
Журналы различных модулей (основной, клиентский, данные) пусты.Ошибка та же.