
Mikhail
26.07.2018
21:55:17
а чо так?
Слишком много сообщений было первую неделю. :)

Vladimir
26.07.2018
21:55:32

Mikhail
26.07.2018
21:55:39

Google

Vladimir
26.07.2018
21:56:22
mail.ru :)
а, тогда вопросов больше нет про вашу безопасность )
мне знакомый много боли рассказывал :D
которую там испытал

Dmytro
26.07.2018
21:57:55
а мейл.ру же вроде генту крутят на серверах или я путаю?

Mikhail
26.07.2018
21:58:13
У меня нет.

Vladimir
26.07.2018
21:58:51

Dmytro
26.07.2018
22:03:10
хмм а кто ж это был тогда

Mikhail
26.07.2018
22:04:13
Мне на собеседовании говорили что есть где-то. Но я не нашёл пока

Alex Milushev
26.07.2018
22:04:24
@azalio короче, Я хз, куда пропадают пакеты, разобраться в том буйстве iptables сейчас не могу
но пакеты приходящие от удаленного хоста тупо не доходят до интерфейса pod'а

Mikhail
26.07.2018
22:05:26

Alex Milushev
26.07.2018
22:05:32
да
другую ноду кластера

Google

Mikhail
26.07.2018
22:05:44
Обратно тоже приходят?

Alex Milushev
26.07.2018
22:05:50
и возвращаются, Я ловлю их на внешнем интерфейсе

Mikhail
26.07.2018
22:05:52
На ноду

Alex Milushev
26.07.2018
22:05:56
да

Mikhail
26.07.2018
22:05:57
Ага.

Alex Milushev
26.07.2018
22:06:02
но в под они не попадают

Mikhail
26.07.2018
22:07:10
Что в ip ro sh про сеть пода?

Alex Milushev
26.07.2018
22:07:14
и да, они натятся
как Я понимаю это не хорошо

Mikhail
26.07.2018
22:08:03
И все?

Alex Milushev
26.07.2018
22:08:21
а нет
172.22.4.3 dev calic6def642fd6 scope link
есть вот еще такое

Mikhail
26.07.2018
22:08:30
Вот.

Alex Milushev
26.07.2018
22:08:56
# ip r | grep 172.22.4
blackhole 172.22.4.0/25 proto bird
172.22.4.3 dev calic6def642fd6 scope link

Mikhail
26.07.2018
22:09:54
Но есть из пода уходит на свою ноду, там нат, уходит на удаленную с src ноды, возвращается и в под не попадает.

Alex Milushev
26.07.2018
22:10:49
именно

Mikhail
26.07.2018
22:10:53
Форвардинг включён в sysctl и в iptables DROP не стоит

Google

Alex Milushev
26.07.2018
22:13:13
вот это Я дебил
простите
sysctl, а бревна Я и не заметил
огромное спасибо, вот, что значит, что с сетями уже лет 5 дела не имел

Mikhail
26.07.2018
22:15:42
Ура :)

Alex Milushev
26.07.2018
22:20:34
да

Михаил
26.07.2018
22:29:32
mail.ru :)
ваще ору
одни рассказывают как пиздато катят кубы и имеют крутую квалификацию, другие идут по тем же граблям, с которыми столкнулись первые

Mikhail
26.07.2018
22:31:34
Ох :)
Значит они имеют, я не имею. Я же не говорю что я невьебаться какой специалист :)

Михаил
26.07.2018
22:32:24

Mikhail
26.07.2018
22:33:28
Сначала надо хоть что-то внедрить. Потом будет опыт нарабатываться и можно будет сделать лучше.
То что внедрили в облаке мейла не подходит другим отделам

Dmytro
26.07.2018
22:40:52
вот уж казалось бы где нужно было все сделать как положено а что в итоге?

Andor
26.07.2018
23:11:36
https://habrahabr.ru/post/324918/ уже обсуждали?

Михаил
26.07.2018
23:12:54

Andor
26.07.2018
23:13:09
не
как быстро и просто рассказать контейнеру о его лимитах

Михаил
26.07.2018
23:13:47
ну ок, протащили лимиты - хорошо
а на сколько всё хорошо в комбинации lxcfs для докера мы выясним потом на проде

Andor
26.07.2018
23:14:06
проверь :)

Google

