Denis
можешь куском из cloud-config поделиться? :)
Maxim
какой клауд-конфиг, у меня bare metal ;)
Maxim
могу только chef-кукбуком поделиться
Denis
:))
Denis
Нормально!
Denis
Пойдет
Denis
Всё съедим
Maxim
ггг
Vadim
Приветствую всех. Подскажите, есть ли возможность для реплик в deployment динамически выделять pv ?
timothy
у меня скрипт для бекапов на s3 с шифрованием через duplicity, в cloudconfig только включение сервиса и расписание: script: etcdctl backup -data-dir /var/lib/etcd2 -backup-dir /data/etcd2 docker run --rm -v /data/etcd2:/etcd2 -e "PASSPHRASE=${PASSPHRASE}" -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" jqestate/duplicity duplicity --verbosity notice --allow-source-mismatch --s3-use-new-style --full-if-older-than 1W --asynchronous-upload /etcd2 "${S3_PREFIX}/etcd2" coreos: units: - name: "backup.service" content: | [Unit] Description=Backup [Service] ExecStart=/bin/bash /data/backup_to_s3.sh [Install] WantedBy=multi-user.target - name: "backup.timer" command: "start" content: | [Unit] Description=Runs backup every day at 12 AM [Timer] OnCalendar=00:00 Persistent=true
Maxim
@ktimothy а что у тебя в /data/etcd2 после etcdctl backup?
timothy
такая же структура как в /var/lib/etcd2
Maxim
а у меня - не совсем
Maxim
etcdctl backup --data-dir=/var/lib/etcd --backup-dir=./backup # tree backup/ backup/ └── member ├── snap │ └── 000000000000000c-0000000001495168.snap └── wal └── 0000000000000000-0000000000000000.wal # tree /var/lib/etcd/ /var/lib/etcd/ └── member ├── snap │ ├── 000000000000000c-000000000148b524.snap │ ├── 000000000000000c-000000000148dc35.snap │ ├── 000000000000000c-0000000001490346.snap │ ├── 000000000000000c-0000000001492a57.snap │ ├── 000000000000000c-0000000001495168.snap │ └── db └── wal ├── 000000000000004f-000000000147cc02.wal ├── 0000000000000050-0000000001481e35.wal ├── 0000000000000051-0000000001487068.wal ├── 0000000000000052-000000000148c275.wal ├── 0000000000000053-0000000001491499.wal └── 0.tmp
Maxim
как видишь, в папке backup не хватает файлика member/snap/db
Maxim
и без этого этот быкап невалиден
timothy
inderesding
Maxim
# etcd --data-dir backup/ --listen-peer-urls http://localhost:23800 --listen-client-urls 'http://localhost:23790' --advertise-client-urls 'http://localhost:23790' ... 2016-08-17 14:11:48.835088 I | etcdmain: stopping listening for client requests on localhost:23790 2016-08-17 14:11:48.835119 I | etcdmain: stopping listening for peers on http://localhost:23800 2016-08-17 14:11:48.835135 C | etcdmain: database file (backup/member/snap/db) of the backend is missing
Maxim
@ktimothy ты проверь, может ты тоже воздух быкапишь ;)
timothy
я брал пример с https://coreos.com/etcd/docs/latest/admin_guide.html, сейчас сделаю restore внутри игрового сервера на vmware
Maxim
да просто запусти етцд на кастомных портах с бэкапом в качестве датадира
timothy
таки да, это же было актуально для старого etcd, там в доке -force-new-cluster опция, которой нет в v2
Maxim
так как, получилось у тебя стартовать?
timothy
нет, ты прав, после restore etcd2 уже не запустить. хорошо, что для k8s есть все манифесты и потеря стейта в etcd2 не принесло бы горя, сейчас и поправлю скрипт
timothy
хотя нет, это я что-то не так делаю, в тех же офф скриптах делают бекап как и я: https://github.com/coreos/etcd/blob/master/contrib/systemd/etcd2-backup-coreos/etcd2-backup.service#L12
timothy
забавно, но теперь etcd2 просто валится с паникой: panic: runtime error: index out of range goroutine 59 [running]: github.com/coreos/etcd/raft.(*raft).maybeCommit(0xc8201c23c0, 0xc8201dc6c0) /build/amd64-usr/var/tmp/portage/dev-db/etcd-2.3.2/work/gopath/src/github.com/coreos/etcd/raft/raft.go:382 +0x2fd github.com/coreos/etcd/raft.(*raft).removeNode(0xc8201c23c0, 0xce2a822cea30bfca) /build/amd64-usr/var/tmp/portage/dev-db/etcd-2.3.2/work/gopath/src/github.com/coreos/etcd/raft/raft.go:842 +0x59 github.com/coreos/etcd/raft.(*node).run(0xc8201f9e00, 0xc8201c23c0) /build/amd64-usr/var/tmp/portage/dev-db/etcd-2.3.2/work/gopath/src/github.com/coreos/etcd/raft/node.go:330 +0xc8f created by github.com/coreos/etcd/raft.RestartNode /build/amd64-usr/var/tmp/portage/dev-db/etcd-2.3.2/work/gopath/src/github.com/coreos/etcd/raft/node.go:215 +0x2e3 goroutine 1 [chan receive]:
timothy
as always
timothy
https://github.com/coreos/etcd/issues/5360 отлично, stable релиз все еще с этой багой
timothy
а опция --force-new-cluster как раз у etcd2, я первый раз запустил etcd v1 и получил ошибку, так что метод должен работать, если etcdctl backup будет с фиксом бага выше
Maxim
--force-new-cluster тоже не помогает
Maxim
короче, бэкапов сейчас нет
Maxim
фаталити-юзабилити :(
timothy
фаталити-юзабилити :(
у меня такое было с k8s, когда я сразу поставил 1.3 и огреб паники и “гонки” во время монтирования секретов для контейнеров
Maxim
с 1.3 у меня тут тоже есть странности
timothy
kubelet с ошибками монтирования?
Maxim
1.3.{1,2,3,4} работают
Maxim
запускаю 1.3.5 и получаю ошибки про CNI
Maxim
и ничего не работает
timothy
Calico?
timothy
у меня flannel и все “ок”*
Maxim
weave
timothy
вообще k8s пугает количеством багов с паникой https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20panic
Ivan
у меня такое было с k8s, когда я сразу поставил 1.3 и огреб паники и “гонки” во время монтирования секретов для контейнеров
Есть надежда, что эту хрень я исправил https://github.com/kubernetes/kubernetes/pull/29641 В стабильную ветку черипикнуто, в 1.3.5 (и, по-моему, 1.3.4) тоже уже есть фикс
timothy
спасибо! как раз обновление до версии 1.3.4 решило проблему
timothy
но теперь не буду обновляться еще месяцев 5
Ivan
чуть не опух, пока e2e тест писал для этого race, сейчас на review
Anonymous
какой клауд-конфиг, у меня bare metal ;)
Наливал баре метал с клауд инитом.
Maxim
а кто его подхватывал?
Maxim
или ты кореосы на баре-метал наливал?
Anonymous
народ, возможно у меня ламерский вопрос, но как вы делаете апдейты? вот я создал "kind: Deployment" и загрузил его в спеке написано что деплоймент произойдет (поды перезапустятся) если что-то изменится в spec.template.* ок, заинкризил spec.template.metadata.labels.version и выполнил "kubectl apply -f file.yaml" натолкнулся на эту ишьюсу: https://github.com/kubernetes/kubernetes/issues/26202 я что-то неправильно сделал? а как правильно выкатить новую версию при условии что не менялся имадж и все остальное?
Anonymous
юзкейс: висит фронтендом nginx и к нему подключен конфигсет с конфигурацией... конфигурацию я обновил, теперь хочу чтобы сервер перезапустился graceful
Maxim
под пристрели
Maxim
репликасет поднимет новый
Anonymous
ну это вроде как "хак" и должен существовать способ деплоя?
Anonymous
учитывая что пока он его поднимает сервис будет недоступен
Maxim
а там replica: 1?
Anonymous
угу
Anonymous
было бы "10" - каждый руками пришлось? кмон, это ж канал с девопсами а мы все ленивые :)
Anonymous
ладно, в данном случае добавил "annotations: *" и его буду менять
Anonymous
или ты кореосы на баре-метал наливал?
Именно. Клауд инит же там есть. Ему файл подсовывай и готово
Anonymous
Правда, я потом отошел на iPXE, а потом просто забил) денег за это не платят :(
Maxim
а как же рейды там всякие, lvm и вот это все
Anonymous
@pipopolam вам программисты на го не нужны? Инфраструктурные
Maxim
чего кореос не умеет
Anonymous
чего кореос не умеет
Умеет. Маны читать :)
Maxim
Anonymous
вроде нет, но на всякий случай спрошу
Это не мне, это коллега скоро увольняется. Но спроси, мало ли :)
Maxim
у меня flannel и все “ок”*
а он у тебя с CNI, или через kubenet?
timothy
не, я вообще не передаю опции для cni, у меня docker работает через flannel, а k8s вообще о нем ничего не знает
Maxim
вроде в новой фланели можно как-то обойти эту чудовищную схему
timothy
после выхода 1.4 попробую избавиться от докера в пользу rkt и попробую тогда network плагины
Maxim
о, ничоси
Maxim
а в чем пойнт?
timothy
чтобы меньше паников в докере огребать
Maxim
в каком смысле?
timothy
не знаю как, но часто он просто валится с паникой и большинство процессов вместе с ним
Maxim
докер-демон?
timothy
в логах ничего такого нет, чтобы это был oom