G72K
они переезжали с аннотаций на ключи полноценные, может переименовали чего.
Logan
root@app1 ~ # kubectl describe storageclass slow Name: slow IsDefaultClass: No Annotations: <none> Provisioner: kubernetes.io/rbd Parameters: adminId=admin,adminSecretName=ceph-secret-admin,adminSecretNamespace=kube-system,monitors=172.16.0.1:6789,172.16.0.2:6789,172.16.0.3:6789,pool=kube,userId=kube,userSecretName=ceph-secret-user Events: <none>
Igor
вообще динамический провизионинг работает если rbd утилита присутствует там, где apiserver
Logan
она присутсвует, это точно
Igor
apiserver запущен как сервис на хосте или в статическом поде?
Logan
сервис.
Igor
тогда вроде все верно, но я бы сначала протестировал, не динамический, а простой провизионинг
Logan
он тоже не работает, но иначе. В какой момент должен создаваться rbd image? на pv, claim или при утилизации?
Igor
смотреть так же полезно с помощью describe сам claim
Igor
kind: PersistentVolume apiVersion: v1 metadata: name: rbd-prometheus-volume labels: kubernetes.io/cluster-service: "true" spec: capacity: storage: 8Gi accessModes: - ReadWriteOnce rbd: monitors: {% for item in k8s_storage_hosts %} - {{ item }}:{{ ceph_monitor_port }} {% endfor %} pool: rbd image: prometheus user: admin keyring: /etc/ceph/ceph.client.admin.keyring secretRef: name: ceph-secret fsType: xfs readOnly: false persistentVolumeReclaimPolicy: {{ k8s_volume_reclaim_policy }} ---
Igor
вот намирмер для такого имидж создается заранее и форматируется xfs
Igor
rbd create prometheus --size 8G --pool rbd --image-feature layering rbd map prometheus mkfs.xfs /dev/rbd/rbd/prometheus rbd unmap /dev/rbd/rbd/prometheus
Logan
вопрос в том, можно ли не создавать и форматировать имидж заранее? сам куб не будет это делать?
Igor
в не динамическом провижионинге точно не будет
Igor
но убедиться - проверить что все работает лучше на нём
Igor
значит надо создать для тестов и отформатировать, потом смотреть что с динамикой
Igor
Извиняюсь, мне нужно идти, надеюсь чем-то помог :)
M
вопрос в том, можно ли не создавать и форматировать имидж заранее? сам куб не будет это делать?
по идее должен сам при создании pvc, но там сейчас есть проблема, если версия ceph более или менее свежая она выдает предупреждение при попытке создать rbd c image-format=1, а кубер считает это ошибкой создания. image-format 2 пока не поддерживается, но уже есть нужный патч, который пока не вошел ни в один из релиов
M
как то так
M
https://github.com/kubernetes/kubernetes/commit/e4ec433470bb8d23e750a477d22657e3a4a53b83
Алексей
https://habrahabr.ru/company/flant/blog/326414/
Zon
Я пытаюсь из CI напрямую helm использовать, но не понятно, как безопасно к tiller серверу подключиться. Есть идеи? Кто-то пытался?
Zon
Ключевой момент - не использовать k8s credentials
Dmitry
ingress для него c TLS
Zon
И TLS клиент серт?
Dmitry
да, пусть будет на стороне CI. Мы жеж cfssl по такой же съеме пилили)
Zon
Это я знаю, у меня более занятная ситуация - у cloudbuilder только один убогий токен, который даёт доступ только к реджистри и гит репам. IAM не работает, доступ к остальному не выдает. думаю как обойти.
Zon
хранить client-cert негде
Anonymous
оффтоп: внезапно стал падать nginx-ingress без ошибок - I0413 14:54:48.426355 1 main.go:145] Handled quit, awaiting pod deletion
Anonymous
у кого встречалось?
Anonymous
а не, вижу ошибку: could not build server_names_hash, you should increase server_names_hash_bucket_size: 64
Anonymous
в задницу ингрессы короче... лучше самому конфигурацию руками собирать
Anonymous
есть у кого рецепты простые как lego/letsencrypt прикрутить к ванильному nginx?
Anton
http://doam.ru/https_in_nginx_using_letsencrypt/
Logan
есть у кого рецепты простые как lego/letsencrypt прикрутить к ванильному nginx?
а что там может быть сложного? Нет, я правда не понимаю
Logan
вот в автоматическом режиме nginx получать их не умеет (но это, по-моему, только traefik умеет, и то я не тестировал еще)
Anonymous
Ну ясен пень автоматически, не руками ж
Anonymous
Во мне тут подсказали
Anonymous
https://github.com/ditointernet/nginx-ssl-proxy/tree/beta
Etki
я отдаленно знаю, о чем речь kube-lego только здесь слышал), но в общем-то там все ссводится к записать в post-renew-hook сертбота команду на релоад nginx
Logan
Во мне тут подсказали
а loadbalancer на nginx уже научился работать с хостнеймами? У меня BMR, сервисов десятки - я не напасусь адресов
Dmitry
@vkfont ты можешь сам настроить nginx-ingress используя темплейт
Dmitry
Dmitry
kubectl --namespace ingress create configmap nginx-template --from-file=nginx.tmpl
Dmitry
volumeMounts: - mountPath: /etc/nginx/template name: nginx-template-volume readOnly: true volumes: - name: nginx-template-volume configMap: name: nginx-template items: - key: nginx.tmpl path: nginx.tmpl
Dmitry
Ребят, а есть кто-нибудь, кто терраформом поднимает кубик? Или кто-нибудь знает хороший канал о терраформе
Михаил
Мы умеем, спроси @takama
А чего вас в @ceph_ru нет?)
Stanislav
я там был
Stanislav
там скушненько
Михаил
Ну, хозяин барин)
Anonymous
если кто столкнется вдруг с тем что nginx ingress начнет падать из-за большого количества доменов, и захочет как я починить увеличив размер хэша - имейте ввиду что названия в nginx и в nginx ingress бывает не совпадают из-за опечаток разработчиков :) https://github.com/nginxinc/kubernetes-ingress/issues/34#issuecomment-294088974
Stanislav
server_names_hash_bucket_size - из-за длинного имени домена тоже может падать
Viacheslav
Сэры, а есть где-нибудь хороший самоучитель для k8s? А то меня спрашивают и простой поиск по гуглу только на официальный гайд выводит, а там по большей части "трям-брям-и оно работает". Будет супер, если еще и на великом и могучем.
Viacheslav
Хм, а вот ткнуть в какие-нить онлайн-сборки не догадался. ок, пошлю, пусть ищут :)
G72K
Я пытаюсь из CI напрямую helm использовать, но не понятно, как безопасно к tiller серверу подключиться. Есть идеи? Кто-то пытался?
Мы впилили tiller в нашу деплой тулзу, теперь и патчить легко и привилегии дропаются до минимальных для конкретного деплоя
G72K
а не, вижу ошибку: could not build server_names_hash, you should increase server_names_hash_bucket_size: 64
nginx-ingres конфигурится конфигмапом, точно ключ не скажу, смотри в темплейте nginx.conf
Sokolov
Посоветуйте дельную инфу или статьи по кубернетосу. Не знаю что это, по работе нужно понять.
Roman
Посоветуйте дельную инфу или статьи по кубернетосу. Не знаю что это, по работе нужно понять.
в офф доке разжевано. там еще есть туториалы и видюшки от гугла
G72K
а loadbalancer на nginx уже научился работать с хостнеймами? У меня BMR, сервисов десятки - я не напасусь адресов
Да, мы пользуем. В днс создаем '*.domain' который указывает на ингрес хосты. Приложения затем в своем Ingress пропиывают 'host: appname.domain'
Zon
Тащить из vault
Насколько я помню волту тоже нужен токен передать
G72K
Насколько я помню волту тоже нужен токен передать
Как аутенфицироваться в vault это целая история. Нам повезло - у нас AWS, п значит все простл
Zon
Как аутенфицироваться в vault это целая история. Нам повезло - у нас AWS, п значит все простл
Да, история про курицу и яйцо:) пока сделал инкластер дрон, как контейнер билдер починят буду его использовать
Andrew
Не могу понять, как поднять на своем железе сервис с типом LoadBalancer. Везде написано что это работает только в облаках, но не верю, что нет способа поднять у себя аналогично настраиваемый nginx+. Кто копал в эту сторону, просветите?
G72K
А сервисы делайте хоть headless потом, все равно из них контроллер будет брать только живые endpoints
Andrew
ясно. я мечтал так чтоб указал тип LoadBalancer и оно раз и создалось само)
G72K
Ну Nginx ingress контроллер примерно такой же по уровню удобства. Создали один раз, выставили наружу, а потом приложения в дополнение к Service, будут еще и Ingress создавать, не сильно значимое усложнение
Andrew
в принципе да. а, вот ещё какой момент непонятен, как сделать это отказоустойчиво. если ингресс контроллер один, то все ломается когда его нода падает. а если два или больше, то имеем несколько ip адресов и необходимость балансировать эти адреса снаружи. Готовить внешние nginx+ или F5 я умею, но возникает ещё один уровень балансировки.
Maksim
ну вопервых rs и контроллер по liveness пробе запустят под на другой ноде в случае падения ноды с контроллером
Maksim
то есть даун тайм измеряется минутами...(особенно если предварительно пульнуть его )
Maksim
ну и кто запрещает делать dns round robin ?
Maksim
и иметь несколько ip на домен?
Maksim
ещё можно делать через iptables перенаправление...
Andrew
запустит, да, но это время, а хочется чтоб они в параллель работали. dns round robin не хотелось бы, т.к. оно будет попеременно отдавать fail и success)
Maksim
можно оторвать ingress-controller от кубера и поставить его в докере...