
Jan
02.10.2017
12:06:54

Maksim
02.10.2017
12:07:09
а вот не знаю) я этой тулзой не пользуюсь

Jan
02.10.2017
12:07:31
спасибо, попробую без RBAC)

Роман
02.10.2017
14:16:04
Есть такая опция hostNetwork: true. Как-то можно указать сетевой интерфейс, через который будет ходить трафик?

Google

Anton
02.10.2017
14:17:36
он же сделает по сути тоже самое что и docker run -net host. тоесть процесс будет на хостовой сетевой порты открывать

Роман
02.10.2017
14:18:43

Anton
02.10.2017
14:19:17
я думаю на этом уровне докеру пофиг уже
в приложении может это можно сделать или в entrypoint, но хз как вы будете обрабатывать ситуацию когда под переедет на другой хост, где нужных сетевух не будет.

Роман
02.10.2017
14:27:15

Anton
02.10.2017
15:10:39
я только на днях первый кластер с kubespray задеплоил и не знаю как раньше было. и вижу что вообще нифига не знаю как calico устроен и как ноды взаимодействуют между собой. поэтому я вообще не понимаю о котором ip речь идет

Let Eat
02.10.2017
15:26:25

Роман
02.10.2017
15:27:06

Let Eat
02.10.2017
15:27:39
это от прлиожения зависит, в общем и целом man 2 bind

Роман
02.10.2017
15:30:11
Я хочу сеть пустить по внутренней сети через свитч. Оно сейчас у меня в проде так и работает.

Maksim
02.10.2017
17:39:33

Arslanbekov
02.10.2017
17:59:17
Подскажите пожалуйста, кто хорошо разбирается с limits/requests (Resource Quotas)
на пальцах, чем limits от requests отличается?

Google

Роман
02.10.2017
18:05:46
Там даже не vlan, а физическая сеть между серверами.

Артём
02.10.2017
18:17:21

Maksim
02.10.2017
18:19:14

Arslanbekov
02.10.2017
18:20:55
те если не будет места (по реквестам) на сервере, он выкинет ошибку? или он все таки по лимитам выкинет ошибку?
не совсем ясен этот момент, несколько раз упирались в ошибку (insufficient cpu), но из доки не совсем ясно, это из-за лимитов или все таки реквестов ?

Артём
02.10.2017
18:22:30
если ресурсов будет недостаточно на всех нодах, то под будет висеть в ожидании ресурсов
это может быть видно по kubectl describe

Ihor
02.10.2017
18:27:27
FYI https://groups.google.com/forum/#!topic/kubernetes-dev/QWIzhD3JhhE

Konstantin
02.10.2017
19:32:14
В продолжение темы про requests и limits получается, что requests это чисто логическая вещь и не на что не влияет?

Алексей
02.10.2017
19:48:51
В продолжение темы про requests и limits получается, что requests это чисто логическая вещь и не на что не влияет?
Простой пример. Есть одна нода с одним процессором.
Все поды запущены на ней. соответственно, вы не сможете запустить больше чем у вас есть CPU.
Конечно можно выделять по 1% и запустить 100 подов, но нужно учесть, что есть ещё запущеные поды системные.
У меня в google cloud выходило на базовой конфигурации с 1 процессором ~60% CPU занято под системные поды.
посмотреть текущее распределение на ноде можно
kubectl describe node-1
В конце есть очень наглядное представление о том сколько какой под запросил и какой лимит. И общее состояние по ноде.

Konstantin
02.10.2017
20:01:28
Спасибо за комментарий. Где посмотреть и как установить это все понятно. Переформулирую вопрос, зачем указывать requests?

Paul
02.10.2017
20:07:30

Konstantin
02.10.2017
20:20:11

Paul
02.10.2017
20:20:42
лимитами - нет. а вот ресурсами - не влезет
лимиты на 10 ЦПУ означают, что более 10 ЦПУ контейнеры гарантированно не получат

