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
timothy
спасибо! как раз обновление до версии 1.3.4 решило проблему
timothy
но теперь не буду обновляться еще месяцев 5
Ivan
чуть не опух, пока e2e тест писал для этого race, сейчас на review
Anonymous
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
Правда, я потом отошел на iPXE, а потом просто забил) денег за это не платят :(
Maxim
а как же рейды там всякие, lvm и вот это все
Anonymous
@pipopolam вам программисты на го не нужны? Инфраструктурные
Maxim
чего кореос не умеет
Anonymous
Maxim
timothy
не, я вообще не передаю опции для cni, у меня docker работает через flannel, а k8s вообще о нем ничего не знает
Maxim
вроде в новой фланели можно как-то обойти эту чудовищную схему
timothy
после выхода 1.4 попробую избавиться от докера в пользу rkt и попробую тогда network плагины
Maxim
о, ничоси
Maxim
а в чем пойнт?
timothy
чтобы меньше паников в докере огребать
Maxim
в каком смысле?
timothy
не знаю как, но часто он просто валится с паникой и большинство процессов вместе с ним
Maxim
докер-демон?
timothy
в логах ничего такого нет, чтобы это был oom
timothy