
Evgenii
06.07.2018
07:55:23
просто погугли kubernetes cephfs provisioner

Vova
06.07.2018
07:56:59
---
Привет всем!
Купил билет на тренинг по Кубернетису в Киеве, но планы поменялись и поехать туда не получается
https://www.eventbrite.com/e/kubernetes-workshop-tickets-47031971894
Если есть желающие, пишите. Продам по себестоимости.


Andrey
06.07.2018
07:59:37
Всем привет!
Есть вопрос к знатокам ))
На тему PersistentVolume (pv)
Как мне привязать конкретный PVC к конкретному PV ?
(либо как то иначе организовать процесс?)
У меня есть кластер ceph, в котором живёт CephFS. (она, как известно, может быть только одна).
Но в ней надо хнарить данные разных проектов, поэтому в ней созданы папки для этих проектов.
Далее в кубе я создаю несколько PV (в каждом монтирую нужную папку).
Далее мне надо как то ассоциировать PVC в конкретном проекте к нужному PV.
Единственную связку, которую я нашёл в мануале - это StorageClass.
Но для CephFS не существует StorageClass (в апи нет такого provisioner-а).
Так легко же. PVC могут и без StorageClass работать.
selector:
matchLabels:
release: "stable"
matchExpressions:
- {key: environment, operator: In, values: [dev]}
Добавь вот эту штуку в PVC, определив правильный селектор. И лейблы правильные на PV проставь, чтобы PVC к нему привязался. И всё, в общем-то.

Google

Ivan
06.07.2018
08:01:32
Спасибо!

Andrey
06.07.2018
08:02:33
StorageClass нужен для dynamic provisioning. Чтобы PV сами появлялись, грубо говоря. Иначе, их надо вручную создавать корректно, чуть больше делать.

Ivan
06.07.2018
08:07:04
да, но настройки подключения к ceph есть и в StorageClass и в PersisstentVolume.
мне не понятно, как разруливать мою ситуацию с разными папками.
получается, надо на каждую делать отдельный StorageClass.
Либо тоже на каждую папку делать отдельный PersisstentVolume и привязывать к PVC через лейблы.
второй вариант мне пока кажется разумнее ))

Sergey
06.07.2018
08:10:27
Господа, подскажите мне, сейчас кошерный метод деплоя прометеуса в кластер - это Prometheus Operator?

Andor
06.07.2018
08:11:40
ну он вроде норм, но не так чтобы самый кошерный
обычный прометей тоже ок

Sergey
06.07.2018
08:11:49

Ivan
06.07.2018
08:12:07
смотря какие задачи

Andor
06.07.2018
08:12:11
да обычный прометей тоже работает без особых проблем

Ivan
06.07.2018
08:12:41
если промежуточный, который собирает с одного кластера и отправляет на вышестоящий - то обычный

Sergey
06.07.2018
08:13:03
смотря какие задачи
задача: в кластере есть несколько десятков почти однотипных неймспейсов, все из которых волатильные (это девелоперские стенды). нужно сделать удобный и простой способ сбора метрик из каждого неймспейса, чтобы разработчики могли это делать самостоятельно
я вижу два варианта:
1) прометеус в каждый неймспейс
2) прометеус-оператор

Ivan
06.07.2018
08:13:42
первый вариант мне кажется странным

Google

Andor
06.07.2018
08:13:43
> чтобы разработчики могли это делать самостоятельно
бери оператор

Sergey
06.07.2018
08:13:48

Ivan
06.07.2018
08:13:56
а чем плох третий вариант - один прометей на весь кластер?

Sergey
06.07.2018
08:14:33

Ivan
06.07.2018
08:14:56
> чтобы разработчики могли это делать самостоятельно
делать самостоятельно что?

Sergey
06.07.2018
08:15:40

Ivan
06.07.2018
08:15:42

Sergey
06.07.2018
08:16:09
ну релейблинг и/или игнор в графане не появятся... хотя можно извернуться

Ivan
06.07.2018
08:17:21
а на одном прометее они не уживутся? попортят друг другу конфиги?

Sergey
06.07.2018
08:17:37
хз, я пока не пробовал их туда уживать.
потому и спрашиваю, в которую сторону копать :)

