Huan
привет всем. кто-то прикручивал в кубернетес cephfs? при создании claim выдает ошибку: I0723 10:03:28.964828 1 leaderelection.go:178] successfully acquired lease to provision for pvc kube-test/claim1 I0723 10:03:28.966849 1 event.go:218] Event(v1.ObjectReference{Kind:"PersistentVolumeClaim", Namespace:"kube-test", Name:"claim1", UID:"82da642a-8e58-11e8-be2c-005056b2b12a", APIVersion:"v1", ResourceVersion:"14503224", FieldPath:""}): type: 'Normal' reason: 'Provisioning' External provisioner is provisioning volume for claim "kube-test/claim1" E0723 10:03:39.796804 1 cephfs-provisioner.go:155] failed to provision share "kubernetes-dynamic-pvc-f1905d95-8e5e-11e8-9700-ea04dd2539d0" for "kubernetes-dynamic-user-f1905e1a-8e5e-11e8-9700-ea04dd2539d0", err: exit status 1, output: Traceback (most recent call last): File "/usr/local/bin/cephfs_provisioner", line 336, in <module> main() File "/usr/local/bin/cephfs_provisioner", line 330, in main print cephfs.create_share(share, user, size=size) File "/usr/local/bin/cephfs_provisioner", line 210, in create_share volume = self.volume_client.create_volume(volume_path, size=size) File "/usr/local/bin/cephfs_provisioner", line 106, in volume_client self._volume_client.connect(None) File "/lib/python2.7/site-packages/ceph_volume_client.py", line 471, in connect self.fs.mount() File "cephfs.pyx", line 548, in cephfs.LibCephFS.mount (/home/jenkins-build/build/workspace/ceph-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos7/DIST/centos7/MACHINE_SIZE/huge/release/13.2.0/rpm/el7/BUILD/ceph-13.2.0/build/src/pybind/cephfs/pyrex/cephfs.c:5648) cephfs.Error: (110, 'error calling ceph_mount: error code 110') E0723 10:03:39.796908 1 controller.go:1068] Failed to provision volume for claim "kube-test/claim1" with StorageClass "cephfs": exit status 1
𝚔𝚟𝚊𝚙𝚜
я так и не понял как ты zfs в куб подаешь через nfs?
В данный момент как-раз занимаюсь реализацией этого решения. В большинстве своем я все описал в этой статье. https://habr.com/post/417473/
𝚔𝚟𝚊𝚙𝚜
Только применительно для куба
𝚔𝚟𝚊𝚙𝚜
По сути есть linstor который создает drbd-устройства на нодах, он умеет ZFS или LVM как backend. После этого запускаешь под с NFS-сервером с NodeAffinity к нодам где находится это drbd-устройство
𝚔𝚟𝚊𝚙𝚜
все очень просто
𝚔𝚟𝚊𝚙𝚜
только я сейчас больше к iscsi склоняюсь нежели к nfs, но обе реализации возможны
𝚔𝚟𝚊𝚙𝚜
а вообще у linstor свой драйвер был для куба, он умеет drbd-устройство напрямую к поду доставлять
Nata
Привет. А подскажите, может кто в курсе, есть какая-нибудь штука конвертить описания конфигураций kubernetes в terraform? вроде kompose для compose -> kubernetes
Sergey
Нету
𝚔𝚟𝚊𝚙𝚜
я так и не понял как ты zfs в куб подаешь через nfs?
А если нужно локально то обычные local-volumes работают вообще идеально: https://kubernetes.io/blog/2018/04/13/local-persistent-volumes-beta/
Валентин
А образы также через тулзу собирать?
Ну docker push в репозиторий, потом containerd их забирает прекрасно
𝚔𝚟𝚊𝚙𝚜
drbd и куб в одном предложении это конечно такое)
к сожалению аналогов у него особо нет, так что пытаемся обуздать необуздаемое :)
𝚔𝚟𝚊𝚙𝚜
OpenEBS разве что, но он тоже немного странный
Михаил
и я сейчас не только про ceph
Михаил
и не столько
𝚔𝚟𝚊𝚙𝚜
Ну я перепробовал много всего, что ты имеешь ввиду?
𝚔𝚟𝚊𝚙𝚜
Ceph - он очень сильно проседает при более-менее приличной нагрузке.
𝚔𝚟𝚊𝚙𝚜
+ ресурсов требует немеренно
𝚔𝚟𝚊𝚙𝚜
многа хостинга и многа VPSок
Михаил
Например какие?
у делл есть неплохой бесплатный вариант)
𝚔𝚟𝚊𝚙𝚜
у делл есть неплохой бесплатный вариант)
а можно ссылочку, что конкретно имеется ввиду?
Sabbath
Перфекционист во мне грустит( Иконка чата криво вписана в круг
Artem
а можно ссылочку, что конкретно имеется ввиду?
Я так понимаю, имелся в виду https://www.opensds.io/
Artem
Но это все поверх цефа и дрбд
Pavel G
Я так понимаю, имелся в виду https://www.opensds.io/
Это же не замена ceph, насколько. Понимаю. Или zfs, если уж на то пошло. Вариант надстройки. Типа лонгхорна, только умеет жить вне куба
Artem
Это же не замена ceph, насколько. Понимаю. Или zfs, если уж на то пошло. Вариант надстройки. Типа лонгхорна, только умеет жить вне куба
Я так понял, это просто некоторое общее апи надо всеми ними https://github.com/opensds/opensds/tree/master/examples/driver
Alexander
Ребят в кубере есть какаянить политика зависимостей? Если например оьновил см файл который используется в деплойменте, то поды надо пересоздать автоматом?
Vlad
Ceph - он очень сильно проседает при более-менее приличной нагрузке.
Вроде в последней стабильной версии bluestore объявлен стабильным. Он позволит избавиться от write amplification. Не тестировали?
Anton
Ребят в кубере есть какаянить политика зависимостей? Если например оьновил см файл который используется в деплойменте, то поды надо пересоздать автоматом?
в helm в зависимые объектые в аннотации добавляют хэши отрендеренных объектов. в итоге например деплоймент обновится, когда изменишь конфиг мап и поедет роллинг апдейт
Anton
смысл в том что ты меняешь прост объект при изменении конфигмапа
Alexander
смысл в том что ты меняешь прост объект при изменении конфигмапа
Я это понимаю, просто думал мб реализованы какие то зависимости на основе селекторов например
Pavel G
Я так понял, это просто некоторое общее апи надо всеми ними https://github.com/opensds/opensds/tree/master/examples/driver
Общее api.. сырое общее апи над полусырыми кластерными фс? Подозрительно)
Anton
Я это понимаю, просто думал мб реализованы какие то зависимости на основе селекторов например
в prometheus используют такой инструмент: https://github.com/jimmidyson/configmap-reload но эта штука пытается релодить пром внутри. если конфиг невалидный - хз что случится. к8с сейчас не тригерит роллинг апдейт сам и думаю не будет никогда
Alexander
в prometheus используют такой инструмент: https://github.com/jimmidyson/configmap-reload но эта штука пытается релодить пром внутри. если конфиг невалидный - хз что случится. к8с сейчас не тригерит роллинг апдейт сам и думаю не будет никогда
Очень жаль. Я сейчас только начинаю разбираться, написал деплой с помощью ансибла в к8с, но вот такие моменты ненравятся, стоит сразу посмотреть хелм?
Anton
что мешает в ansible то же самое применить?
Anton
https://github.com/helm/helm/blob/master/docs/charts_tips_and_tricks.md#automatically-roll-deployments-when-configmaps-or-secrets-change
Anton
все что нужно, это добавить хеш отрендеренного конфигмапа в spec.template.metadata.annotations
Alexander
что мешает в ansible то же самое применить?
Да ничего не мешает, просто еще не раьотал с хелмом и пока плохое понимание что он делапт и как. Посмотрю. Спасибо
Anton
грубо helm шаблонизатор + каталог чартов (шаблонов\пакетов) + хранение истории. в данной ситуации нужно только добавить spec: template: metadata: annotations: checksum/config: {{ здесь какой то инклюд результата шаблонизирования configmap или набора входных данных для него | какая то хеш функция }}
Egor
всем привет. учусь, играюсь с 3хнодовым кластером на baremetal. на одной ноде внезапно падает kube-apiserver, соответственно перестаёт слушаться порт 6443. может кто сталкивался, или подскажет, как отловить?
Denis
Подскажите плиз по Jobs. я вроде бы выставил restartPolicy: Never но джоба всё равно наровит рестартится.
Denis
и поставил backoffLimit: 1
Sergei
Подскажите плиз по Jobs. я вроде бы выставил restartPolicy: Never но джоба всё равно наровит рестартится.
а версия кубера какая? если между 1.10.0 и 1.10.4 (включительно), то там был баг с backoffLimit, он не работал, пофиксили в 1.10.5
Denis
чйорт
Sergei
вот этот был https://github.com/kubernetes/kubernetes/issues/62382
Sergei
очень сильно мне попортил жизнь в свой время 🙂
Denis
у меня 1.10.4
Sergei
как воркэраунд можно всем джобам прописать activeDeadlineSeconds
Denis
я думаю настало время в первый раз обновить кубер и поучиться этому.
PsyDebug
О, такаяж проблема
Artyom
Подскажите, а кто-нибудь делал мульти мастер с помощью kubeadm? Есть годная статья?
Artyom
Есть ссылочка?
Artyom
Не на kubespray, а на туториал, если по нему делали
Denis
не, туториалов на сколько мне помнится не нашли, делали сами
Denis
в бою не заиспользовали, но поднялось как нужно 🙂
Denis
там основной поинт был правильно расставить лейблы на ноды, если память не подводит
Artyom
Я нашел в оф доке, как это делается, но там еще вкурить надо
𝚔𝚟𝚊𝚙𝚜
еще такая статья была https://medium.com/@bambash/ha-kubernetes-cluster-via-kubeadm-b2133360b198
Dmitrii
Подскажите, а кто-нибудь делал мульти мастер с помощью kubeadm? Есть годная статья?
Делал, статья находится прямо в оф.доке k8s, там ж все просто. Я только по 1.10 делал, в 1.11 ее перепилили сильно вроде.
Andrey
Your clusters must run Kubernetes version 1.11 or later. You should also be aware that setting up HA clusters with kubeadm is still experimental.
Andrey
𝚔𝚟𝚊𝚙𝚜
Запускайте мастер в HA-виртуалке/lxc-контейнере и будет вам счастье
Artyom
Ок, будем посмотреть, спасибо
Vadim
в офицальной доке написано "In a cloud environment, neither approach documented here works with Service objects of type LoadBalancer, or with dynamic PersistentVolumes."