Konstantin
02.10.2017
20:21:47
Т.е. получается лимит ограничивает только под, а реквест ограничает под внутри ноды?

Paul
02.10.2017
20:27:00
нет
лимит ограничивает под сверху
а реквест гарантирует ресурсы снизу

Konstantin
02.10.2017
20:32:54
Да, но при этом при лимит может быть оверселинг, а при реквесте нет. И когда добавляется под на ноду, реквест ресурсов по каким параметрам проиходит, по реквестам? лимитам?

Google

Артём
02.10.2017
20:58:44
а еще это необходимо, чтобы настроить горизонтальное масшабирование)

Paul
02.10.2017
21:49:46
https://coreos.com/blog/kubernetes-1.8-announcement
по-моему - восхитительно


Andrey
03.10.2017
05:32:19
по памяти лучше всего делать request=limit чтобы не возникало ситуаций "кубер думает что места полно и шедулит под на эту ноду, а по факту там oom-killer лютует уже вовсю"
по процессору в принципе некритично, максимум что будет это сервисы будут тормозить что можно обнаружить кучей инструментов
если сделать requests=limits (для cpu и mem) то под получает более приоритетный статус и в случае переполнения памяти его казнят последним по сравнению с другими плебеями, но в 1.8 это делать необязательно так как там добавили отдельную рукоятку для выставления приоритетов
еще упомяну что, естественно, лимиты ставятся на контейнер и суммируются для всего пода, и на этом закончу краткое изложение официальной доки кубернетеса ?
а, еще из того что в доке нет: все контейнеры написаны на разных языках и разными людьми, и очень мало из них умеют ограничивать себя выделеной памятью (из-за докеровской архитектуры стандартными средствами в контейнере видна общая память а не та которая выделена докеру)
так что, кроме выставления лимитов, надо обязательно искать пимпочку для сервиса которая ограничивает жор памяти
например, для монгодб есдинственный вариант - подкрутить кеш wiredtiger в конфиге, для приложений написаных на java обязательно задание мемори хипа через флаги и тп
а раббитэмкью например корректно сам определеяет и ему норм
в общем, если этого не сделать то рано или поздно приложуха превысит mem limits и сам же докер ее пристрелит


kvaps
03.10.2017
07:51:27
https://habrahabr.ru/company/flant/blog/339120/

Konstantin
03.10.2017
08:02:43

Maksim
03.10.2017
08:03:05
А он разве не на кубере? Пойму он с самого начала на кубере.

kvaps
03.10.2017
08:16:24

Maksim
03.10.2017
08:16:49
Ну это всё равно что сказать что ОпенШифт теперь на кубере.....

kvaps
03.10.2017
08:17:26
как и swarm, он может его задеплоить, но управлялка перенаправляет на portainer
а в 2.0 будет кошерно, все контейнеры будут запускаться прямо в кубере
другими словами, вы получите отличный гуй для управления кластером и запущенными контейнерами, с лдапом и деплоем приложений из репо прямо в кубер всего за пару кликов
это должно быть будет бомба
А кто-нибудь уже попробовал IPVS из 1.8?
https://github.com/kubernetes/kubernetes/tree/master/pkg/proxy/ipvs
оно требует внешний балансировщик?
не совсем понимаю как он в кубере работает

Ivan
03.10.2017
09:34:54
Всем привет!
Помогите пожалуйста понять)))
я не могу достучаться до сервиса, (работающего на одной ноде) с другой ноды.
как в теории это должно происходить?
на физических нодах есть интерфейсы докера (172.17.0.1) и фланэла (10.4.х.х)
а сетки 10.3.х.х (которая используется для сервисов) на физической ноде не светится и весь траффик идёт на шлюз по умолчанию (и естественно уходит вникуда)

Google

Ivan
03.10.2017
09:35:41
у сервиса, соответственно, айпишник из подсетики 10.3.х.х

