Etki
ровно так же, как и в любом другом кластере
Etki
Если большинством в этом случае считается один противоположный узел, то там возможна ситуация, когда они оба выберутся и потом один или оба уйдут на перевыборы, но никаких нарушений консистентности это за собой не влечет. Если большинство - это оба узла, то могут быть затыки с перевыборами, но там прямо в white paper рекомендуется рандомизировать время выборов, чтобы максимально разделить возможные одновременные запросы на выборы, строго говоря неудачные выборы могут быть и в кластере на 3+ участников, когда никто не набирает большинства.
Vladyslav
Можно ли в kops передать log-driver gelf? Чтобы не править настройки докер демона руками
Dmitry
https://coreos.com/etcd/docs/latest/v2/admin_guide.html#optimal-cluster-size
Etki
они не начинают голосование ровно в один момент и не получают ответы ровно в один момент
Dmitry
они не начинают голосование ровно в один момент и не получают ответы ровно в один момент
Я в курсе, что задержка рандомная) сейчас соберу лабу доя теста
Etki
Если к кандидату с term = N приходит запрос на голосование с term = M > N, он отказывается от своей кандидатуры и голосует за кандидата с term = M, что должно рано или поздно произойти, т.к. при каждом неудачном раунде кандидаты увеличивают свой term.
Dmitrii
Продолжая нубские вопросы - а кто какую сеть использует на bare-metal кластере? Там чего-то большой выбор. flannel, weave etc.
G72K
кстати.. с если запустить apiserver в единственном экземпляре внтури куба, то это и будет HA
Нет, не будет. Если apiserver умрет то некому будет сказать kubelet что надо новый под запустить
G72K
Продолжая нубские вопросы - а кто какую сеть использует на bare-metal кластере? Там чего-то большой выбор. flannel, weave etc.
Разворачивайте CoreOS по pxeboot для ос , докера и kubelet, все остальное внутри кластера self hosted (это когда ключевые компоненты скажем apiserver одновременно и поды своего же кластера) при помощи bootkube.
G72K
Можете глянуть typhoon как основу, там конечно мерзкий terraform, но все понятно и можно легко его выкинуть , делать то же самое руками,ансиблом, башем или чем угодно другим
Dmitrii
У меня тут пока полторы железки на поиграться, но спасибо за советы, запомню.
Алексей
Коллеги подскажите, в ингрессе возможно настроить редирект c одного домена (хоста( на другой? например в ингрессе в spec.rules.host описано 2 хоста: - dom.ru - dom.net Я хочу чтобы всё что прилетало на dom.net редиректилось на dom.ru Что то не смог с ходу найти такой возможности.
Sergey
https://www.nginx.com/blog/nginmesh-nginx-as-a-proxy-in-an-istio-service-mesh/?utm_campaign=microservices&utm_medium=blog&utm_source=linkedin-soc&utm_content=transcript
Alex
Коллеги, а кто использует logstash для парсинга логов подов? Есть у кого фильтры или документация как обрабатывать JSON который получается на выходе из подов?
Etki
обрабатывать для чего?
Alex
обрабатывать для чего?
эластик, далее кибана
Alex
у меня что-то такое в message получается - {"log":"\u001b[39m[DEBUG]\u001b[0;39m \u001b[36mConnection\u001b[0;39m - Connection[/172.16.4.254:9042-1, inFlight=0, closed=false] heartbeat query succeeded\n","stream":"stdout","time":"2017-12-13T06:07:07.810234683Z"}
Etki
если у вас хранилище без определенной структуры, то это вы (а не мы) знаете, как надо сделать для вас
Serega
Коллеги, а кто использует logstash для парсинга логов подов? Есть у кого фильтры или документация как обрабатывать JSON который получается на выходе из подов?
очень понравился fluentbit ( http://fluentbit.io/documentation/current/kubernetes/ ), интеграция с k8s замечательная, умеет даже аннотации вытаскивать и логировать. Как по мне то лучше чем filebeat. соотвественно в еластик все ложиться структурированно. Ну и логстеш можно выкинуть в пользу fluentd.
Denis
Привет, а кто использует helm, вы tiller ставите в каждый namespace, или у вас он один? Как удобнее использовать в связке с rbac?
Igor
Если много проектов и у каждого свои ответсвенные, тогда разделяем проекты по namespaces и в каждом свой tiller.
Dmytro
привет всем. Может ктото сталкивался. У меня работает ingress nginx и перед ним keepalived. Access логи ндиникса пишут remove_addr внутриний ip 10.2.5.0. не могу понять кто виноват в этом и где рыть:( Может кто-то знает как узнать где привязан этот ip, на какой этапе он вставляет его?
Terry
сорян
Sergey
#whois ▫️Какой у вас проект или где работаете? - в Сбертехе, проекты на кубернетсе - личные ▫️В чём вы специалист? - CTO/BE Developer/DevOps (AWS, K8s, CircleCI и прочий модномолодежный клауд) ▫️Чем можете быть интересны или полезны сообществу? - могу что-нибудь подсказать по вышеперечисленным темам ▫️Чем интересно сообщество вам? - экспертное мнение ▫️Откуда вы? - МСК ▫️Как узнали про группу? - devops_jobs
Sergey
Ребят, есть пара вопросов: во-первых, есть уже работающий кластер задеплоенный с помощью kops в своей VPC - как минимальными потерями изменить CIDR у этой VPC (амазон это не позволяет делать, только через удаление VPC). не хочется передеплоивать все секреты/сервисы по новой
Sergey
Второй - кто что использует для мониторинга кластера, хочется увидеть даш с количеством падений/рестартов сервисов. Вроде как есть какой-то плагин в телеграфе, но не уверен, что он отдаст мне нужные метрики
Sergey
И к тому же не совсем понятно как различать валидные рестарты (RollingUpdate) и падения
Maksim
Rolling Updates не фиксируются как рестарт)
Anatoliy
Anton
Ребят, есть пара вопросов: во-первых, есть уже работающий кластер задеплоенный с помощью kops в своей VPC - как минимальными потерями изменить CIDR у этой VPC (амазон это не позволяет делать, только через удаление VPC). не хочется передеплоивать все секреты/сервисы по новой
отличная же тренировка, отладить процедуру деплоя заодно =))) ну тоесть развернуть приложение по новой не должно быть такой болью, а если так - нужно что то менять. по мониторингу, сам смотрел дашборды для grafana для к8с, но не нашел такого, чтобы все что я хотел бы показывал. придется пилить самому. вместе с алертингом.
Maksim
Anatoliy
как новый под
т.е. просто один под убивается а второй поднимается? ок
Dmytro
а ingress задеплоен с хостовой сетью?
использовал деплой стандартный с гитхаба (https://github.com/kubernetes/ingress-nginx/blob/master/deploy/with-rbac.yaml)
Anton
так там же deployment без hostnetwork
Anton
поэтому у него и адрес внутренний
Maksim
т.е. просто один под убивается а второй поднимается? ок
При Rolling Update именно так и происходит. (Более того там формируется новый Replica Set, старый тушится до нуля, новый поднимается до репликас, у тебя в Объекте Rolling Update в Deploy Есть два параметра, MaxSurge и чё-т ещё. Вот они отвечают за кол-во подов больше репликас в процессе обновления
Anton
использовал деплой стандартный с гитхаба (https://github.com/kubernetes/ingress-nginx/blob/master/deploy/with-rbac.yaml)
я думаю что до внешних адресов без hostnetwork не добраться. как кстати keepalived разворачивал? у тебя 1 ip на множество серверов?
Dmytro
я думаю что до внешних адресов без hostnetwork не добраться. как кстати keepalived разворачивал? у тебя 1 ip на множество серверов?
keepalived сначала был вне кубернетиса, потом занес его тоже в середину. Использую (https://github.com/kubernetes/contrib/tree/master/keepalived-vip). Виртуальный айпи указывает на сервис ингриса. Работает отлично
Maksim
под?
Anatoliy
репликасет
Maksim
а это норма
Maksim
он нужен для rollout
Anatoliy
недавно зашел посмотрел - там пачки пустых репликасетов, их что, каждый раз руками удалять?
Anatoliy
они же 0/0
Maksim
Они нужны для rollout...
Sergei
Anatoliy
ага, т.е. шибко много их все равно не будет, так?
Sergei
емнип 5 по умолчанию
Maksim
у меня тут 53-)
Sergei
наврал (видимо с чем-то спутал)
Sergei
You can set .spec.revisionHistoryLimit field in a Deployment to specify how many old ReplicaSets for this Deployment you want to retain. The rest will be garbage-collected in the background. By default, all revision history will be kept. In a future version, it will default to switch to 2. Note: Explicitly setting this field to 0, will result in cleaning up all the history of your Deployment thus that Deployment will not be able to roll back.
Maksim
Ну я же говорю это rollout -)
Sergei
я и не спорил (:
Dmytro
этот вариант видел, чуть подробнее можно про "Виртуальный айпи указывает на сервис ингриса"
сначала деплой стандратного ингреса nginx, со сервисом ("clusterIP": "None", "type": "ClusterIP",) он позваляет получить список айпи подов. Потом разварачиваем кипелив, он деплоется как демонсет на ноды. И через конфиг указываем виртуальный айпи со сылкой на наш сервис (10.1.61.1: ingress-nginx). Этот виртуальный айпи будет привязан к интерфесу ноды где есть под ингреса. А потом я через внешний шлюз запускаю весь трафик на виртуальный айпи через маскарандинг
Anton
воу, даже не думал в таком ключе его использовать
Dmytro
моя цель была отвязатся от апаратной части, чтобы сисадмины не думали что находится на сервере (фрон или бекенд) чтобы в любой момент могли просто отключить сервак и подключить новый. Как с дисками в рейдах
Anton
Идея ясна. Но все же даже в рейде обычно диск сначала исключают. Так и тут ноду пометить сначала нужно
Anonymous
а есть где-нибудь набор *.proto для куберовского API в одном месте, или они раскиданы по репам?
Sergey
Сдампите все ресурсы в yaml и восстановите в новом
Да там кроме самого кубернетса еще хватает Г в VPC, типа эластиков, которое, как водится, не автоматизировано, да еще и выведены дополнительные инстансы типа FTP со статическим ИП и nfs-сервер. Вообщем день работы точно все это пересоздать
Sergey
Но в целом я понял месседж :)
Dmitry
https://github.com/smpio/kubernator
Eugene
Кто нибудь знает альтернативу https://brigade.sh/ , только не поганую поделку от поганого майкрософта? Какой то сервис который поллит ивенты/объекты по аннотации в кубернетесе и выполняет кастомный скрипт/или дергает url?
G72K
можете на баше: kubectl get --watch | while read event; do .... ; done
Andrey
Привет котоны, сталкивался кто с проблемой резольвинга имен внутри подов? Не резольвяться dns имена внутри подов, куда смотреть в таких случаях?