Roman
27.07.2018
05:06:15
не, я скорее про передачу опыта внутри огромной компании
Ты так говоришь, как будто все что не kube-way (который любой текущий станет деприкейтед через полгода от сейчас), это плохо. Ну моднее кубадм папета, и чо? Оф модуль папета текущий для кубера юзает кубадм ровно так же, как это делает спрей, например. Про перенести мастер в один клик это смешно. Или может через кубадм можно без проблем поинитить etcd внутри кластера сразу отказоустойчивый? Или он тебе ha для апи сам настроит? Ой, подумаешь кубспрей даже если забить на центос на 18.04 не работает вообще.
Не все что мейнстрим - не говно. Как с кружкой про миллионы пользователей macromedia flash, которые не могут ошибаться.


Alex Milushev
27.07.2018
05:51:24
Я поднимал сам, но когда ломается или не заводится бегу в чатик с проблемой ?

Nik
27.07.2018
06:02:20
я поднимал сам и даже костылики писал в kubespray, а вот недавно решил попробовать kubeadm по оффициальной доке копипастой - ничего у меня не взлетело с первой попытки, не работает source nat в calico, а он по доке с kubernetes backend разворачивается..

Evgeny
27.07.2018
06:52:57

Anton
27.07.2018
06:53:05

Evgeny
27.07.2018
06:56:02

ptchol
27.07.2018
07:12:40
Так что это надуманно имхо.

Maksim
27.07.2018
07:31:47
Парни, можете подсказать норм сторедж класс для автопровизинга персистент волиум клейм и персистент волиум поднял nfs из helm всё запровизило с хранилищем по host path начинаю провизить через этот сторедж класс другие продукты персистент волиумы не конектятся к подам. Может кто сталкивался

Sergey
27.07.2018
07:38:37
или вы хотите динамический сторэдж?

djaarf
27.07.2018
07:53:34

Maksim
27.07.2018
07:54:31
Это каша в голове :)
Хочу динамический сторедж )
Для HELM

Vadim
27.07.2018
07:55:21
Default отличный стораджкласс, а что у вас за сторадж вообще?

Maksim
27.07.2018
07:55:55
В миникубе всё работает
А когда развернул кубер с коробки дефолт вообще не подтянулся
Мне для дэва над

Google

Maksim
27.07.2018
07:57:08
Для прода у меня AWS
Я хочу динамический сторедж для тестов

Banschikov
27.07.2018
07:59:18

Vadim
27.07.2018
08:00:59
У локальных тестов и local-provisioner сойдет


Alexander
27.07.2018
08:46:39
А кто знает зачем нужен нод анотейшн node.alpha.kubernetes.io/ttl=0 . Нигде не нашел документации по нему. Подозреваю, что это как-то связано с nodeInfo кешем и используется kubelet'ом.
Собственно чего спрашиваю, после обновления на 1.11 появилась проблема с kube-scheduler'ом, срабатывает PodFitsHostPorts predicate (FailedScheduling didn't have free ports) при обновлении deployment'а часть подов не скедулится на ноды и висят бесконечное количество времени в статусе Pending пока не ребутнешь kube-scheduler. Собрал свой скедулер, чтобы он выводил дебаг инфо по функции PodFitsHostPorts, вот так:
func PodFitsHostPorts(pod *v1.Pod, meta algorithm.PredicateMetadata, nodeInfo *schedulercache.NodeInfo) (bool, []algorithm.PredicateFailureReason, error) {
var wantPorts []*v1.ContainerPort
if predicateMeta, ok := meta.(*predicateMetadata); ok {
wantPorts = predicateMeta.podPorts
} else {
// We couldn't parse metadata - fallback to computing it.
wantPorts = schedutil.GetContainerPorts(pod)
}
if len(wantPorts) == 0 {
return true, nil, nil
}
existingPorts := nodeInfo.UsedPorts()
// try to see whether existingPorts and wantPorts will conflict or not
if portsConflict(existingPorts, wantPorts) {
fmt.Printf(" nodeInfo: %+v ================ existingPorts: %+v ================ wantPorts: %+v ================ podName: %+v\n\n======================\n\n", nodeInfo.Node().Name, existingPorts["0.0.0.0"], wantPorts, pod.Name)
return false, []algorithm.PredicateFailureReason{ErrPodNotFitsHostPorts}, nil
}
return true, nil, nil
}
Если portsConflict то выводит значения existingPorts на ноде и wantPorts контейнера. Так вот existingPorts выводит закешированые значения, порты давно не слушаются, а он говорит что слушаются. Если поменять версию скедулера на v1.10.5 такой проблемы не возникает.
Kubernetes 1.11.0, calico 3.1 (ibgp full mesh), containerd 1.1.2, ~100 нод в кластере
Мой issuse https://github.com/kubernetes/kubernetes/issues/66568
Может кто-то сталкивался с такой проблемой?


