Zon
по хорошему конечно нужно API server но у меня скриптами
я вот думаю делать это или терраформ тлс ресурс пытаться приспособить
Zon
https://www.terraform.io/docs/providers/tls/index.html вот это восхитительно для тестов, я вам скажу
Anonymous
и как оно в связке работает?
Alexander
Может повторюсь, но вот еще хороший пример деплоя кластера на AWS с помощью Terraform https://github.com/kz8s/tack/
Artem
день добрый, впервые буду разворачивать кластер(на aws), как я понял лучше использовать https://github.com/kubernetes/kops и можете подсказать, не будет ли проблем с его настройкой если на aws аккаунте уже поднят один кластер, и как и надоли менять настройки kubctl что бы переключаться между кластерами? или какие бы еще методы посоветывали чтобы развернуть его. заранее благодарен
Anonymous
а расскажите кто как labels использует для структуры?
Lev
@vkfont у нас nodeSelector по лейблам есть
Anonymous
не, я всмысле какие лабелы пихаешь в деплойменты и всякие другие репликасеты? ну там унификация, бест практисес и тп
Alexander
app
Alexander
service
Alexander
Ну и лейбы на ноды еще навешал
Anonymous
че-то несуразица с кубернетесом получается, никак не могу придумать где хранить статику и как ее отображать с одной стороны есть nginx к которому можно стораджи подключать с другой стороны не могу пазл собрать как и куда пихать html (или я плохо гуглю, или в инете вообще рецептов нет для казалось бы простого юзкейса): - configmap был бы выходом если б там не было бага с ошибкой - нижним подчеркиванием (типа в 1.4 исправили) - запускать docker-инстансы с веб-серверами и вмонтированой статикой для отображения пары хтмл-страничек кажется мне черезчур - есть google bucket но нет доступа к нему хранилищами (опять же образ с gcfuse готовить и подмантировать в поды выглядит как удаление гландов через задницу) посоветуйте че, совсем запутался
Anonymous
вот есть kubectl, есть папка с index.html - как дальше поступать?
Etki
на мелкой статике впиливал бы в контейнер с нджинксом
Etki
на большой у нас планировалось сразу отправлять данные в cdn, но не дошли до этого этапа
Etki
т.е. контейнеры бы вообще не имели доступа к статике
Anonymous
впиливать в контейнер с нджинксом :(
Anonymous
походу я щас на 4-й стадии принятия концепции ("депрессия") %)
Anonymous
еще варианты? помощь зала
Alexander
Для статики github используй
Alexander
+cloudflare
Anonymous
и какой воркфлоу? 1) запускаем в CI по коммиту билд и забираем из гитхаба проект из репы А 2) билдим статику и пушим проект в репу Б 3) запускаем pod с подключеным стораджем-репой Б негибко
Anonymous
мало ли че изменить надо, или статику по ftp закачивают... короче очень узкий юзкейс
Anonymous
ладно, я уже понял что рецепта готового нет, сори за спам
Vadim
тоже мучался со статикой, не в контексте кубернетиса, просто с докером. было 3 варианта: 1. При обновлении репозитория с кодом в CI собирать еще и контейнер с nginx с включенной статикой 2. В контейнер с кодом добавить entrypoint, который при запуске делает rsync кода залитого в контейнер с volume, который расшарен с контейнером nginx 3. При обновлении репозитория с кодом в CI заливать статику (синхронизировать содержимое) с удаленным хранищием, типа S3 или подобного.
Anonymous
на чем остановился?
Vadim
пока на rsync
Vadim
но не нравиться volume использовать
Vadim
их неудобно удалять при переносе
Etki
volume в смысле не приманученная папка, а image volume?
Anonymous
ну опять же докеры, контейнеры... вся эта виртуализация из-за пары файлов
Etki
короче, если там volume не в смысле папки на хосте, а в смысле пути, который сохраняется между запусками контейнеров, то это сразу не очень хороший вариант
Vadim
это volume который докер создает в /var/lib/docker/volumes
Etki
вот им вообще лучше не пользоваться
Vadim
еще один вариант испоьзуем там где можем - статика отдается средствами прилоежния, а nginx её проксирует из контейнера с приложением и кеширует
Vadim
приложения на node.js у нас так работают
Vadim
хочется польностью уйти от volume
Igor
а чем плох volumes?
Etki
Жрет диск, непрозрачен, непонятно, откуда у тебя при новом запуске mysql старые данные, отключается только втупую маунтом папки сверху
Etki
Любит оставаться на дсике после удаления изображения
Etki
Там даже маунтейнеры по-моему публично плевались
Igor
у это вот так version: '2' services: nginx: image: nginx volumes: - ./config/nginx.production.conf:/etc/nginx/nginx.conf ports: - '80:80' depends_on: - web volumes_from: - web web: build: context: . dockerfile: Dockerfile.prod env_file: .env environment: - RAILS_ENV=production - RAILS_MAX_THREADS=6 - WEB_CONCURRENCY=5 - PORT=9293 command: 'bundle exec puma -C config/puma.rb' volumes: - /app/public/assets
Igor
так нужно для картинок или для статики - css, js?
Igor
но это для docker. как сделать в kuberntes правильно, мне самому интересно :)
Igor
cat nginx.production.conf http { upstream application { server web:9293; } include mime.types; server { listen 80; server_name localhost; location ^~ /assets/ { root /app/public; gzip_static on; expires 1d; add_header Cache-Control public; } try_files $uri/index.html $uri @application; location @application { proxy_pass http://application; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host:$server_port; proxy_redirect off; } client_max_body_size 10M; keepalive_timeout 10; } }
Igor
для полноты картины nginx conf
Etki
ну они могли просто не объявлять volume в докерфайле, и все
Etki
Те, кому важно хранить данные между запусками, выносили бы на хост в виде отдельной директории. А так я знаю, что у меня на ноутбуке неведома туча сранины (у каждого изображения-то свой volume), которую регулярно надо подчищать, и боюсь, что будет, если мне такую штуку придется выносить в прод.
Vadim
папка на хосте плохая альтрентаива - у нее переносимость еще меньше чем у volume
Etki
тем, что тар придется самому запускать?
Etki
это ровно такой же маунт, только абсолютно непрозрачный
Anonymous
ну что, к какому консенсусу пришли? как лучше статику деплоить-то? )
Anonymous
подскажите, я вот думаю таки dcos разворачивать у себя на двух пеках с coreos, планирую туда подключать spark, kafka, cassandra и всякие свои микросервисы, dcos для этих дел самое оно или kubernetes лучше?
Sergei
два пека - docker swarm
Sergei
IMO
yolkov
https://github.com/kubernetes/kubernetes/releases/tag/v1.4.0
yolkov
они фигачат новые релизы быстрее чем я их настраиваю(
kay
рановато еще https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG.md/#known-issues
kay
вот эта фича интересная
kay
http://kubernetes.io/docs/user-guide/node-selection/#inter-pod-affinity-and-anti-affinity-alpha-feature
Anonymous
👍
Lev
добрый день) у кого-нибудь возникали ошибки типа kernel: unregister_netdevice: waiting for vethf0a4e6b to become free. Usage count = 1, как вообще решить можно, обновлением ядра?
kay
где-то я это видел...
Anonymous
где-то я это видел...
При использовании докера это всегда вылазиет :)
kay
один из коллег с прошлой работы пытался это как-то исправить
Ivan
http://kubernetes.io/docs/user-guide/node-selection/#inter-pod-affinity-and-anti-affinity-alpha-feature
я вчера-позавчера в рамках допила этой фичи аж 3 PR зафигачил. В плане DaemonSet'ов https://github.com/kubernetes/kubernetes/pull/33451 https://github.com/kubernetes/kubernetes/pull/33523 Один, что поменьше, аж вмержили https://github.com/kubernetes/kubernetes/pull/33509
Ivan
у них там, правда, какой-то косяк с CI сейчас :(
Alexander
так что пока рано еще обновляться до 1.4.X?
Dmitry
Мы обновились, но чет AntyAffinity не работает
Alexander
а что за фигня, я чет не в курил
Dmitry
Ну например через нее можно указать что бы две копии пода не запускались на одной ноде
Anonymous
или запускались но через "нехочу" и с ворчанием :)
Alexander
ну так то полезная штука
Anonymous
да, еще в 1.4 шедулеры в альфа-версии должны быть, правка некоторых критичных багов, новая красивая гуя и еще по мелочи... так что штука зело полезная
yolkov
еще в 1.4 Support for creating Jobs at specified times/dates (i.e. cron) is expected in 1.4
Anonymous
ну да, шедулеры короч