Салтыдык
я вот и сам хочу спросить, слышал, что такое используется
Салтыдык
меня интересует обновление кластера на бареметалах
Салтыдык
понятно, что вручную всегда можно сделать. Ансиблом вроде тоже тривиально.
Мой кластер поднят через kubeadm + напильник = HA. Но kubeadm всё равно страшно использовать для обновлений
Anton
так попробуй на стенде сначала =)
Anton
предположу что тебе придется сделать - напильник, вернуть все к состоянию, которое знакомо kubeadm, апдейтить, и + напильник
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 бета, и не совсем понятно что он делает внутри. Плюс нет гарантий что без косяков обойдётся
Салтыдык
Салтыдык
остальное напильником
Aleksey
решаем как будем деплоить к8с
kismatic смотрите в первую очередь. Там тоже ансибл под капотом как и в кубеспрей, но на порядок удобнее продуман
Pavel
Oleg
kubespray норм
Oleg
думаю написать статейку как в 10 команд поднять baremetal кластер с использованием kubespray и демо-приложение с letsencrypt
Logan
Pavel
Oleg
Ну это без тонкостей. Для быстрого старта в самый раз. То, чего мне не хватало две недели назад
Aleksey
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
Pavel
letsencrypt для чего? https на внешку?
Aleksey
letsencrypt - спорный вопрос
Aleksey
для входа да, остально проще своими сертами мутить
Oleg
прочитал, у меня несколько по-другому. И не факт что у меня правильно
Oleg
Oleg
letsencrypt - спорный вопрос
а чего спорить? лично у меня нет желания покупать Wildcard SSL за >$ 334.95 /год для различных севисов на своем домене - от блога и своих проектов до owncloud
Oleg
да. кстати автообновление letencrypt я не проверял. Но могу сказать что в моем самосборе а-ля Ingress-controler для Docker Swarm автообновление letsencrypt не работало. Как только подходил срок приходилось стопорить контейнера и перезапускать чтобы сертификаты обновлились
Logan
Aleksey
почему? Если собственного CA нету
ну о том речь - поднять его для кубера - отличная затея. Гораздо лучше, нежели пытаться выехать на сервисе letsencrypt. Ну мы накушались с обновлением, я тоже не на ровном месте полемику развожу. Ждём wildcard от letsencypt - в 2018 обещали
Aleksey
Logan
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
для летсенкрипт есть кубе лего с автообновлением и плюхами
Pavel
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
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
Pavel
Полный вывод кинуть?
Anton
iptables не блокирует общение?
Pavel
блин, да не должен
Anton
порт 10255 должен кубелет открыть