Vitaliy
03.10.2017
09:35:58
https://www.google.ru/search?newwindow=1&source=hp&q=kubernetes+network+plugin&oq=kubernetes+netw&gs_l=psy-ab.3.1.0i203k1l2j0l8.1000.5600.0.7700.11.10.0.0.0.0.200.1200.0j6j3.9.0....0...1.1.64.psy-ab..2.9.1100.0..46j35i39k1j0i46k1.0.ZLRtAFgumkA

Maksim
03.10.2017
09:36:03
какой ip у контейнера?
дай kubectl get po

Ivan
03.10.2017
09:37:17
дай kubectl get po
pxe webdev$ kubectl -n intranet get po
NAME READY STATUS RESTARTS AGE
intranet-2163743981-3bm8p 1/1 Running 0 2h
pxe webdev$ kubectl -n intranet get svc
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
intranet-svc 10.3.133.127 <nodes> 80:7180/TCP,443:7143/TCP 2h

Maksim
03.10.2017
09:37:34
мм
kubectl get po -o wide

Ivan
03.10.2017
09:38:13
kubectl get po -o wide
pxe webdev$ kubectl -n intranet get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE
intranet-2163743981-3bm8p 1/1 Running 0 2h 10.4.31.7 10.1.29.11

Vitaliy
03.10.2017
09:38:17

Maksim
03.10.2017
09:38:24
на физических нодах есть интерфейсы докера (172.17.0.1) и фланэла (10.4.х.х) Исходя из этого у тебя не правильно настроен overlay сеть

Ivan
03.10.2017
09:39:13

Maksim
03.10.2017
09:39:48
при првельно настройке docker0 должен иметь адресс 10.4.х.1
поробуй остановить докер
удалить docker0 интерфейс
(удали все контейнеры)
и только потом запустить его, что бы ядро пересоздало интерфейс
не понял)) можно подробнее))
По холрошем нужно остановить kubelet, удалить контейнеры и сети докера, остановить докер, удалить eth, после запустить докер и кублет
интерфейс удаляется ip link delete <>

Google

Vitaliy
03.10.2017
09:43:18
изначально было не очевидно что у человека cni настроен. я вообще не спец совсем чтобы давать советы

Ivan
03.10.2017
09:44:11
я больше скажу))) я сам не знаю, настроен ли у меня cni ))))

Maksim
03.10.2017
09:44:24
а вот сейчас и узнаем.
переконфигурируй docker0

Ivan
03.10.2017
09:49:39
у меня при заливке нод на них (по крайней мере на мастере) заливаются файлы
/etc/kubernetes/cni/docker_opts_cni.env
/etc/kubernetes/cni/net.d/10-flannel.conf
далее в клауд-конфиге короса есть секция
- name: 40-flannel.conf
content: |
[Unit]
Requires=flanneld.service
After=flanneld.service
[Service]
EnvironmentFile=/etc/kubernetes/cni/docker_opts_cni.env
далее в секции кублета есть ключ —network-plugin=cni
ну это ладно... по 10.4 сетку я поковыряю...
а как вообще должно быть? сетка 10.3 должна присутствовать на ноде? (на физ интерфейсе)
т.е. сетка с сервисами (может у кого она с другими адресами)

Роман
03.10.2017
09:55:39

Maksim
03.10.2017
09:55:54
хм...
видимо ч совсем иначе делал сеть(
тогда надо смотреть firewall

Ivan
03.10.2017
09:56:28

Роман
03.10.2017
09:57:17
Это слой сети, в которой поды меж собой взаимодействуют. Она объединяет докеровские сети на нодах.
Грубо говоря.

Ivan
03.10.2017
09:59:38
а, понял...
это, собственно, pod_network))
в настройках задаётся две подсетки при поднятии кластера:
service_network и pod_network
вот у меня первая сетка это 10.3.х.х а вторая 10.4.х.х