Ivan
06.07.2018
08:17:50
а сейчас как?

Andrey
06.07.2018
08:18:20

Sergey
06.07.2018
08:19:35

Ivan
06.07.2018
08:20:08
тут ещё человеческий фактор - как организовать.
если разрабы готовы ковыряться сами с релейблом и алертами - видимо есть смысл дать в каждую команду свой прометей и пускай играются сами ))

Sergey
06.07.2018
08:20:27
не, тут не команда, тут каждая отдельная голова
ну ладно, пойду окопаю оператор

Ivan
06.07.2018
08:20:46
тогда каждой голове ))

Виталий
06.07.2018
08:31:26
Простите за оффтоп, но очень накипело ?
Напишите в личку аналоги Skype которые вы используете для корпоративного общения? Важно, чтобы там были групповые чаты и звонки, клиенты под macos, win, android, ios.

Alexey
06.07.2018
08:32:26
zoom

Google

Ivan
06.07.2018
08:35:29
тоже зум ))
но он скорее для видео.
а тексты - слак

Anton
06.07.2018
08:36:09
Hangouts, bluejeans например

Dmitry
06.07.2018
08:36:58

Salem
06.07.2018
08:37:57
slack?
слак же умеет звонки

Oleg
06.07.2018
08:41:58
slack+zoom

Игорь
06.07.2018
08:42:06

Vadim
06.07.2018
08:43:19
synapse + riot + jitsi

Виталий
06.07.2018
08:43:41
странно, что нет единого инструмента ?

Игорь
06.07.2018
09:15:13

Anton
06.07.2018
09:17:25
Привет всем. Подскажите, кто-то сталкивался с TX overruns\ errors на tunl0 интефейсе calico 3.1.3 +- по одному в минуту http://take.ms/frGnD http://take.ms/xqNSL ?

Vitaliy
06.07.2018
10:00:32
а если вернуться к топику скайпа vs ...
zoom выглядит ок за исключением что в бесплатной версии 40мин на группу. есть что-то без этого лимита? моя жадный.

Andrey
06.07.2018
10:07:58
Тогда мне кажется менять надо не скайп на зум, а нечто иное)

Alexey
06.07.2018
10:13:12
$14.99 в месяц же не много. хостинг/sentry/datadog/browserstack и тп стоят дороже.
Более менее хороший специалист стоит больше 1к/ч, т.е. это цена 1 часа специалиста. Если так считать, то очень адекватная цена. 1месяц - 1человекочас

Egor
06.07.2018
10:20:03
протерял вывод init'а с join'ом. Пытаюсь создать новый токен
# kubeadm token create 'hmqn46.bu87xhcl6fo6a7b8' --print-join-command --ttl=0
I0706 12:15:50.958235 7498 feature_gate.go:230] feature gates: &{map[]}
таймаут
timed out waiting for the condition
Я че-то не так делаю?

Alexey
06.07.2018
10:22:13
kubeadm token create —print-join-command
должно работать

Egor
06.07.2018
10:25:54

Google

Egor
06.07.2018
10:26:23
я конечно могу kubeadm reset сделать, это игрушечная площадка. но хотелось бы понять

Alexey
06.07.2018
10:26:24
6443 порт открыт?

Egor
06.07.2018
10:26:32
ща в хостс загляну

Alexey
06.07.2018
10:27:06
у меня только идеи, что порт закрыт или ip не тот у мастера публичный

Egor
06.07.2018
10:27:08
в хостс лишнего нет, в iptables тоже только кубовые правила

Alexey
06.07.2018
10:28:04
curl masterip:6443
что-то даёт?

Egor
06.07.2018
10:28:30
пустую строку

M
06.07.2018
10:30:27
в кубернетесе есть рестрикшены на длину имен неймспейсов ?

Alexey
06.07.2018
10:31:16
пустую строку
kubectl config view | grep server
там корректный ip?

Admin
ERROR: S client not available

Egor
06.07.2018
10:32:13
да, верный. а пустая строка, потому что я https забыл сунуть курлу
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {
},
"status": "Failure",
"message": "forbidden: User \"system:anonymous\" cannot get path \"/\"",
"reason": "Forbidden",
"details": {
},
"code": 403
}

