@kubernetes_ru

Страница 65 из 958
Andrey
26.09.2016
14:25:58
еще варианты? помощь зала

Alexander
26.09.2016
14:27:50
Для статики github используй

+cloudflare

Andrey
26.09.2016
14:29:25
и какой воркфлоу? 1) запускаем в CI по коммиту билд и забираем из гитхаба проект из репы А 2) билдим статику и пушим проект в репу Б 3) запускаем pod с подключеным стораджем-репой Б негибко

Google
Andrey
26.09.2016
14:29:41
мало ли че изменить надо, или статику по ftp закачивают... короче очень узкий юзкейс

ладно, я уже понял что рецепта готового нет, сори за спам

Vadim
26.09.2016
14:34:34
тоже мучался со статикой, не в контексте кубернетиса, просто с докером. было 3 варианта: 1. При обновлении репозитория с кодом в CI собирать еще и контейнер с nginx с включенной статикой 2. В контейнер с кодом добавить entrypoint, который при запуске делает rsync кода залитого в контейнер с volume, который расшарен с контейнером nginx 3. При обновлении репозитория с кодом в CI заливать статику (синхронизировать содержимое) с удаленным хранищием, типа S3 или подобного.

Andrey
26.09.2016
14:35:11
на чем остановился?

Vadim
26.09.2016
14:35:16
пока на rsync

но не нравиться volume использовать

их неудобно удалять при переносе

Fike
26.09.2016
14:35:53
volume в смысле не приманученная папка, а image volume?

Andrey
26.09.2016
14:35:53
ну опять же докеры, контейнеры... вся эта виртуализация из-за пары файлов

Fike
26.09.2016
14:37:40
короче, если там volume не в смысле папки на хосте, а в смысле пути, который сохраняется между запусками контейнеров, то это сразу не очень хороший вариант

Vadim
26.09.2016
14:38:17
это volume который докер создает в /var/lib/docker/volumes

Fike
26.09.2016
14:39:03
вот им вообще лучше не пользоваться

Google
Vadim
26.09.2016
14:39:37
еще один вариант испоьзуем там где можем - статика отдается средствами прилоежния, а nginx её проксирует из контейнера с приложением и кеширует

приложения на node.js у нас так работают

хочется польностью уйти от volume

Igor
26.09.2016
14:45:13
а чем плох volumes?

Fike
26.09.2016
14:46:17
Жрет диск, непрозрачен, непонятно, откуда у тебя при новом запуске mysql старые данные, отключается только втупую маунтом папки сверху

Любит оставаться на дсике после удаления изображения

Там даже маунтейнеры по-моему публично плевались

Igor
26.09.2016
14:47:17
у это вот так 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

так нужно для картинок или для статики - css, js?

но это для docker. как сделать в kuberntes правильно, мне самому интересно :)

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; } }

для полноты картины nginx conf

Fike
26.09.2016
14:51:48
ну они могли просто не объявлять volume в докерфайле, и все

Те, кому важно хранить данные между запусками, выносили бы на хост в виде отдельной директории. А так я знаю, что у меня на ноутбуке неведома туча сранины (у каждого изображения-то свой volume), которую регулярно надо подчищать, и боюсь, что будет, если мне такую штуку придется выносить в прод.

Vadim
26.09.2016
14:57:21
папка на хосте плохая альтрентаива - у нее переносимость еще меньше чем у volume

Fike
26.09.2016
14:58:07
тем, что тар придется самому запускать?

это ровно такой же маунт, только абсолютно непрозрачный

Andrey
26.09.2016
15:01:04
ну что, к какому консенсусу пришли? как лучше статику деплоить-то? )

Alisa
26.09.2016
15:48:05
подскажите, я вот думаю таки dcos разворачивать у себя на двух пеках с coreos, планирую туда подключать spark, kafka, cassandra и всякие свои микросервисы, dcos для этих дел самое оно или kubernetes лучше?

Google
Sergey
26.09.2016
15:48:40
два пека - docker swarm

IMO

yolkov
26.09.2016
22:56:20
https://github.com/kubernetes/kubernetes/releases/tag/v1.4.0

они фигачат новые релизы быстрее чем я их настраиваю(

kay
27.09.2016
05:46:20
рановато еще https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG.md/#known-issues

вот эта фича интересная

http://kubernetes.io/docs/user-guide/node-selection/#inter-pod-affinity-and-anti-affinity-alpha-feature

Andrey
27.09.2016
06:59:43
?

Lev
27.09.2016
07:03:57
добрый день) у кого-нибудь возникали ошибки типа kernel: unregister_netdevice: waiting for vethf0a4e6b to become free. Usage count = 1, как вообще решить можно, обновлением ядра?

kay
27.09.2016
07:09:41
где-то я это видел...

Aleksandr
27.09.2016
07:15:30
где-то я это видел...
При использовании докера это всегда вылазиет :)

kay
27.09.2016
07:16:03
один из коллег с прошлой работы пытался это как-то исправить

Ivan
27.09.2016
07:49:42
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

у них там, правда, какой-то косяк с CI сейчас :(

Alexander
27.09.2016
09:06:37
так что пока рано еще обновляться до 1.4.X?

Dmitriy
27.09.2016
09:08:14
Мы обновились, но чет AntyAffinity не работает

Alexander
27.09.2016
09:10:21
а что за фигня, я чет не в курил

Dmitriy
27.09.2016
09:11:56
Ну например через нее можно указать что бы две копии пода не запускались на одной ноде

Andrey
27.09.2016
09:12:23
или запускались но через "нехочу" и с ворчанием :)

Alexander
27.09.2016
09:13:31
ну так то полезная штука

Google
Andrey
27.09.2016
09:14:29
да, еще в 1.4 шедулеры в альфа-версии должны быть, правка некоторых критичных багов, новая красивая гуя и еще по мелочи... так что штука зело полезная

