
Тимур
21.09.2016
10:58:18
))

Maxim
21.09.2016
10:58:20
evilmartians.com
кстати про демонсеты
коллеги, а кто-нибудь прометеевский node-exporter в контейнере запускает?

Google

Maxim
21.09.2016
11:06:12
или все по-старинке, на хосте?

kay
21.09.2016
11:45:23
я запускаю

Maxim
21.09.2016
11:45:48
а чего с https://github.com/prometheus/node_exporter/issues/66
?
или не мешает?

kay
21.09.2016
11:48:47
не мешает
мне вот что интересно
как заставить prometheus использовать tls secrets для проверки etcd?
маунтить volume не вариант. должно работать из k8s secrets

Maxim
21.09.2016
11:54:07
$ curl --cacert ca.pem -H 'Authorization: Bearer улюлю' https://kubernetes.default.svc.kubernetes.local/metrics |grep -i etcd|wc -l
335
я вот так делаю

kay
21.09.2016
11:55:36
не то, но у меня есть идейка. надо обдумать
kubectl exeс и kubelet выдает следующее:
error: error executing remote command: error executing command in container: operation timeout: context deadline exceeded

Google

kay
21.09.2016
12:01:55
ни у кого не было?
вместе с этими логами еще вот это:
kubelet[17106]: E0921 12:01:01.644896 17106 generic.go:197] GenericPLEG: Unable to retrieve pods: operation timeout: context deadline exceeded
kubelet[17106]: E0921 12:01:33.178902 17106 kubelet.go:927] Container garbage collection failed: operation timeout: context deadline exceeded
ах да... docker...
опять падла повис
@pipopolam у меня кстати трейс другой

Maxim
21.09.2016
12:08:41
чота он зачастил
а стораж-енжин какой?

kay
21.09.2016
12:09:25
вот мой strace:
$ strace -q -y -v -p 16445
wait4(16452,

Maxim
21.09.2016
12:10:47
да тоже самое, походу
тоже ждет, пока девайс какой-нить разлочится
или мьютекс

kay
21.09.2016
12:11:19
docker info | grep -i stor
Storage Driver: devicemapper
WARNING: Usage of loopback devices is strongly discouraged for production use. Use --storage-opt dm.thinpooldev to specify a custom block storage device.
WARNING: No swap limit support

Maxim
21.09.2016
12:11:27
агада

kay
21.09.2016
12:11:28
всё дефолтно

Maxim
21.09.2016
12:11:37
вот тоже самое было и у горелика
Maxim Filatov оно еще чот меня дискуражит про лупбэк-девайсы, но я не вполне понимаю, о чем оно
Alexander Morozov @bregor ну правильно дискуражит
Эта борода ваще не работает
Maxim Filatov ачочо?
расскажите
Alexander Morozov @bregor короче пару лет назад редхат объявил что не работает
И они там даже фиксить ничего не будут
Maxim Filatov что не работает?
Pavel Forkert лупбеки
https://docs.docker.com/engine/userguide/storagedriver/device-mapper-driver/
Maxim Filatov опа
неожиданно
ну вообще это он так из официального пакета работает
из https://apt.dockerproject.org/repo
Alexander Morozov Ну потому что настройки этого стораджа на админе
То есть на тебе
@kay_rus ^^^

kay
21.09.2016
12:15:14
т.е. надо бы задать дефолтненький overlayfs?

Maxim
21.09.2016
12:15:17
короче, ведущие собаководы советуют переключаться на Overlay2, либо девайсмаппер с raw-lvm
Alexander Morozov - один из коре-девелоперов доскера

Google

Maxim
21.09.2016
12:16:00
с ним сложно спорить

kay
21.09.2016
12:16:36
а в чем разница между overlay и overlay2?

Maxim
21.09.2016
12:16:53
один из костылей, другой - из ядра

kay
21.09.2016
12:17:19
т.е. рекомендуется overlay2. ок. записал.

Ivan
21.09.2016
12:19:20
висячему docker’у можно сделать kill -USR1, он тогда свой стектрейс в логи срыгнёт

kay
21.09.2016
12:20:05
многовато сругнул

Maxim
21.09.2016
12:20:05
Агада, про это я тоже уже писал
Давай я это Морозову отдам
Фигачь гист


Ivan
21.09.2016
12:21:32
тут товарищи тоже нарвались на проблемку с докером, пока дебажим. В основном goroutine 1758792 [semacquire, 61 minutes]:
sync.runtime_Semacquire(0xc82044f574)
/usr/local/go/src/runtime/sema.go:47 +0x26
sync.(*Mutex).Lock(0xc82044f570)
/usr/local/go/src/sync/mutex.go:83 +0x1c4
github.com/docker/docker/daemon.(*Daemon).reducePsContainer(0xc8200ac000, 0xc8215e5c20, 0xc8212c5d40, 0xc823f6d3d0, 0x0, 0x0, 0x0)
/usr/src/docker/.gopath/src/github.com/docker/docker/daemon/list.go:187 +0x49
github.com/docker/docker/daemon.(*Daemon).reduceContainers(0xc8200ac000, 0xc82272a800, 0xc823f6d3d0, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/src/docker/.gopath/src/github.com/docker/docker/daemon/list.go:170 +0x1a5
github.com/docker/docker/daemon.(*Daemon).Containers(0xc8200ac000, 0xc82272a800, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/src/docker/.gopath/src/github.com/docker/docker/daemon/list.go:91 +0x76
github.com/docker/docker/api/server/router/container.(*containerRouter).getContainersJSON(0xc82082c880, 0x7f08bc72a080, 0xc824082f90, 0x7f08c094aa88, 0xc8239db5f0, 0xc824375ce0, 0xc824082f00, 0x0, 0x0)
…
понять надо кто первым этот container.Lock() сделал


kay
21.09.2016
12:23:36
@pipopolam скинул в личку

Maxim
21.09.2016
12:25:45
передал
ждем, пока в этой ихней калифорнии утро наступит

kay
21.09.2016
12:33:47
эвоночто. голый дистр не содержит linux-image-extra. а там как раз aufs сидит. не найдя этот модуль, docker решает использовать devicemapper

Maxim
21.09.2016
12:39:34
агада

Ivan
21.09.2016
12:43:10
мне тут чтобы вместо devicemapper’а overlay заюзать пришлось добавить --storage-driver=overlay2 в опции докера

Maxim
21.09.2016
12:43:25
ну да
это expected behaviour ;)
@kay_rus а ты для ноде_експортер'а юзаешь hostNetwork?

Google

kay
21.09.2016
12:59:36
да

Maxim
21.09.2016
12:59:43
чорт

kay
21.09.2016
12:59:53
ну извиняй =)

Maxim
21.09.2016
12:59:59
гггг
блин, чот у меня ENV не работает
env:
- name: HOST_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
...
args:
- -web.listen-address=${HOSTIP}:9100

kay
21.09.2016
13:16:23
HOST_IP != HOSTIP

Maxim
21.09.2016
13:16:39
да это я криво начепятал
там в манифесте все совпадает

Admin
ERROR: S client not available

kay
21.09.2016
13:17:40
The following information is available to a Pod through the downward API:
The pod’s name
The pod’s namespace
The pod’s IP
A container’s cpu limit
A container’s cpu request
A container’s memory limit
A container’s memory request
nodeip там нет

Fike
21.09.2016
13:17:53
если честно, когда в последний раз пробовал valueFrom (в 1.3.5, кажется), они не заполнялись (по крайней мере в UI, не помню, долез ли я до конкретного контейнера)

Maxim
21.09.2016
13:20:04
;)