Vitaliy
06.07.2018
10:51:15
бабушки внуков хотят увидеть и тп

Banschikov
06.07.2018
11:16:44
Друзья посоветуйте, как решить вопрос. Есть openstack. Как сделать так чтобы для для сервиса LoadBalancer выделялся постоянный ip? Выделил себе айпишник из пула в Horizon, но не могу в сервисе указать чтобы он его использовал как externalIP
Если просто делаю сервси LoadBalancer, то статический айпишник открывается, но при удалении сервиса он освобождается

Egor
06.07.2018
11:34:56
у меня всё мучения с ingress-nginx. по совету отсюда сделал nginx с HostNetwork: true без service-nodeport
теперь в логе контейнера валится
W0706 11:34:05.899979 7 queue.go:130] requeuing &ObjectMeta{Name:sync status,GenerateName:,Namespace:,SelfLink:,UID:,ResourceVersion:,Generation:0,CreationTimestamp:0001-01-01 00:00:00 +0000 UTC,DeletionTimestamp:<nil>,DeletionGracePeriodSeconds:nil,Labels:map[string]string{},Annotations:map[string]string{},OwnerReferences:[],Finalizers:[],ClusterName:,Initializers:nil,}, err services "ingress-nginx" not found
кто его искать пытается?

Alexey
06.07.2018
11:37:49
cat ingress-values.yaml
name: nginx-ingress
namespace: kube-system
rbac:
create: true
controller:
kind: DaemonSet
daemonset:
useHostPort: true
helm install --namespace kube-system --name nginx-ingress stable/nginx-ingress -f ingress-values.yaml
По ошибке ничего не скажу, но поднимал так, сразу все стало.

Egor
06.07.2018
11:39:32
это в клауде или на baremetal?

Google

Egor
06.07.2018
11:40:09
я до изучения хелма ещё не дошёл. может правда через него и попробовать...
а, раз hostPort: true, значит метал

Alexey
06.07.2018
11:41:21
baremetal
там без helm нужно обдуманно написать 4-6 yml, на начальном этапе я не осилил, а раз сразу заработало с helm, то пока не трогаю.

Egor
06.07.2018
12:04:55
эх, сам хелм установить тоже мозги нужны, оказалось

Nata
06.07.2018
12:13:31
Сегодня проверила таки по разным кейсам nifi (jvm + write heavy) проверила чистый docker + vfs/zfs/overlay, проверила использование heapsize, вобщем лучше всего в такой ситуации по производительности оказался overlay (zfs на сайте докера рекомендовался для write-heavy, но по факту производительность (создание очень мелких файликов + запись в логи) оказалась примерно на 20% ниже чем на overlay. Java 8 (151) ведет себя вполне хорошо с ограниченными xmx. По факту оказалось, что еще и я в одном месте накосячила (для тех, кто в теме nifi - backpressure ? ). В итоге с учетом исправления бага, а также overlay & flannel производительность отличается на 25% (что уже совсем не так плохо)

Andor
06.07.2018
12:14:28
статью пиши с графиками и полной раскладкой
ты hostpath попробуй ещё, без оверлейфс совсем

Andrey
06.07.2018
12:17:03

Gleb
06.07.2018
12:20:13

Nata
06.07.2018
12:24:22
hostpath дает 700к файлов против 900к живых, впринципе лучшее.

Gleb
06.07.2018
12:26:44
ну зфс никогда быстрым не был если в него всё что не рекомендуется не напихать и не потюнить. Так что вполне на правду похожу по замерам

Nata
06.07.2018
12:29:06
ну мое знакомство с zfs ограничилось статьей на сайте докера, потому ничего не тюнила.

Andor
06.07.2018
12:29:38
hostpath с какой фс?

Nata
06.07.2018
12:30:46
ext4

Айбелив
06.07.2018
12:58:30

Игорь
06.07.2018
12:59:09
https://flant.github.io/dapp/index.html
https://github.com/flant/dapp

Alexey
06.07.2018
13:00:40

Игорь
06.07.2018
13:01:50
там прямо можно указать при изменении каких файлов какую часть образа собирать. в куче вариантов.
кстати, есть не только ruby, но и ansible