Yerlan
curl -v https://74.125.205.128
* Rebuilt URL to: https://74.125.205.128/
* Hostname was NOT found in DNS cache
* Trying 74.125.205.128...
Yerlan
не сдох ли он
Vladimir
curl -v https://storage.googleapis.com
* Rebuilt URL to: https://storage.googleapis.com/
* Trying 64.233.162.128...
* TCP_NODELAY set
* Connected to storage.googleapis.com (64.233.162.128) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* CAfile: /etc/ssl/cert.pem
CApath: none
Vladimir
у меня прошел
Yerlan
бляха мухаа
Yerlan
че за фигня
Yerlan
пошел тогда мучать наших сетевиков
Vladimir
сервис интернел или экстернал ?
Denis
интернел
Denis
с clusterIP
Denis
sso openam ClusterIP 10.101.131.112 <none> 8080/TCP 5m
Denis
пробовал через expose, не помогло
kubectl expose pod openam-v1-65fd7f4f75-kdqf2 -n sso --port=8080 --target-port=8080
Vladimir
если внутри одного неймспейса просто обращайся по имени сервиса
Denis
Да он резолвит ip сервиса
Denis
Но порт прослушать не могу, только 127.0.0.1 8080, либо с другого пода по имени сервиса работает, а сам под для коготоро создан сервис не может обратиться к себе через сервис)
G72K
G72K
Всегда было интересно, зачем поду ходить к себе через сервис?
Denis
Спс, попробую)
Denis
Это openam для установки хочет
G72K
Для установки? Вы инсталлер в поде запускаете чтоли?
Denis
нет установку не запускаем, выполняюся конфигурационные скрипты, в которых есть необходимость обращаться по доменному имени, особенность openam
Anton
Hostname жахнуть в под нужный нельзя?)
G72K
Victor
Добрый день. Может кто пояснить как работает роутинг с мастера через сервис в поду?
Есть под с tcp 5000. Для доступа снаружи вешается сервис с таким же 5000м портом.
Если делать tcptraceroute снаружи, то он проходит и видно два хопа с одинаковым ip (сервиса). Видимо уменьшение ttl происходит на сервисе и потом отвечает под.
Если делать curl с мастер ноды, то тоже все в порядке. Но tcptraceroute уже не работает.
Это какие-то особенности tcptraceroute или где-то стоит ожидать подводных камней при работе с мастера внутрь кубернетеса?
Victor
Ну и параллельно вопрос. Кто нибудь делал self hosted с балансировкой apiserver'a через кубернетевский же сервис?
G72K
G72K
Victor
MRY
Дано 3 ноды для мастеров HA. Ubuntu 16.4 swapoff 4gbRAm 2 CPU
1. Сертификаты для etcd кластера, сертификаты для клиента.
2. Установка etcd на каждую ноду, проверка кластера.
Назначаем будущий CIDR
etcdctl set /coreos.com/network/config '{ "Network": "10.224.0.0/16","Backend":{"Type":"vxlan"},"SubnetLen": 24 }'
3.Генерирую CNI плагины, создаю env, папки cni.net.d opt/cni/bin с плагинами.
4.Устанавливаю последний flannel, прописываю etcd дял flannel
5.Устанавливаю docker, знакомлю с flannel
6.Устанавливаю kubectl,kubeadm,kubelet,kubernetes-cni
7.kubeadmin —init —config Включает etcd + клиентские сертификаты
8. на борту имею loopback, ethx с IP хоста, flannel0 с подсетью из etcd, docker0 с IP из под сети flannel.
8. В итоге ошибки в сети.DNS поды не поднимаются. Что пропустил ?
bebebe
вероятно вы пропустили kubespray
bebebe
отлично, поднимите рабочий кластер через kubespray как образец. рядом разворачивайте свой, после нахождения проблем у вас будет образец в который вы можете потыкать
G72K
Дано 3 ноды для мастеров HA. Ubuntu 16.4 swapoff 4gbRAm 2 CPU
1. Сертификаты для etcd кластера, сертификаты для клиента.
2. Установка etcd на каждую ноду, проверка кластера.
Назначаем будущий CIDR
etcdctl set /coreos.com/network/config '{ "Network": "10.224.0.0/16","Backend":{"Type":"vxlan"},"SubnetLen": 24 }'
3.Генерирую CNI плагины, создаю env, папки cni.net.d opt/cni/bin с плагинами.
4.Устанавливаю последний flannel, прописываю etcd дял flannel
5.Устанавливаю docker, знакомлю с flannel
6.Устанавливаю kubectl,kubeadm,kubelet,kubernetes-cni
7.kubeadmin —init —config Включает etcd + клиентские сертификаты
8. на борту имею loopback, ethx с IP хоста, flannel0 с подсетью из etcd, docker0 с IP из под сети flannel.
8. В итоге ошибки в сети.DNS поды не поднимаются. Что пропустил ?
5. Что значит,знакомите с фланел?
G72K
Где у вас CNI конфиг? Его надо подсунуть kubelet чтобы знал
G72K
Как именно не поднимаются поды?
MRY
5. Что значит,знакомите с фланел?
Это значит что при загрузке flannel получает под субнет из CIDR 10.224.0.0/16 к примеру 10.224.5.0.24 и регистрирует его на интерфейс flannel0, далее через скрипт генерируются ENV для docker и интерфейс docker0 получает ip 10.224.5.2
G72K
Докер демон вообще трогать не надо
G72K
Ну и плюс flannel можно self hosted пустить и не морочить голову. Просто daemonset раскатаете и все
G72K
Оно тогда и без etcd заведется как бонус
MRY
G72K
Kirill
Всем привет, пытаюсь связать 2 pod, nginx и приложение, в конфиге nginx пытаюсь обращатся как через dns, так и через переменные, в итоге - через dns - работает только в миникуб и не работает в полноценном кубере, через переменные вообще нигде, хотя если зайти в контейнер и сделать echo то он их видит, конфиг такой(2 варианта), что не так?
#1 вариант, не работает нигде
location / {
proxy_pass http://$TELE2PAY_FRONT_API_SVC_SERVICE_HOST:$TELE2PAY_FRONT_API_SVC_SERVICE_PORT;
limit_req zone=one burst=10;
}
#2 вариант, работает в миникуб, но не работает в кубере
location / {
proxy_pass http://tele2pay-front-api-svc:5000;
limit_req zone=one burst=10;
}
Vladyslav
Всем привет, пытаюсь связать 2 pod, nginx и приложение, в конфиге nginx пытаюсь обращатся как через dns, так и через переменные, в итоге - через dns - работает только в миникуб и не работает в полноценном кубере, через переменные вообще нигде, хотя если зайти в контейнер и сделать echo то он их видит, конфиг такой(2 варианта), что не так?
#1 вариант, не работает нигде
location / {
proxy_pass http://$TELE2PAY_FRONT_API_SVC_SERVICE_HOST:$TELE2PAY_FRONT_API_SVC_SERVICE_PORT;
limit_req zone=one burst=10;
}
#2 вариант, работает в миникуб, но не работает в кубере
location / {
proxy_pass http://tele2pay-front-api-svc:5000;
limit_req zone=one burst=10;
}
kind: Service
Kirill
Не понял
CrusaderX
Сервис есть teke2pay-блабла?
Kirill
tele2pay-front-api-svc - это сервис
Kirill
с ClusterIp
Kirill
если по ip его стучать - то работает
CrusaderX
kubectl get svc tele2pay-front-api-svc
CrusaderX
Неймспейс одинаковый для сервиса и пода?
Kirill
Kirill
сервис есть, вот он, а вот лог пода который в него стучится по имени сервиса + порт
Kirill
G72K
G72K
А так же проверьте, что в конфиге не стоит свой резолвер
Kirill
Kirill
вот такой стоит
Kirill
в миникуб -да, в большом кубере - нет
Kirill
то что он настроен криво есть вероятность, но что смотреть
G72K
Kirill
да живы)
MRY
MRY
MRY
Спасибо, не стал заморачиваться с etcd и вроде как заработало
G72K
Kirill
Пока я отдебажил и увидел что к кублета нет данных о днс сервере
Kirill
Похоже при его создании не прописали
Kirill
А миникуб nginx работает по dns отлично
Dmitriy
А как получается, что кластерные сервисы работают внутри себя? Знаю что можно их запускать как bare-метал, также можно в docker. А какими средствами запускается сие? Можно немного на пальцах рассказать? :)
G72K
т.е. это не совсем "кластерные сервисы работают внутри себя", а фейк. можно и по-настоящему, смотрите bootkube , оно как раз для этого: поднимается временный control plane, через него создаются deployment/daemonset с настоящим control plane кластера: apiserver, schduler, controller-manager , затем временный убивается. в таком режиме обновления кластера (кроме kubelet) это просто kubectl apply