bebebe
понял идею, спасибо
bebebe
и последний вопрос. а как происходит авторизация? только по volume id? или куда-то пропихивается access и secret keys?
Igor
не отрезает 🙂
Igor
биндинг PV <-> PVC one to one
Igor
это динамический провижионинг отрезает
Роман
Если у меня не gce, и я буду использовать nginx-ingress-controller gce-0.9.6 (который помечен, как релиз), всё будет работать на baremetal?
Sergey
кубер и все будет работать - сомневаюсь)
Igor
Igor
только он не 0.9.6 🙂
Igor
0.9.0-beta.11 последний для nginx
Igor
0.9.6 - это GLB как раз
Igor
в динамике, когда есть работающий StorageClass
Sn00part
посмотрите тут как сделано
Sn00part
https://github.com/kubernetes-incubator/external-storage
Sn00part
у меня работает
bebebe
я не до конца понимаю каким образом мой storageclass узнает об моем аккаунте на amazone
определен он стандартно по документации, я только зону поменял
https://hastebin.com/ozuximixoc.lua
Sn00part
просто по дефолту сторадж класс из dynamic provisioning
Sn00part
pvc оттуда нарезает куски автоматом
bebebe
@takama я правильно понимаю, что при правильном подходе, динамический провижининг будет сам ходить в aws и делать там нужного размера volumы?
Sn00part
да должен ходить и нарезать
Igor
У каждого StorageClass свои настройки, у нас Ceph, там прописываются все адреса, пароли явки
Igor
bebebe
ага, я читаю документацию, и в описании storageclass указывается только AZ для aws
никаких ключей и токенов не вижу
bebebe
поэтому и фрустрирую
Sn00part
Igor
в AWS точно не скажу, скорее всего при установке k8s есть специфика, поддерживающая провижионинг для AWS
Роман
Роман
Ребята. Сталкивался ли кто-нибудь с таким?
Обычно под вечер (но бывало и с утра) переставал работать nginx-ingress-controller. При попытке войти на сайты с https, происходила очень долгая попытка загрузки, которая ничем не заканчивалась. Просто белый экран и никаких ошибок ни в логах контроллера, ни в логах куба. Вход на http давал ответ 301. Есть предположение, что, поскольку 443 порт слушает не nginx, а контроллер (и дальше направляет трафик на 442 порт nginx'а), то проблема именно в этом месте.
Помогите советом, что глянуть.
Magistr
bebebe
bebebe
у меня такое впечатлиение что я первую половину дня вбиваю в гугл не те запросы
bebebe
сейчас у меня картина такая:
в амазон консоли я должен навесить на свои инстансы IAM роли, для того что бы когда создаю storageclass с provision: aws-ebd запросы от этих инстансов в amazon были валидны
bebebe
немного дичь выходит
Ivan
а где об этом можно почитать
я сетапил через kube-aws, там для kube-apiserver идет флаг —cloud-provider=aws. Там своя магия, пока не разбирался. Почитать думаю можно тут:
https://kubernetes.io/docs/getting-started-guides/scratch/
bebebe
bebebe
передеплоивать чтоле...
Igor
Ребята. Сталкивался ли кто-нибудь с таким?
Обычно под вечер (но бывало и с утра) переставал работать nginx-ingress-controller. При попытке войти на сайты с https, происходила очень долгая попытка загрузки, которая ничем не заканчивалась. Просто белый экран и никаких ошибок ни в логах контроллера, ни в логах куба. Вход на http давал ответ 301. Есть предположение, что, поскольку 443 порт слушает не nginx, а контроллер (и дальше направляет трафик на 442 порт nginx'а), то проблема именно в этом месте.
Помогите советом, что глянуть.
nginx-ingress-controller обычно запускают на нодах, которые не мастер, там 443 свободен обычно
Роман
Igor
он и слушает 443 и направляет на сервис согласно ingess rules
Igor
также слушает на 80
Igor
еще default-http-backend отдаёт 404 если сервиса нет
Igor
ну да, контроллер
Igor
у нас стоит последняя бета, проблем не замечено
Роман
Или не знаю, кто там слушает 443, но в nginx.go есть такой код:
n := &NGINXController{
binary: ngx,
configmap: &api_v1.ConfigMap{},
isIPV6Enabled: isIPv6Enabled(),
resolver: h,
proxy: &proxy{
Default: &server{
Hostname: "localhost",
IP: "127.0.0.1",
Port: 442,
ProxyProtocol: true,
},
},
},
ASTASHOFF
кстати про этот 442
ASTASHOFF
для whitelist-source-range нужен use-proxy-protocol чтоб адрес не локалхоста был, но в таком случае из-за фигни в proxy procotol не работает http. кто-то решал эту проблему?
Igor
есть такая проблема, прищлось временно отключить use-proxy-protocol
ASTASHOFF
а как тогда фильтровать по айпи
ASTASHOFF
из гугла с наскоку никто так и не починил
Igor
ну или лишится 80 порта
Igor
мы не фильтруем по IP
Igor
если ест внешний балансер, можно обойтись без 80 порта
Igor
внешний балансер форвардит http -> https например
ASTASHOFF
у меня нету балансера, все контроллер рулит
ASTASHOFF
так бы да, работало
Igor
т.е. k8s торчит наружу?
ASTASHOFF
да
Igor
в паблик сеть
ASTASHOFF
ну да, ингресс это точка входа в сеть
Igor
ой, мы пока не решаемся на такое, на приватке всё идёт через HAProxy в GCE через их балансеры
ASTASHOFF
мы пока разбираемся с интеграцией k8s+aws
Igor
ну там ELB можно подружить вероятно
ASTASHOFF
ну пока не подружили, надо чтоб нжинкс нормально работал)) а болт походу
bebebe
так, стало немного яснее, на инстансы где я хочу PVC с AWS-EBD нужно навесить такие AIM роли
ec2:AttachVolume
ec2:DetachVolume
ec2:DescribeInstances
ec2:DescribeVolumes
https://github.com/kubernetes/examples/blob/master/staging/volumes/aws_ebs/README.md
bebebe
да, и у меня не установлен volume plugin для aws_ebd
find /var/lib/kubelet/plugins/ -type f | wc -l
0
bebebe
@takama а вы не могли бы проверить команду выше? ^^^^
Igor
у меня не AWS
Igor
ну и плагинов тоже нет
Igor
да
Роман
ASTASHOFF
собирался это сделать, и ничего не поломалось?)
ASTASHOFF
интересно зачем изначально она там была, в таком случае
ASTASHOFF
хотя судя по гиту официального ингресса и его форков - git workflow темплейта и контроллера мягко говоря не оч организован
Роман
Ну, как сказать... Запросы на http отрабатывают нормально. Но уже третий день наблюдаются тормоза https - просто колом встаёт и ни один сайт не работает. Через некоторое время gataway timeout, однако ни в одном логе ничего не сказано про это. Вряд ли это с этим связано, конечно, но она там есть во всех версиях.
ASTASHOFF
listen 80{{ if $cfg.UseProxyProtocol }} proxy_protocol {{ end }}
у меня так не работает, empty response.
в логах
broken header: "
*тут весь оригинальный запрос*
" while reading PROXY protocol
Роман
Не представляю, в чём дело, но подозреваю, что если было бы просто:
...
listen 80;
...
listen 443 ssl proxy_protocol;
...
То всё было бы нормально. Но на деле там listen 442 ssl proxy_protocol; для SNI. И не понятно, если выпилю - будет ли работать несколько сайтов по https на одном айпи. Без кубера такая схема работала с обычным nginx.