
Maksim
09.02.2018
10:50:54
10.254.0.1 ?

Anton
09.02.2018
10:52:27

Maksim
09.02.2018
10:53:00
почему он фигурирует в сертификате?
ПОтому что согласно pki все возможные имена и ip Сервера должны быть перечисленны в SAN. По умолчанию первый адресс в сети сервисов отводится под APIserver. И APIserver будет на нём отвечать, при чём по ssl протоколу, соответвенно что бы сертифкат был верен этот адрес должен быть в SAN

Google

Maksim
09.02.2018
10:53:23
Это часть pki стандарта сертификации.

Anton
09.02.2018
10:54:20
стандарт мне ясен, мне не совсем ясно, кто такой этот 10.32.0.1, что именно он будет ходить в API

Maksim
09.02.2018
10:54:51
это первый сервис кубернетиса, его ендпоинт это АПИСевер

Let Eat
09.02.2018
10:54:54
он и есть апи

Maksim
09.02.2018
10:54:57
kubernets.default
у апи сервера минимум три имени с ходу. ip накотором оно весит, kubernetes.default и первый ip из сети сервисов

Anton
09.02.2018
11:00:10
понятно, а я то думаю зачем там список айпишников нод, теперь понял, что это ж не воркеры, а контроллеры где апи-сервер запущен будет

Denis
09.02.2018
11:03:05
Есть три мастера на 1.9.1, на каждом etcd. Жестко вырубаю одну из нод, оба оставшихся аписервера перестают отвечать на некоторые запросы (timeout exceeded), помогает только рестарт apiserver. Кто нибудь видел такое?

Anton
09.02.2018
11:03:09
то есть мы можем сходить на апи по:
1) kubernetes.default
2) внутреннему айпишнику сервиса, который представляет kubernetes.default
3) айпишнику ноды, на которой запущен апи-сервер
4) внешнему айпишнику
5) локально
для этого все эти ребята прописаны в сертификат апи-сервера. Я все верно теперь понимаю?

Maksim
09.02.2018
11:03:27
да

Anton
09.02.2018
11:03:45
ок, спасибо

Google

Maksim
09.02.2018
11:04:07
Все это должно быть в SAN иначе сертификат будет не валиден для одного из адрессов

Let Eat
09.02.2018
11:07:09

Vadim
09.02.2018
11:08:23

Denis
09.02.2018
11:08:51

Let Eat
09.02.2018
11:08:55

Denis
09.02.2018
11:09:14

Let Eat
09.02.2018
11:09:22

Anton
09.02.2018
11:10:01
и просто kubernetes
вот кстати ни на одном из кластеров, с которыми я имел дело оно не срезолвилось ни разу

Vadim
09.02.2018
11:10:11
хмм, странно, у меня всегда ругались, выясняя кто главнее

Denis
09.02.2018
11:10:36
Забыл сказать что используется reconciler новый. Там тоже интересно. Из двух оставшихся аписерверов только один остается в masterleases

Maksim
09.02.2018
11:11:03

Denis
09.02.2018
11:11:24
а как HA LB реализовано?

Let Eat
09.02.2018
11:11:33

Maksim
09.02.2018
11:12:11

Denis
09.02.2018
11:12:46
pace != peace
но тоже склоняюсь попробовать через LB

Maksim
09.02.2018
11:13:39
Хм не замечал, что оно пишется не как peace
-)

Google

Denis
09.02.2018
11:23:29

Let Eat
09.02.2018
11:24:12
он оставляет только рабочие адреса в DNS сервиса, а значит session affinity не может помешать

Denis
09.02.2018
11:25:17
ок, значит я неправильно думал про то как session affinity работает
Еще интересно что если через SIGKILL убить все мастер процессы и etcd то все продолжает работать, мрет именно когда виртуалку убиваю

Let Eat
09.02.2018
11:28:03

Denis
09.02.2018
11:28:48
да

Let Eat
09.02.2018
11:30:26
надо бы тоже попробовать
а etcd какой версии? убивать надо ту, что с текущим лидером etcd да?

Denis
09.02.2018
11:32:51
3.2.4
да и контроллер тоже переизберается

Let Eat
09.02.2018
11:34:06
все равно до 3.2.15 обновите уж )

Denis
09.02.2018
11:39:27
Убил нелидера
та же херня
убил master02, он с собой забрал еще пару нод
# kubectl get nodes
NAME STATUS ROLES AGE VERSION
test-kube02-master01 Ready master 1d v1.9.2+coreos.0
test-kube02-master02 NotReady master 1d v1.9.2+coreos.0
test-kube02-master03 NotReady master 1d v1.9.2+coreos.0
test-kube02-worker01 NotReady node 1d v1.9.2+coreos.0
test-kube02-worker02 Ready node 1d v1.9.2+coreos.0
жесть какая то
при этом kubectl get nodes работает только на master01

Let Eat
09.02.2018
11:45:00
у вас kubelet в мастеры как ходит?

Denis
09.02.2018
11:53:43
на воркерах через балансер

Let Eat
09.02.2018
11:58:01
у kubelet раньше даже пингов не было, чтобы отвалившийся apiserver поймать. сейчас вроде сделали, так что worker01 должен скоро появиться

Google