Andrey
27.07.2018
08:54:27
А кто знает зачем нужен нод анотейшн node.alpha.kubernetes.io/ttl=0 . Нигде не нашел документации по нему. Подозреваю, что это как-то связано с nodeInfo кешем и используется kubelet'ом.
Собственно чего спрашиваю, после обновления на 1.11 появилась проблема с kube-scheduler'ом, срабатывает PodFitsHostPorts predicate (FailedScheduling didn't have free ports) при обновлении deployment'а часть подов не скедулится на ноды и висят бесконечное количество времени в статусе Pending пока не ребутнешь kube-scheduler. Собрал свой скедулер, чтобы он выводил дебаг инфо по функции PodFitsHostPorts, вот так:
func PodFitsHostPorts(pod *v1.Pod, meta algorithm.PredicateMetadata, nodeInfo *schedulercache.NodeInfo) (bool, []algorithm.PredicateFailureReason, error) {
var wantPorts []*v1.ContainerPort
if predicateMeta, ok := meta.(*predicateMetadata); ok {
wantPorts = predicateMeta.podPorts
} else {
// We couldn't parse metadata - fallback to computing it.
wantPorts = schedutil.GetContainerPorts(pod)
}
if len(wantPorts) == 0 {
return true, nil, nil
}
existingPorts := nodeInfo.UsedPorts()
// try to see whether existingPorts and wantPorts will conflict or not
if portsConflict(existingPorts, wantPorts) {
fmt.Printf(" nodeInfo: %+v ================ existingPorts: %+v ================ wantPorts: %+v ================ podName: %+v\n\n======================\n\n", nodeInfo.Node().Name, existingPorts["0.0.0.0"], wantPorts, pod.Name)
return false, []algorithm.PredicateFailureReason{ErrPodNotFitsHostPorts}, nil
}
return true, nil, nil
}
Если portsConflict то выводит значения existingPorts на ноде и wantPorts контейнера. Так вот existingPorts выводит закешированые значения, порты давно не слушаются, а он говорит что слушаются. Если поменять версию скедулера на v1.10.5 такой проблемы не возникает.
Kubernetes 1.11.0, calico 3.1 (ibgp full mesh), containerd 1.1.2, ~100 нод в кластере
Мой issuse https://github.com/kubernetes/kubernetes/issues/66568
Может кто-то сталкивался с такой проблемой?
https://github.com/kubernetes/kubernetes/blob/b6f75ac30e863531ac73cfd02a0edd57983cc5c0/staging/src/k8s.io/api/core/v1/annotation_key_constants.go#L59-L62


Alexander
27.07.2018
08:57:54
Это я видел, что значит 0? Не кешировать совсем или кешировать бесконечно долго?


Михаил
27.07.2018
09:21:10
Ты так говоришь, как будто все что не kube-way (который любой текущий станет деприкейтед через полгода от сейчас), это плохо. Ну моднее кубадм папета, и чо? Оф модуль папета текущий для кубера юзает кубадм ровно так же, как это делает спрей, например. Про перенести мастер в один клик это смешно. Или может через кубадм можно без проблем поинитить etcd внутри кластера сразу отказоустойчивый? Или он тебе ha для апи сам настроит? Ой, подумаешь кубспрей даже если забить на центос на 18.04 не работает вообще.
Не все что мейнстрим - не говно. Как с кружкой про миллионы пользователей macromedia flash, которые не могут ошибаться.
Знатно припекло.
Из этого потока сознания я не понял только почему тебе смешно от возможности перенести мастера в один клик?
Всё мейнстрим говно в той или иной степени. Потому что ты надеешься на чужую магию и становишься одним из чатика который "я взял кубе спрей, мне надо было абнавить кластер и теперь у меня всё сломалось, оказалось это бага кубе спрея, как мне откатиццо назад?!"


Juriy
27.07.2018
11:13:08
Хелов , деплою в GCE не создается ингресс
googleapi: Error 400: Invalid value for field 'namedPorts[2].port': '0'. Must be greater than or equal to 1, invalid
в сервисе стоит type: NodePort
кто то сталкивался с подобным?