Logan
подход отличный. Я последние 2 месяца пытаюсь локализовать возможные риски, чтобы не уничтожить пользовательскую инфраструктуру случайной ошибкой (хотя кластер у меня уже 3 месяца как работает, в общем-то). :)
Dmitry
кроме ютрека особо терять нечего. конфигурации в teamcity меняются редко, sentry больше как лог ошибок не более того. а вообще про бекапы согласен. как раз думал как это сделать до того как все посыпалось
Pavel
бакулу натравите сырые диски срезать и всё тут :) ну если денег много можно акронис
A
@nailgunster, тот же новоразвернутый через kubeadm. Стабильненько падает kube-dns в 1/3 2/3. Может ещё какое-нибудь дополнительное действие было там? :)
Dmitry
когда нода сама уходит в ребут, у меня остается только два подозреваемых - железо или ядро. железо исключаю, т.к. история повторилась на восьми нодах из восьми и на таком же железе рядом стабильно работает CentOS. остается ядро. но чтобы не быть голословным, сейчас жду пока опять крашнется чтобы увидеть лог. там либо будет что-то интересное, либо он просто оборвется в произвольном месте, что скорее всего будет значить kernel panic…
Pavel
у них есть прикол, что если включен их мониторинг, и при этом нода недоступна, то они её ребутят
Dmitry
я мониторинг отключил
Dmitry
знаю эту тему)
Pavel
ну тогда вот https://github.com/coreos/docs/blob/master/os/collecting-crash-logs.md
Dmitry
cпасибо, не знал
Dmitry
но там пусто(
Dmitry
походу железо не поддерживает эту фичу
Dmitry
Since this mechanism is just an abstraction, it depends on hardware support to actually persist the data across reboots. If the hardware support is absent, the pstore will remain empty. хотя On AMD64 machines, pstore is typically backed by the ACPI error record serialization table (ERST).
Dmitry
должно бы быть
Dmitry
нашел на одной ноде
Dmitry
https://pastebin.com/HURRr1tR
Салтыдык
А подскажите плз, если в кластере нода теряет сеть или перезагружается, как заставить поды переезжать на другие ноды по умолчанию?
Салтыдык
что-нибудь почитать или носом тыкнуть
Pavel
не ну малоль для чего :)
Pavel
для бд конечно другие вещи нужны
Khramov
Ребят, а как можно запретить подам доступ к внутренней сети? А то у нас такая проблема, что из пода можно стучаться напрямую к etcd по ip. etcd настроен на другой сети. Нам нужно либо как-то засекьюрить etcd, либо сделать так, чтобы из подов нельзя было до туда достучаться. Подскажте возможные решения
Khramov
У нас etcd кластер поднят на 3 нодах, с сертификатами мучаемся уже 3 день, с ними, почемуто, не поднимается canal нормально. dns под постоянно ребутается.
Khramov
Привет. Ребят, помогите решить проблему, пытаюсь поставить кластер etcd с сертификатами на куб, в итоге все встает, но когда ставлю Network Policy - canal, dns не поднимается, пишет что RUNNING 2/3 . В контейнере kube-dns пишет что не может подключиться к kube-api - https://gist.github.com/25b9e6f058caebf35e0ba5b37c7f9e71 Куб 1.6.6, etcd 3.2.1, поднят кластер из 3 машин, без etcd сертификатов все работает
A
Вот, собственно, тоже, вечно 1/2, 2/3, изредка ready проскакивал.
A
Тоже три ноды.
Vitalii
у нас canal нет, но как я помню в calico можно kube-apiserver как хранилище вместо etcd использовать
ASTASHOFF
товарищи, какие best practices есть для деплоя подов с сервисами, которые будут path/domain-based роутинг выполнять в неймспейсе? вот есть перепиленный nginx, хотелось бы красиво через configmap определить статические конфиг. параметры, и возможно дописывать параметры для индивидуальных vhost'ов. это через annotations делается, если есть такие параметры в конфиг. темплейте? то есть это надо вообще все параметры темплейтезировать? если поставить кратко вопрос - каким образом kind ingress подставляет секции server{} и выносит инклуды с upstream{}'ами?
Dmitry
господа, кто нибудь разбирается в coredump логах ядра? я так понял тут https://pastebin.com/raw/HURRr1tR только второй кусок дампа. к сожалению первого почему то в pstore нет. по этому куску не понять где произошла ошибка?
Dmitry
сделал это на каждой ноде: mount -o remount,kmsg_bytes=100000 /sys/fs/pstore возможно в следующий раз сохранится больше данных
Khramov
у нас canal нет, но как я помню в calico можно kube-apiserver как хранилище вместо etcd использовать
А у вас мультимастер или нет? По идее же kube-apiserver на одной ноде запущен, и если она упадет, то остальные не смогут ничего подтянуть. Для этого у нас кластер etcd, если упадет 1 мастер, то все будет продолжать работать. У нас мультимастер, 3 мастера.
A
@nailgunster, https://hastebin.com/hahabareja
A
Собственно, dashboard тоже в CrashLoopBackOff, и, как понимаю, все беды из-за kube-dns.
ASTASHOFF
Я решал эту задачу через traefik
не важно, что будет. haproxy/linkerd/..., выбираться будет kubernetes.io/ingress.class как я понял. я о менеджменте самого ингресс-сервиса.
ASTASHOFF
https://github.com/kubernetes/ingress/blob/master/controllers/nginx/rootfs/etc/nginx/template/nginx.tmpl
A
Добавил в iptables -A INPUT -i flannel.1 -j ACCEPT -A INPUT -i cni0 -j ACCEPT kube-dns починился. :)
Pavel
Khramov
А что за интерфейс cni0?
Vitalii
А у вас мультимастер или нет? По идее же kube-apiserver на одной ноде запущен, и если она упадет, то остальные не смогут ничего подтянуть. Для этого у нас кластер etcd, если упадет 1 мастер, то все будет продолжать работать. У нас мультимастер, 3 мастера.
Я немного запутался во всех этих мастерах. В идеальном варианте доступ к etcd должен быть только у apiserver. Наверно поэтому flannel, canal, calico умеет работать без etcd (сам не проверял)
A
@mastanggt Моя нуб, моя не знает, какой-то там container network interface, судя по всему. Просто посмотрел, какие есть интерфейсы и добавил те, что похожи на нужные. :)
A
Теперь пытаюсь заставить dashboard работать. Там ведь достаточно kubectl create -f https://git.io/kube-dashboard или всё-таки что-то для rbac нужно прописывать дополнительно?
Maksim
это смотря где)
Denis
flannel в 0.9 вроде начучилась слать данные в аписервер а не в етсд
Да --kube-subnet-mgr: Contact the Kubernetes API for subnet assignment instead of etcd.
Denis
https://github.com/coreos/flannel/blob/master/Documentation/configuration.md
Khramov
image: quay.io/coreos/flannel:v0.7.0 Вот наш
Maksim
хм, значит туплю с версиями уменя вообще акя то древняя стоит..
Maksim
у меня 0.5.3 значит фичу я видел в апдейте дл 0.6
A
Не работает dashboard, просто /ui отваливается по таймауту. Следую https://github.com/kubernetes/dashboard/blob/master/docs/user-guide/troubleshooting.md Там предлагают проверить, проходит ли авторизация вообще, но у меня в принципе kubectl exec test-701078429-s5kca -- curl -k https://10.0.0.1 не завершается. Из-за чего такое вообще может происходить? Адрес подставляю нужный, из get services.
A
@notxcain, имеется в виду подключиться к разным docker-flannel-ds-... и попинговать адреса из flennel.1?
A
Попинговал, всё ходит. :( Разворачивал просто kubeadm, без прибамбасов.
Ivan
попробуй в веб уи указать явно апи сервер: - —apiserver-host=
Denis
ну заходишь на ноду, неважно мастер или воркер, и пингуешь другие по адресу из flannel.1
A
Все пингуют всех. :(
A
Адрес, что у пода kube-apiserver-... на flannel.1? Пробовал. Из kube-apiserver адрес dashboard во flannel.1, кстати, не пингуется.
A
попробуй в веб уи указать явно апи сервер: - —apiserver-host=
A
В общем, между людыми созданными не kubeadm подами связи не было с flannel. :( Пока на weave в итоге. Может кто-нибудь из пользователей kubeadm на досуге опишет список дополнительных манипуляций, при помощи которых удавалось завести flannel?
Logan
В общем, между людыми созданными не kubeadm подами связи не было с flannel. :( Пока на weave в итоге. Может кто-нибудь из пользователей kubeadm на досуге опишет список дополнительных манипуляций, при помощи которых удавалось завести flannel?
Сети в кубере вообще работают очень своеобразно. Например, я не смог запустить weave через kargo - причём сначала он завёлся, а при попытке его перенастроить мгновенно умер
Anonymous
да, ты прав
G72K
А подскажите плз, если в кластере нода теряет сеть или перезагружается, как заставить поды переезжать на другие ноды по умолчанию?
оно потупит, потом будет NodeNotReady (или как-то так), потом еще немного потупит, потом начнется переезд подов с этой проблемной ноды. таймауты наверняка настраиваемы
G72K
ноды в статус NotReady переходит?
Салтыдык
daemonSet'ы в NodeLost уходили, а обычные подки в Unknown
G72K
https://kubernetes.io/docs/concepts/architecture/nodes/ pod-eviction-timeout
Салтыдык
60s выставлял
Салтыдык
есть одно небольшое но. Я не знаю как бы себя вёл кубер на стандартной поставке и сборке через kubeadm
Салтыдык
у меня кластер собран через kubeadm и из него собрал HA на трёх мастерах
Салтыдык
флажки компонентам выставлял по HA-докам кубера, но не уверен что все поставил и правильно ли
G72K
вот еще: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#per-pod-configurable-eviction-behavior-when-there-are-node-problems-alpha-feature
G72K
ну и вот еще по первой ссылке: In versions of Kubernetes prior to 1.5, the node controller would force delete these unreachable pods from the apiserver. However, in 1.5 and higher, the node controller does not force delete pods until it is confirmed that they have stopped running in the cluster. One can see these pods which may be running on an unreachable node as being in the “Terminating” or “Unknown” states. In cases where Kubernetes cannot deduce from the underlying infrastructure if a node has permanently left a cluster, the cluster administrator may need to delete the node object by hand. Deleting the node object from Kubernetes causes all the Pod objects running on it to be deleted from the apiserver, freeing up their names.