Irina
09.02.2018
12:03:56
привет, простите за нубский вопрос, только недавно начала разбираться
вот у меня есть сервис, он по запросу на определённый порт (положим 8765) возвращает маленький json со статусом. Когда я захожу через kubectl exec ... -it sh в сам сервис и вызываю там curl localhost:8765, то возвращается то что нужно
теперь пытаюсь создать ингресс чтобы сделать доступ извне. Создала ингресс-контроллер, создала ингресс. Чтобы проверить, работает ли, захожу опять в контейнер и вызываю теперь уже айпи:порт. Курл молчит.
А теперь мой вопрос: как бы мне последовательно проверить, какие из этих штук (сервис, ингресс, контроллер) работают как надо?

Anton
09.02.2018
12:12:58
сервис у вас какого типа?


Let Eat
09.02.2018
12:13:07
привет, простите за нубский вопрос, только недавно начала разбираться
вот у меня есть сервис, он по запросу на определённый порт (положим 8765) возвращает маленький json со статусом. Когда я захожу через kubectl exec ... -it sh в сам сервис и вызываю там curl localhost:8765, то возвращается то что нужно
теперь пытаюсь создать ингресс чтобы сделать доступ извне. Создала ингресс-контроллер, создала ингресс. Чтобы проверить, работает ли, захожу опять в контейнер и вызываю теперь уже айпи:порт. Курл молчит.
А теперь мой вопрос: как бы мне последовательно проверить, какие из этих штук (сервис, ингресс, контроллер) работают как надо?
1) kubectl exec вы делали в конкретный контейнер в поде. сервис это надстройка над множеством подов, на которые она раскидывает трафик (через DNAT по IP или DNS round robin или вообще внешний балансер в облаках). порт в контейнере в общем случае может отличаться от порта в сервисе
2) проверить, что ингрес контроллер работает просто - постучитесь в него извне куба по какому нибудь имени, о котором он точно незнаетт, должны получить "404 - default backend"


Irina
09.02.2018
12:13:52

Anton
09.02.2018
12:18:11
чтобы в целом разобраться в вопросе, я бы порекомендовал (в довесок к документации) цикл статей, которые про это рассказывают: https://medium.com/google-cloud/understanding-kubernetes-networking-pods-7117dd28727
там три статьи, последняя как раз про ингресс.
Теоретически, вы могли ошибиться где угодно. Проверьте, что сервис доступен по ip ноды, порт должен быть другим.

Irina
09.02.2018
12:18:35
спасибо!

Anton
09.02.2018
12:22:13
если у вас Load Balancer и есть внешний IP, то он уже должен был быть доступен без ingress, это тоже можно проверить

Alexander
09.02.2018
14:32:08
▫️Какой у вас проект или где работаете?
Игровой проект, Vizor Games
▫️В чём вы специалист?
разработка 3д игр, веб-разработка, Arduino
▫️Чем можете быть интересны или полезны сообществу?
пока не в курсе
▫️Чем интересно сообщество вам?
информацией о kubernetes
▫️Откуда вы?
Минск
▫️Как узнали про группу?
от коллеги
#whois

Dan
09.02.2018
14:38:46

Anatoly
09.02.2018
15:14:49
нее, чтот незашло с kube-router, после перезагрузки хоста поды ушли в перезагрузку, после редеплоя, вроде работает, потом опять, в общем кажется сыроват еще

Сергей
09.02.2018
15:37:37
▫Какой у вас проект или где работаете?
API for compex distributed system
▫В чём вы специалист?
java backend, services, architecture
▫Чем можете быть интересны или полезны сообществу?
время покажет
▫Чем интересно сообщество вам?
новости, опыт использования
▫Откуда вы?
Spb
▫Как узнали про группу?
ссылка на habr
#whois

Pasha
09.02.2018
17:36:59
господа, кто нибудь кубеспреем ставил докер на devicemapper'e?
ок, как мне кубеспрей заставить конфигурить devicemapper вместо overlay
Или чтобы он докер сам вообще не ставил, а я б его сам предварительно наконфигурил

Andor
09.02.2018
17:56:57
А почему ты хочешь именно дм?

Pasha
09.02.2018
17:57:55
Потому что вот https://bugs.openjdk.java.net/browse/JDK-8165852

Let Eat
09.02.2018
18:20:13

Vadim
09.02.2018
18:42:02
Debian в ядром из Jessie на btrfs?
думаю что тут надо не об overlayfs vs. devicemapper стоит задуматься

Anton
09.02.2018
19:24:54
etcd-0 Unhealthy Get https://192.168.117.101:2379/health: x509: certificate signed by unknown authorityкуда копать?

Google

Sergey
09.02.2018
19:29:31

Anton
09.02.2018
19:30:42
у меня корневой сертификат самодельный (ну и вообще все самодельные)

Mikhail
09.02.2018
19:31:39

Anton
09.02.2018
19:32:14
kubectl get componentstatuses
можно как-то проверить один etcd в отрыве от куба?

Mikhail
09.02.2018
19:33:51
etcdctl cluster-health

Anton
09.02.2018
19:34:12
$ openssl s_client -connect 192.168.117.101:2379
...
verify error:num=20:unable to get local issuer certificate
verify return:1
...
$ etcdctl cluster-health
failed to check the health of member 1d7b8e70f80b643a on https://192.168.117.101:2379: Get https://192.168.117.101:2379/health: x509: certificate signed by unknown authority
member 1d7b8e70f80b643a is unreachable: [https://192.168.117.101:2379] are all unreachable
cluster is unhealthy

Mikhail
09.02.2018
19:35:22
Ну можно подложить сертификат свой к другим корневым...

Anton
09.02.2018
19:35:55
у меня всего два, один корневой, один для kube-apiserver, который используется в etcd

Sergey
09.02.2018
19:36:03

Anton
09.02.2018
19:36:25
куда положить?