Салтыдык
я вот и сам хочу спросить, слышал, что такое используется
Салтыдык
меня интересует обновление кластера на бареметалах
Салтыдык
понятно, что вручную всегда можно сделать. Ансиблом вроде тоже тривиально. Мой кластер поднят через kubeadm + напильник = HA. Но kubeadm всё равно страшно использовать для обновлений
Anton
так попробуй на стенде сначала =)
Anton
предположу что тебе придется сделать - напильник, вернуть все к состоянию, которое знакомо kubeadm, апдейтить, и + напильник
Pavel
Господа, с чего начать переход со сворма на кубер? Исходные данные - сворм из 10 машин, 3 из них мастеры (менее нагруженные, но на них тоже по одному-два докер образа крутится)
Полагаю, что начать следует с поднятия etcd кластера на бывших мастер-нодах. После поднять overlay сетку, flannel видится самым распространённым решением. Адепты кубера, подскажите плз, на верном ли я пути?
Pavel
Anton
я думаю не очень идея смешивать
Anton
поскольку докер точно придется из swarm выводить, лучше все с нуля начать
Pavel
Что именно?
Pavel
Докер то точно из сморма будет выведен
Anton
k8s & swarm, flannel & docker overlay
Pavel
Разве не вариант поднимать потихоньку кубер, на сворме оно пока крутится
Pavel
Потом разом переключить
Pavel
Даунтайма нельзя допустить. Понятно, что без него совсем не получится, но надо обеспечить самый минимальный хотя бы
Pavel
Посему и собрался заводить параллельно
Anton
я думаю уже на этапе вывода докера из swarm начнется даунтайм
Anton
потому что после etcd нужно запускать kubelet, который должен будет запустить еще свои компоненты в контейнерах. и не думаю что это получится при живом swarm
Pavel
ну там попроще, прибить все стеки, все сервисы и прочее подобное, прибить сетки, прибить ноды и сам сворм. Это всё сделается чуть ли не в одну строчку и весьма быстро К этому времени кубер желательно чтобы был хотя бы поднят, мастеры и ноды руг о друге знали и были готовы к поднятию подов
Anton
не выйдет так думаю
Pavel
Принято, спасибо. Буду выбивать согласования на даунтайм. А по подходу - всё ли верно? etcd-кластер, flannel сначала?
Anton
я вообще негативщик. я думаю на работающем сворме kubelet ничего не запустит
Pavel
тогда какой самый нормальный подход в вашем понимании? Прибиваем сворм (полностью) - далее что делать?
Anton
решаем как будем деплоить к8с
Anton
kubespray для своего железа, или kubeadm, или вручную
Pavel
Вручную
Pavel
kubeadm бета, и не совсем понятно что он делает внутри. Плюс нет гарантий что без косяков обойдётся
Салтыдык
kubeadm бета, и не совсем понятно что он делает внутри. Плюс нет гарантий что без косяков обойдётся
kubeadm вполне норм утилита для поднятия, но одного мастера + много воркеров
Салтыдык
остальное напильником
Pavel
kubespray для своего железа, или kubeadm, или вручную
вот кстати в сторону kubespray ещё не сильно смотрел
Aleksey
решаем как будем деплоить к8с
kismatic смотрите в первую очередь. Там тоже ансибл под капотом как и в кубеспрей, но на порядок удобнее продуман
Oleg
kubespray норм
Oleg
думаю написать статейку как в 10 команд поднять baremetal кластер с использованием kubespray и демо-приложение с letsencrypt
Oleg
Ну это без тонкостей. Для быстрого старта в самый раз. То, чего мне не хватало две недели назад
Aleksey
https://dev-ops-notes.ru/%D1%83%D1%87%D0%B5%D0%B1%D0%BD%D0%B8%D0%BA-kubernetes/
Oleg
это 1/3. А еще Ingress, а еще letsencrypt
Aleksey
это 1/3. А еще Ingress, а еще letsencrypt
https://dev-ops-notes.ru/kubernetes/kubernetes-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-ingress/
Pavel
letsencrypt для чего? https на внешку?
Aleksey
letsencrypt - спорный вопрос
Aleksey
для входа да, остально проще своими сертами мутить
Oleg
прочитал, у меня несколько по-другому. И не факт что у меня правильно
Oleg
letsencrypt - спорный вопрос
а чего спорить? лично у меня нет желания покупать Wildcard SSL за >$ 334.95 /год для различных севисов на своем домене - от блога и своих проектов до owncloud
Aleksey
а чего спорить? лично у меня нет желания покупать Wildcard SSL за >$ 334.95 /год для различных севисов на своем домене - от блога и своих проектов до owncloud
я прекрасно вас понимаю - у самого более сотнее доменов на letsencrypt с автоматическим обновлением через jenkins. Речь про то, что тянуть letsencrypt для etcd и master - оверхед в подовляющем большинстве случаев.
Oleg
да. кстати автообновление letencrypt я не проверял. Но могу сказать что в моем самосборе а-ля Ingress-controler для Docker Swarm автообновление letsencrypt не работало. Как только подходил срок приходилось стопорить контейнера и перезапускать чтобы сертификаты обновлились
Aleksey
почему? Если собственного CA нету
ну о том речь - поднять его для кубера - отличная затея. Гораздо лучше, нежели пытаться выехать на сервисе letsencrypt. Ну мы накушались с обновлением, я тоже не на ровном месте полемику развожу. Ждём wildcard от letsencypt - в 2018 обещали
Aleksey
Aleksey
поднимать CA только ради того, чтобы поднять CA - идея очень плохая
Kubernetes hard way - вроде с сертов и начинается, и это правильно, поскольку на понимание этого уходит много времени. В конце концов - просто точка зрения.
Ivan
А кто нибудь уже поднимал на CoreOS кубернет 1.8 ? А то у меня что-то не поднимается, не пойму почему. kubelet поднимает паузные контейнеры "gcr.io/google_containers/pause-amd64:3.0 "/pause" k8s_POD_kube-proxy-10.1.29.12_kube-system_30c721be7d28f79fadf551ad172b9927_0" И дальше тишина - основные контейнеры не поднимаются((
Pavel
Господа, пытаюсь делать kubeadm init в сислоге Oct 30 17:12:00 gmuweb-srv kubelet: W1030 17:12:00.767469 51660 cni.go:196] Unable to update cni config: No networks found in /etc/cni/net.d
Pavel
Что ему не хватает? какой нить flannel просит?
Andrew
для летсенкрипт есть кубе лего с автообновлением и плюхами
Anton
ну епт
Anton
а документацию почитать?
Anton
https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/
Anton
после инита на мастере нужно сеть втащить
Pavel
Так инит не проходит
Pavel
Я в этой доке и сижу
Anton
там еще открыв инфу по calico, можно увидеть ключ pod-network-cidr
Anton
хочешь сказать он тебе не выдал в конце kubeadm join --token <token> <master-ip>:<master-port> --discovery-token-ca-cert-hash sha256:<hash>
Anton
после init kubelet еще не может начать работу, сети нет
Anton
хотя нет, гоню. он уже должен запустить apiserver точно
Anton
и etcd
Ivan
Подскажите пожалуйста, как изменить путь к образу гиперкуба на локальный реджестри для кублета? делаю вот по этому мануалу: https://coreos.com/kubernetes/docs/latest/deploy-master.html Добавил это: Environment=KUBELET_IMAGE_TAG={{.hyperkube_version}} Environment=KUBELET_IMAGE_URL=docker://{{.insecure_registry}}/k8s/hyperkube В итоге в рокете гиперкуб стартует, но при попытке поднять аписервер (и прочие компоненты) в докере - ошибка "Back-off pulling image \"quay.io/coreos/hyperkube:1.8.1\" и как видно из ошибки - лезет опять наружу...
Pavel
там еще открыв инфу по calico, можно увидеть ключ pod-network-cidr
что с ключом, что без - kubeadm init не проходит
Pavel
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10255/healthz' failed with error: Get http://localhost:10255/healthz: dial tcp [::1]:10255: getsockopt: connection refused.
Pavel
Стопицот ошибок что он локально ломиться пытается
Anton
выхлоп у kubeadm init какой?
Pavel
Полный вывод кинуть?
Anton
iptables не блокирует общение?
Pavel
блин, да не должен
Anton
порт 10255 должен кубелет открыть