Eduard
это проблема админа
Eduard
и никто не мешает джобу написать
Grisha
которая будет делать что?
Eduard
убивать поды приложения
Grisha
звучит очень странно) на вскидку удобнее держать конфиг внутри контейнера, чтобы не делать такие штуки
Grisha
но я видимо ошибаюсь раз люди используют cm
Eduard
.......... ты ещё скажи креды к проду держать в коде норм
Grisha
нет) это явно треш)
Rainbow
звучит очень странно) на вскидку удобнее держать конфиг внутри контейнера, чтобы не делать такие штуки
Можно генерить конфиг мапу с суффиксом sha1 от контента. Имя будет меняться при правках и ролинг апдейт без костылей
Rainbow
так делает kustomize
Grisha
Можно генерить конфиг мапу с суффиксом sha1 от контента. Имя будет меняться при правках и ролинг апдейт без костылей
это уже ближе к делу, звучит не плохо, а можешь дать екземп? я просто пока туго соображаю в эту сторону
Rainbow
это уже ближе к делу, звучит не плохо, а можешь дать екземп? я просто пока туго соображаю в эту сторону
сильно завист от тула, через который генеришь все остальное. У меня большей частью все немного баша или kustomize
cent
В докладе от яндекса рассказывали зачем
А где можно посмотреть/почитать доклад?
Rainbow
А где можно посмотреть/почитать доклад?
https://events.yandex.ru/events/yagosti/06-feb-2019/
cent
https://events.yandex.ru/events/yagosti/06-feb-2019/
Но что-то я там не увидел доклада о том, что etcd нужно выносить отдельно от мастера.
Vadim
https://github.com/corneliusweig/rakkess
Rainbow
Но что-то я там не увидел доклада о том, что etcd нужно выносить отдельно от мастера.
https://youtu.be/AEnjFiZEHH8?t=3673 там доклад не про то, почему 6 нод. А про то как будет делать яндекс и почему. Если кратко то, что я услышал.. 1... - etcd stateful - k8s master stateless (можно запускать на премтибл нодах запросто и другие плюшки stateless) они админятся по разному. 2... vm под control plane масштабируются вертикально автоматически в зависимости от количества нод.
Rainbow
Понял. Спасибо
Это имеет смысл только на огромных масштабах в общем.
Михаил
Обещанные видео с ♥ Kubernetes 14 февраля в Mail.ru Group – в плейлисте тут: https://bit.ly/2St19iJ Для тех, кто соскучился и хочет пересмотреть, на этот раз даже почти без кликера™ ☺️
Vadim
кстати, тем кто интересовался как устроен CI на довольно крупном проекте - https://www.youtube.com/watch?v=ANy-fZIFVlY
Maksim
Доброе утро
Maksim
Ни у кого не было странной баги в кибере, создаешь отдельный намеспейс, деплоймент, сервис, ингресс, в ингрессе указываешь домен, а по нему открывается другой под, с этого кластера?
Slach
https://github.com/cablespaghetti/kubeadm-aws о, сам хотел такую штуку сделать
Maksim
labels проверь у всего остального
А с ингрессом можно использовать type:NodePort?
Eduard
Да
Maksim
У сервиса
Maksim
labels проверь у всего остального
У всего остального это именно у пода который вместо нужного показывается?
Eduard
+
Anonymous
N
Terry
у меня вопрос, кто-то еще Vagrant юзает для разработки? ну или для прода😐
Puma
ну честно этот подход давно устарел используют наверно только мастадонты и то потому что исторически сложилось
Даня
есть вопрос: я запускаю консул агенты демонсетом в кубере для работы с kv, подскажите плз, куда глянуть в доке для того чтоб получить адрес поды на ноде через Kubernetes API
Даня
sps
Andrei
Ребят, подскажите, плиз, раньше в дефолтной установке графаны был "Kubernetes Control Plane Status", есть у кого обновленная версия?
Даня
https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/#use-pod-fields-as-values-for-environment-variables
а если мне надо получить этот адрес для другой поды с моим приложением?
Даня
допустим есть consul client, есть java app, в данный момент я бегаю через kubernetes service на consul server
Даня
аа
Даня
я кажется понял
Даня
у меня ведь клиент будет сидеть на host ip
Даня
и я беру адрес ноды и иду на нее со своего контейнера с приложухой
G72K
https://medium.com/kokster/kubernetes-mount-propagation-5306c36a4a2d
На удивление годная статья, сейчас таких мало. Спасибо
Vadim
а если мне надо получить этот адрес для другой поды с моим приложением?
добро пожаловать в мир распределенных систем, где всё надо продумывать самому, учитываю специфику приложения. Зато у нас есть конфигмапы и эндпоинты
Даня
Andrey
Ребзя а что нынче хорошим тоном считается лепить под препрод отдельный кубер или пускать на продовском?
Даня
я планирую 3 кластера крутить, 1 под девы и стейджинги, 1 под препрод и 1 под прод
Даня
тк на проде и препроде базы, очереди и консулы будут outside of cluster
Даня
сейчас пока только дев)))
Artem
Всем привет
Artem
На одной мастер ноде скедулер и контроллер менеджер не запускаются по причине "CreateContainerError". Запущены как статичные поды. В кубелете есть такие сообщения:
Artem
Feb 28 09:11:53 kube-master kubelet[943]: E0228 09:11:53.698660 943 remote_runtime.go:191] CreateContainer in sandbox "c311c65ae2643ca35213fd9d53db201b0099753c1bc8138efb8baa7e27f02a42" from runtime service failed: rpc error: code = Unknown desc = the container name "k8s_kube-controller-manager_kube-controller-manager-kube-master_kube-system_60cd0ce0d520e855283806b4dc55c39d_38" is already in use by "88483a9855beda04b250d8f481b5cd65375f992e0266f662c7786493f1cb8587". You have to remove that container to be able to reuse that name.: that name is already in use
Artem
Куда копнуть?
Artem
контейнер рантайм - крио
Artem
в его логах ошибок не увидел
Andrei
Как минимум, два: dev/qa, stage/prod
G72K
Ребзя а что нынче хорошим тоном считается лепить под препрод отдельный кубер или пускать на продовском?
Хорошему тону можно у военных моряков поучиться: водонепроницаемые перегородки , пожар в одном отсеке не топит все судно
Дмитрий
apiVersion: apps/v1 kind: Deployment metadata: labels: name: test tier: backend name: test namespace: default spec: replicas: 1 selector: matchLabels: tier: backend template: metadata: labels: tier: backend spec: volumes: - name: shared-data emptyDir: {} containers: - name: nginx-container image: nginx volumeMounts: - name: shared-data mountPath: /usr/share/nginx/html ports: - containerPort: 80 - name: debian-container image: debian volumeMounts: - name: shared-data mountPath: /pod-data command: ["/bin/sh"] args: ["-c", "echo Hello from the debian container in deployment > /pod-data/index.html"] kubectl apply -f this_file.yml => CrashLoopBackOff при создании деплоймента с несколькими контейнерами по примеру с официального сайта (там только kind Pod вместо Deployment, но суть та же). Есть у кого идея как это задетектить и понять причину ошибки?
Andrei
Потому что echo надо в init контейнере делать
Andrei
А в обычном запускать nginx с папкой
Rainbow
Потому что echo надо в init контейнере делать
где хочется, там пусть и делает. Это не имеет значения тут
Vadim
1. runAsUser: 0, вдруг у вас строгие PSP 2. Перед тем как писать в /pod-data/index.html надо убедиться что этот каталог есть
Дмитрий
1. runAsUser: 0, вдруг у вас строгие PSP 2. Перед тем как писать в /pod-data/index.html надо убедиться что этот каталог есть
Почему тогда при apply этого конфига всё без ошибок? apiVersion: v1 kind: Pod metadata: name: two-containers spec: restartPolicy: Never volumes: - name: shared-data emptyDir: {} containers: - name: nginx-container image: nginx volumeMounts: - name: shared-data mountPath: /usr/share/nginx/html - name: debian-container image: debian volumeMounts: - name: shared-data mountPath: /pod-data command: ["/bin/sh"] args: ["-c", "echo Hello from the debian container > /pod-data/index.html"]
Andrei
где хочется, там пусть и делает. Это не имеет значения тут
Да ладно? А то что он будет рестартится норм? В рамках вопроса "как посмотреть", не имеет
Vadim
потому что оба конфига валидны
Дмитрий
при апплай или запуске?
делаю apply и под нормально стартует
Andrei
"Есть у кого идея как это задетектить и понять причину ошибки?"
G72K
Модульный монолит, ребята давно про это говорили в докладах, но сейчас запилили обзорную статью хорошую: https://engineering.shopify.com/blogs/engineering/deconstructing-monolith-designing-software-maximizes-developer-productivity
Andrei
потому что оба конфига валидны
Валидны с точки зрения синтаксиса или здравого смысла?
Vadim
Валидны с точки зрения синтаксиса или здравого смысла?
я даже не знаю на какой пункт из двух вы отвечаете
Andrei
Промахнулся, сорри) В общем apply отвалится только если апи не скушает json манифеста. Оно никак не следит за тем что что-то запустилось и работает как надо. Причина: второй контейнер рестартится т.к. процесс внутри завершился. RestartPolicy - зашквар, нужно перенсти в init