kay
21.09.2016
13:20:27
есть то оно есть
но dawnard не поддерживет
щасм покажу почему
ты меня заинтриговал.
кажется это оно https://github.com/kubernetes/kubernetes/blob/6a9a93d46954f69c8736a51cf6a8f073a962ad25/pkg/api/validation/validation.go#L1320

Google

kay
21.09.2016
13:31:34
попробуй spec.nodeName
я тут недавно похожей ерундой занимался. нужно было передавать информацию о pod'е в flexvolume
https://github.com/kubernetes/kubernetes/pull/30694

Maxim
21.09.2016
13:39:40
хехе
с моим пасом:
* spec.template.spec.containers[0].env[0].valueFrom.fieldRef.fieldPath: Invalid value: "status.hostIP": error converting fieldPath: field label not supported: status.hostIP
с твоим:
* spec.template.spec.containers[0].env[0].valueFrom.fieldRef.fieldPath: Unsupported value: "spec.nodeName": supported values: metadata.name, metadata.namespace, status.podIP
supported values прям богат :(

kay
21.09.2016
13:43:15
ну оно берется как раз отсюда: https://github.com/kubernetes/kubernetes/blob/6a9a93d46954f69c8736a51cf6a8f073a962ad25/pkg/api/validation/validation.go#L1320

Maxim
21.09.2016
13:49:41
вот жеж
а в чем суть кастрации-то?..

kay
21.09.2016
13:51:56
вот либо так. запускаешь внутри контейнера:
curl -s $(ip addr show dev eth0 | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+\.' | sed 's/$/1/'):10255/stats/summary/ | awk -F'[: "]' '/nodeName/ {print $9}'
оно тебе скажет имя ноды
как ip получить - хз

Maxim
21.09.2016
13:52:35
hostname -I
и отгрепать нужный ;)
но это чот херня какая-то

kay
21.09.2016
13:52:55
hostname скажет IP пода
можно конечно вместо ip addr show dev eth0 использовать hostname -I
кстати overlay2 мне не помог. тоже висит

Maxim
21.09.2016
13:57:17
о, Морозов очнулся
сказал, что получил трейс

kay
21.09.2016
13:57:29
могу новый прислать с overlay2

Maxim
21.09.2016
13:57:36
давай