yolkov
27.09.2016
10:08:15
еще в 1.4 Support for creating Jobs at specified times/dates (i.e. cron) is expected in 1.4

Andrey
27.09.2016
10:09:26
ну да, шедулеры короч

Михаил
27.09.2016
10:21:49
а тут спецов по openshift не появилось?

Vladimir
27.09.2016
10:34:09
А как шедулеры будут реализованы? Они распределенные? Там есть какие-то гарантии?

“A scheduled job creates a job object about once per execution time of its schedule. We say “about” because there are certain circumstances where two jobs might be created, or no job might be created. We attempt to make these rare, but do not completely prevent them. Therefore, jobs should be idempotent.” Я правильно понимаю, что “оно может сработать, может не сработать, может сработать два раза. Вы уже не обесудьте” ?

Admin
ERROR: S client not available

Andrey
27.09.2016
10:59:17
а еще мне непонятно что значит в данном контексте "должны быть идемпотентны": это "мы ниче не обещаем вы сами следите чтобы нужная джоба во второй раз не запускала снова тот же таск, кешируйте там или я хз"?

или "да, мы понимаем что все должно быть красиво... в следующих релизах поправим"

Vladimir
27.09.2016
11:02:53
ну вот AWS Lambda говорят, что сработает как минимум один раз. То есть может быть и два, но чтобы не сработало быть не может. То есть, если идемпотентная функция, то должно быть норм. С кубернетесом я так понял идемпотентность не поможет, ибо может вообще не выполниться.

Andrey
27.09.2016
11:03:37
в общем жду на гугле когда обновится, потестю

Vladimir
27.09.2016
11:05:53
Ну я понимаю. Но хотя бы одну кубернетес гарантирует или нет? Вот в чём вопрос.

Alexander
27.09.2016
11:09:49
а pod можно развернуть в режиме global?

или это как раз нужно делать через Димона :))

Rayan
27.09.2016
11:38:44
rnmv@rnmv-i5:~$ kubectl get svc NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes 100.64.0.1 <none> 443/TCP 3h nginx 100.64.7.221 <pending> 80/TCP 7m уже почти 3 минуты на pending... После выполнения kubectl expose deployment nginx --port 80 --type LoadBalancer. Что может быть не так?

Кластер вроде успешно запустился

Fike
27.09.2016
12:01:32
А как шедулеры будут реализованы? Они распределенные? Там есть какие-то гарантии?
я даже не заглядывал в спеку, но kubernetes держит один активный мастер и хранит все в etcd, тут по-моему особых вариантов-то нет.

Dmitry
27.09.2016
13:50:18
Всем привет! Ребят, хочу совета спросить у тех, кто использует deis workflow. Как вы считаете лучше "поделить" апп на тест, стейдж и прод окружения?

Google
Andrey
27.09.2016
13:53:01
кстати, официальный репозиторий с helm начали заполнять: https://github.com/kubernetes/charts

так что скоро возможно будет пакадж менеджер вменяемый

Dmitry
27.09.2016
13:54:47
Почему не использовать? по мне так хорошая штука для билда и деплоя

Dmitriy
27.09.2016
13:57:53
Почему не использовать? по мне так хорошая штука для билда и деплоя
Он очень ограниченный. Но если тебе нужно задеплоить вордпрес, то наверное пойдет. В других случаях нужно использовать kubernetes

Dmitry
27.09.2016
14:00:50
окай =) я учту, что ничего сложного лучше через deis не заливать. Вопрос-то в другом, есть те, кто использует и как разбивают на test/stage/prod =)

Dmitriy
27.09.2016
14:02:42
ну для начала прод и стейдж/тест держать в одном кластере как-то опасно

Михаил
27.09.2016
14:09:09
уф, спецы, подскажите, есть openshift пытаюсь скрестить его с jenkins прописал апи, ключ, проект, пытаюсь создать деплоймент конфиг через дженкинс, а оно мне в ответ в логах resourceVersion may not be set on objects to be created

Dmitry
27.09.2016
14:14:31
согласен.. Если разбить на 3 отдельных кластера, то должно быть не плохо.. И деис повесить только на тестовые окружения... Хмм.

Dmitriy
27.09.2016
14:14:57
ну достаточно двух: тест+ стейдж и прод отдельно

Dmitry
27.09.2016
14:16:58
ну в принципе да.. если апп в докер засунуть, то и тестровать его можно локалько!

ну а развернуть тестовое окружение(копию прода), можно и терраформом

Pasha
27.09.2016
16:03:00
никто не сталкивался с такой ошибкой? [root@srv-333770 ~]# kubectl version Client Version: version.Info{Major:"1", Minor:"3", GitVersion:"v1.3.7", GitCommit:"a2cba278cba1f6881bb0a7704d9cac6fca6ed435", GitTreeState:"clean", BuildDate:"2016-09-12T23:15:30Z", GoVersion:"go1.6.2", Compiler:"gc", Platform:"linux/amd64"} error: failed to negotiate an api version; server supports: map[], client supports: map[federation/v1beta1:{} autoscaling/v1:{} extensions/v1beta1:{} policy/v1alpha1:{} batch/v1:{} batch/v2alpha1:{} authentication.k8s.io/v1beta1:{} v1:{} authorization.k8s.io/v1beta1:{} componentconfig/v1alpha1:{} apps/v1alpha1:{} rbac.authorization.k8s.io/v1alpha1:{}]

неактуально:)

Fike
27.09.2016
16:34:54
нашел решение -> расскажи сообществу

Pasha
27.09.2016
16:58:53
это касается видимо только google cloud

перед get-credentials надо задавать переменную окружения

Страница 65 из 958