Vadim
kubectl там не работает только, он не может обратиться к серверу
Anonymous
в таких случаях проще налить новый кластер )
𝚔𝚟𝚊𝚙𝚜
Artem
нашел где спрашивать)лор для тролей норм)
А где лучше? Просто в телеге проще ссылку на вопрос с инфой кидать. А лор первый попался.
𝚔𝚟𝚊𝚙𝚜
SANs это что?
Subject Alternative Names (SANs) to use for the API Server serving certificate. Can be both IP addresses and DNS names.
Vadim
на каких дистрибутивах кубер еще активно используют, вроде 2стэка redhat\ol\centos 7 + ubuntu 16.04\18.04 на чем-нибудь еще активно используют?
Vadim
ой не
Vadim
я про дистрибутиы линукса)
Алексей
да на любых же
Алексей
coreos вон
Алексей
где есть докер, там есть и кубер. или нет?
inqfen
У меня все на дебиане, полет нормальный
Stefan
+
inqfen
Ядро только из бэкпортов стоит, 4.19
Vadim
а в старые ядра centos насколько вообще бэкпортируют то что чинят в ядрах 4.* ?
Vadim
где есть докер, там есть и кубер. или нет?
ну может, но зачем распыляться на все, надо какой-то узкий круг взять самый популярный, на редких дистрибах могут быть ньюансы мне кажется
Алексей
Убунта и центось закроют 80 из парето, на остальные 20 забить
Vadim
а в старые ядра centos насколько вообще бэкпортируют то что чинят в ядрах 4.* ?
как только это бэкпортируют в rhel, тут надо changelog'и читать
inqfen
Чем мне не нравится centos - там какая-то вакханалия с ядром
inqfen
По версии типа 3.10 например, а по факту солянка из всего и к ванильному 3.10 отношения вообще не имеет
Andrei
Ребят, никто не находил аналога http://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync для kubernetes/ingress-nginx или lua шный модуль с уже готовой реализацией? А то не хочется самому пилить
Kirill
вопрос по EKS и VBS: правильно ли я понимаю что VBS не монтируется напрямую на EC2 хост а использует аналог bind mount?
✙ DarkKC ✙
https://docs.projectcalico.org/v3.7/getting-started/kubernetes/installation/calico Installing with the Kubernetes API datastore вот этот
Слушай, ещё вопросик возник. В доке есть важный нюанс про If you are using pod CIDR 192.168.0.0/16, skip to the next step. А я как-то не могу вдудеть как узнать какой я сидр юзаю собсна...
✙ DarkKC ✙
Имеется в виду тот сидр из которого AWS CNI выдаёт ИПы? Или сидр, который будет юзать сам калико поверх всего этого безобразия?
✙ DarkKC ✙
вообще я как поставил когда-то себе 10.244.0.0/16 так и юзаю без проблем
этот диапазон, если что, в рамкай твоей VPC, или в данном случае пофиг на это?
Grigorii
нет, у меня VPC в 172-ых сабнетах
✙ DarkKC ✙
ага, спасибо большущее
Grigorii
но вообще будь готов к одной проблеме: control-plane EKS не будет роутить до подов, и иногда будут встречаться ошибки типа address not allowed обычно это касается всяких операторов и api, например metrics-server. Для них можно использовать hostNetwork: true
Alibek
Всем добра! Кто, как справляется с чисткой локальных реестров от dev-мусора?
Kirill
Вроде нет. PV на EBS замонтированы в pod как /dev/диск
Ага, спасибо. В /dev блочное устройство. А где в случае EBS будет точка монтирования?
su
Всем добра! Кто, как справляется с чисткой локальных реестров от dev-мусора?
как власти с оппозицией, радикально chrontab -e 0 0 * * * /usr/bin/docker system prune -a -f --volumes можно еще rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* или rm -r -f /home/gitlab-runner/builds/* rm -r -f /home/gitlab-runner/.cache/*
Алексей
Еще вопрос про pv и pvc
Алексей
Оно 1:1 должно соотноситься, или можно 10 pvc по 10 гб на один 100 гб pv запросить?
Alibek
https://gitlab.com/gitlab-org/docker-distribution-pruner
Спасибо! Но я с ходу не понял на основании чего оно решает, что можно грохать образ и слои из реестра?
Vadim
Спасибо! Но я с ходу не понял на основании чего оно решает, что можно грохать образ и слои из реестра?
читает список слоев и манифестов. Проверяет теги и на какие манифесты они указывает. Отсюда получает список неактивных манифестов - и удаляет их. Отсюда можно получить список активных слоев - и удалить неактивные
Alibek
Т.е. мне как-то надо убрать референсы с образов?
Alibek
А что делать с теми для которых есть теги и всё такое, но которые уже не нужны?
Alibek
Как например удалить все те, которым уже больше года?
Vadim
https://docs.docker.com/registry/spec/api/
Vadim
примерно так и делает, да
Alibek
https://docs.docker.com/registry/spec/api/
Да, про то что у него есть api - вкурсе. Вопрос был о том, как, кто это решает.
Dmitry
А что делать с теми для которых есть теги и всё такое, но которые уже не нужны?
Там можно получить список тегов репозитория - GET /v2/repo_name/tags/list А удалять нужно по digest. Который можно получить таким запросом: -H "Accept: application/vnd.docker.distribution.manifest.v2+json" GET /v2/repo_name/manifests/tag_name - вот этот заголовок вообще случайно нашел, и не в доках, а где-то в инете. Столько боли испытал копаясь в этом. Не мог digest никак вытащить, по которму удалить можно. А затем по digest удалить можно: DELETE /v2/repo_name/manifests/digest Только будте осторожны, если у двух тегов один digest - то удалятся два тега
Dimonyga
Всем привет, есть тут специалисты по openshift-sdn ? вопрос такоу, у меня не доступен внутри подов KUBERNETES_PORT_443_TCP_ADDR с некоторых нод. Новых, не могу найти где накосячил. https://paste.fedoraproject.org/paste/JSRtRF~p7wYx1StdHXYdPQ
Dmitry
Да, про то что у него есть api - вкурсе. Вопрос был о том, как, кто это решает.
https://www.youtube.com/watch?v=bliHtExObHg&feature=youtu.be&t=1796 Флант вообще говорят, самая классная стратегия - не чистить
Dmitry
Спасибо, но это всё равно не решает проблему со старыми, но полностью валидными образами. Хоть-бы был какой каунтер скачиваний или дата последнего скачивания...
Ну так поверх API свою логику писать ествественно требуется. У нас например чистятся все образы с тегами которых нет в гите среди тегов и бранчей и если в кубере нет ни одного контейнера запущенного с этого тега
Dmitry
вобщем когда займетесь этим вопросом, возможно придете к стратегии - не чистить =)
Dmitry
ну тогда пишем код на основе того, как хотите чистить
Dmitry
а да, после удаления через API, образы фактически удаляться только после сборки мусора конечно. То есть регулярно gc еще запускать надо
Alibek
Ну видимо придётся теги, с постфиксом в виде даты, использовать...
Dmitry
и с gc тоже надо быть осоторжным, запускайте его по ночам (чтобы в это время никто не пушил в репу)
Alibek
Ок, спасибо
Andrey
Ну видимо придётся теги, с постфиксом в виде даты, использовать...
В докладе предлагается утилита, которая всё это делает, с cleanup'ом старых image'ей мы давно вопрос решили. https://www.youtube.com/watch?v=bliHtExObHg Заходите, если интересно: https://t.me/werf_ru
Andrey
werf.io
Dmitry
kube-router в качесвте плагина сети кто-нибудь юзает? Наткнулася на интеренсую штуку. Если включить в нем поддержку hostPort, а она нужна например ingress. То получаем неработающий ingress, kube-router в iptables настраивает DNAT правило: -A CNI-DN-c9a897b2515e9564076dc -p tcp -m tcp --dport 443 -j DNAT --to-destination ip_pod_ingress:443 Под которое попадают все пакеты идущие на 443 порт на этом хосте. И при старте контейнера ingress, он ествествнно не может обратиться к kube-apiserver F0731 17:29:05.408249 1 main.go:261] Error trying to get the default server TLS secret nginx-ingress/default-server-secret: could not get nginx-ingress/default-server-secret: Get https://10.96.0.1:443/api/v1/namespaces/nginx-ingress/secrets/default-server-secret: dial tcp 10.96.0.1:443: i/o timeout Так как данный запрос тоже попадает под данное правило. Интересно, можно ли как-то влиять, на формирование правил iptables kube-router'а.
Dmitry
kube-router в качесвте плагина сети кто-нибудь юзает? Наткнулася на интеренсую штуку. Если включить в нем поддержку hostPort, а она нужна например ingress. То получаем неработающий ingress, kube-router в iptables настраивает DNAT правило: -A CNI-DN-c9a897b2515e9564076dc -p tcp -m tcp --dport 443 -j DNAT --to-destination ip_pod_ingress:443 Под которое попадают все пакеты идущие на 443 порт на этом хосте. И при старте контейнера ingress, он ествествнно не может обратиться к kube-apiserver F0731 17:29:05.408249 1 main.go:261] Error trying to get the default server TLS secret nginx-ingress/default-server-secret: could not get nginx-ingress/default-server-secret: Get https://10.96.0.1:443/api/v1/namespaces/nginx-ingress/secrets/default-server-secret: dial tcp 10.96.0.1:443: i/o timeout Так как данный запрос тоже попадает под данное правило. Интересно, можно ли как-то влиять, на формирование правил iptables kube-router'а.
Решил проблему. Можно влиять на правила iptables через конфиг cni. Добавил в исключения сеть сервисов кластера: "conditionsV4": ["!", "-d", "10.96.0.0/12"]. В portmap: { "type":"portmap", "capabilities":{ "snat":true, "portMappings":true }, "conditionsV4": ["!", "-d", "10.96.0.0/12"] }
Alexander
Оно 1:1 должно соотноситься, или можно 10 pvc по 10 гб на один 100 гб pv запросить?
1 к 1, размеры используются для выбора правильного
Алексей
Спасибо
Alexander
Спасибо
Кстати, если начинаешь думать про 10 pvc, то почитай про динамический провизионинг
Алексей
У нас статично их число будет
Алексей
Как раз штук 10
Алексей
А может и меньше