
Denis
21.09.2016
07:10:33
Надо по задачам выбирать же

Dmitriy
21.09.2016
07:11:43
я имею ввиду возможность его кластеризации и HA

Maxim
21.09.2016
07:12:38
Тогда надо таможенного брать :D

Denis
21.09.2016
07:19:35
По мне кафка идеальный брокер, ха, кластеризация, репликация, есть тулза от линкдин для оттопыривания ее через рестфул апи

Google

Dmitriy
21.09.2016
07:19:59
ну его поднимать весьма сложно

Denis
21.09.2016
07:21:00
Поднять три нода зк и три ноды кафки, вроде ничего сложного. Как в кубе ее запускать - не скажу.

Maxim
21.09.2016
07:28:47
блин, шедулер кубернетовский чот запарил уже
под-аффинити нормального нету даже в роадмапе :(
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE
apps preview-2095895428-214qf 1/1 Running 0 2h 192.168.96.3 10.83.8.198
apps preview-2095895428-46cmu 1/1 Running 4 9d 192.168.96.2 10.83.8.198
вот нахрена они мне оба на одной железке?
она в даун ушла и все

kay
21.09.2016
07:30:30
пили ручками

Maxim
21.09.2016
07:30:34
пока кубернетес опомнится, что ноды не стало

kay
21.09.2016
07:30:38
либо daemonset

Maxim
21.09.2016
07:30:43
пока их переподнимет

Dmitriy
21.09.2016
07:31:43
Как ты это планируешь решать?

Maxim
21.09.2016
07:31:43
демонсеты жопа

Google

Maxim
21.09.2016
07:31:45
You cannot update a DaemonSet.
Support for updating DaemonSets and controlled updating of nodes is planned.
ну то есть они для другой задачи
weave у меня демонсетом, например
это как-раз в кассу
а пользовательский пэйлоад - это деплойменты
но там нет под-аффинити
сейчас я это решаю методом костыля и велосипеда:
kubectl cordon <node>
kubectl delete po <pod>
kubectl uncordon <node>
но это немножко пиздец
еще и хрен автоматизируешь
https://github.com/kubernetes/kubernetes/blob/master/docs/design/podaffinity.md#anti-affinity
и тут упор на зоны
когда кластер федерированый

Andrey
21.09.2016
07:38:59

Maxim
21.09.2016
07:39:08
что в 1.4?

Dmitriy
21.09.2016
07:39:08
Мы короч пофиксали это тем, что указываем хост порт на ноде в подах
тогда два пода не поднимутся на одной ноде

Maxim
21.09.2016
07:40:40

Andrey
21.09.2016
07:41:09
что в 1.4?
А, ты про поды, сори... Я про замену nodeselector подумал

Maxim
21.09.2016
07:41:40
ну у меня все реплики одного пода сейчас могут на одной ноде всплыть
и я никак не могу этому помешать

Google

Andrey
21.09.2016
07:42:18
Реплики пода?

Dmitriy
21.09.2016
07:42:32
я же выше написал, указываешь хост порт - и не поднимутся

Andrey
21.09.2016
07:42:33
Или поды реплики?

Maxim
21.09.2016
07:42:51
ну ты в Deployment/RC указываешь .spec.replicas
вон выше пример
у деплоймента preview replicas = 2
и обе всплыли на одной ноде
и айпитаблесами я это хрен закрою, потому что kube-proxy перезапишет тут же
если я ничего не путаю, то type: nodePort повесит их на 0.0.0.0

Dmitriy
21.09.2016
07:47:03

Maxim
21.09.2016
07:47:17
тебе хорошо ;)

Dmitriy
21.09.2016
07:47:30
ports:
- containerPort: 6379
hostport: 6379

Maxim
21.09.2016
07:48:24
ну мне так никак - у меня железки голой жопой в дикий интернет торчат

Alexander
21.09.2016
08:55:34
коллеги, а если какие-то ограничения на namespace?

Maxim
21.09.2016
08:56:06
какого рода?

kay
21.09.2016
08:56:16
dns-like имена RFC 4592

Alexander
21.09.2016
08:56:26
ну хотя-бы по количеству?

kay
21.09.2016
08:56:43
ограничений по количеству нет

Alexander
21.09.2016
08:57:00
это уже хорошо

Google

kay
21.09.2016
08:57:15
пардон. не тот rfc

Maxim
21.09.2016
08:57:42
ну короче [a-z0-9\-]+

kay
21.09.2016
08:58:16
[a-z0-9]([-a-z0-9]*[a-z0-9])?

Maxim
21.09.2016
08:58:47
да, правильно
в начале и конце минус не может быть

kay
21.09.2016
08:59:53
offtop https://habrahabr.ru/post/20588/

Maxim
21.09.2016
09:00:05
бгггг
короче, мне впервые помогли в kubernetes.slack.com
рассказываю
annotations:
scheduler.alpha.kubernetes.io/affinity: >
{
"nodeAffinity": {
"requiredDuringSchedulingIgnoredDuringExecution": {
"nodeSelectorTerms": [
{
"matchExpressions": [
{
"key": "role",
"operator": "In",
"values": [
"kubemaster"
]
}
]
}
]
}
},
"podAntiAffinity": {
"requiredDuringSchedulingIgnoredDuringExecution": [
{
"labelSelector": {
"matchExpresions": [
{
"key": "k8s-app",
"operator": "NotIn",
"values": [
"kube-dns"
]
}
]
},
"topologyKey": "kubernetes.io/hostname"
}
]
}
}

Admin
ERROR: S client not available

Maxim
21.09.2016
09:13:23
ебать портянка
короче
это аннотация для аффинити
первый nodeSelectorTerms говорит нам, что не надо ничего запускать на ноде, где лабел kubemaster:true
это не очень интересно
но вот зато podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
тут уже интересно
все поды с лейблом k8s-app:kube-dns должны НЕ быть рядом относительно "topologyKey": "kubernetes.io/hostname"
и это именно то, чего я и хотел

Google

Maxim
21.09.2016
09:16:47
ура
ждем 1.4
;)

kay
21.09.2016
09:17:15
это запилили в 1.4?

Maxim
21.09.2016
09:17:48
alpha feature in 1.4

kay
21.09.2016
09:17:53
вроде notin было уже 1.3

Dmitriy
21.09.2016
09:22:04
ну те не будет два пода на одной ноде?

Maxim
21.09.2016
09:22:21
да

Dmitriy
21.09.2016
09:22:32
круто, попробуем

Maxim
21.09.2016
09:22:39
а у тебя уже 1.4?

Dmitriy
21.09.2016
09:22:46
ааа
не, у меня 1.3.7

Maxim
21.09.2016
09:23:01
таж фигня
ждем
там правда уже бета9
можно попробовать
но я чот ссу
;)
ваще они чот проебали релиз-то
https://github.com/kubernetes/features/blob/master/release-1.4/Release-1.4.md
должен был быть вчера
но вчера только бета9 вышла