Timur
спасибо!
Maxim
https://github.com/kubernetes/dashboard/releases/tag/v1.4.0
Dmitry
Кто какие message queue использует? Что бы кластеризовались нормально в kubernetes и была поддержка авторизации, для того что бы можно было снаружи доступ открыть. Сейчас у нас используется gearman и он ни то ни другое не умеет
Denis
Выбирать брокера исходя из его поддержки в кубернетесе это странно
Denis
Надо по задачам выбирать же
Dmitry
я имею ввиду возможность его кластеризации и HA
Maxim
Тогда надо таможенного брать :D
Denis
По мне кафка идеальный брокер, ха, кластеризация, репликация, есть тулза от линкдин для оттопыривания ее через рестфул апи
Dmitry
ну его поднимать весьма сложно
Denis
Поднять три нода зк и три ноды кафки, вроде ничего сложного. Как в кубе ее запускать - не скажу.
Maxim
блин, шедулер кубернетовский чот запарил уже
Maxim
под-аффинити нормального нету даже в роадмапе :(
Maxim
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
Maxim
вот нахрена они мне оба на одной железке?
Maxim
она в даун ушла и все
kay
пили ручками
Maxim
пока кубернетес опомнится, что ноды не стало
kay
либо daemonset
Maxim
пока их переподнимет
Dmitry
Как ты это планируешь решать?
Maxim
демонсеты жопа
Maxim
You cannot update a DaemonSet.
Support for updating DaemonSets and controlled updating of nodes is planned.
Maxim
ну то есть они для другой задачи
Maxim
weave у меня демонсетом, например
Maxim
это как-раз в кассу
Maxim
а пользовательский пэйлоад - это деплойменты
Maxim
но там нет под-аффинити
Maxim
сейчас я это решаю методом костыля и велосипеда:
kubectl cordon <node>
kubectl delete po <pod>
kubectl uncordon <node>
Maxim
но это немножко пиздец
Maxim
еще и хрен автоматизируешь
Maxim
https://github.com/kubernetes/kubernetes/blob/master/docs/design/podaffinity.md#anti-affinity
Maxim
и тут упор на зоны
Maxim
когда кластер федерированый
Anonymous
Maxim
что в 1.4?
Dmitry
Мы короч пофиксали это тем, что указываем хост порт на ноде в подах
Dmitry
тогда два пода не поднимутся на одной ноде
Maxim
В 1.4 же
чейнжлог/issue в студию ;)
Anonymous
что в 1.4?
А, ты про поды, сори... Я про замену nodeselector подумал
Maxim
ну у меня все реплики одного пода сейчас могут на одной ноде всплыть
Maxim
и я никак не могу этому помешать
Anonymous
Реплики пода?
Dmitry
я же выше написал, указываешь хост порт - и не поднимутся
Anonymous
Или поды реплики?
Maxim
ну ты в Deployment/RC указываешь .spec.replicas
Maxim
вон выше пример
Maxim
у деплоймента preview replicas = 2
Maxim
и обе всплыли на одной ноде
Maxim
и айпитаблесами я это хрен закрою, потому что kube-proxy перезапишет тут же
Maxim
если я ничего не путаю, то type: nodePort повесит их на 0.0.0.0
Maxim
тебе хорошо ;)
Dmitry
ports:
- containerPort: 6379
hostport: 6379
Maxim
ну мне так никак - у меня железки голой жопой в дикий интернет торчат
Alexander
коллеги, а если какие-то ограничения на namespace?
Maxim
какого рода?
kay
dns-like имена RFC 4592
Alexander
ну хотя-бы по количеству?
kay
ограничений по количеству нет
Alexander
это уже хорошо
kay
пардон. не тот rfc
Maxim
ну короче [a-z0-9\-]+
kay
[a-z0-9]([-a-z0-9]*[a-z0-9])?
Maxim
да, правильно
Maxim
в начале и конце минус не может быть
kay
offtop https://habrahabr.ru/post/20588/
Maxim
бгггг
Maxim
короче, мне впервые помогли в kubernetes.slack.com
Maxim
рассказываю
Maxim
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"
}
]
}
}
Maxim
ебать портянка
Maxim
короче
Maxim
это аннотация для аффинити
Maxim
первый nodeSelectorTerms говорит нам, что не надо ничего запускать на ноде, где лабел kubemaster:true
Maxim
это не очень интересно
Maxim
но вот зато podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.labelSelector
Maxim
тут уже интересно
Maxim
все поды с лейблом k8s-app:kube-dns должны НЕ быть рядом относительно "topologyKey": "kubernetes.io/hostname"
Maxim
и это именно то, чего я и хотел