M
не в iptables-mode?
Dmitry
в таком выводе процессов:
ps aux | grep kube
я не вижу kube-proxy
Dmitry
погуглил, не могу ответить на этот вопрос)
M
оно должно быть в процессах
Dmitry
да, это так
Dmitry
до ребута было
Dmitry
сейчас ансиблом накачу еще раз
Dmitry
нет, проекси не стартует
Dmitry
смотрю ансибл скрипт
Dmitry
а как его сартануть вручную?
Dmitry
чтото типа этого?
/usr/local/bin/kube-proxy —v=4 —kubeconfig=/run/kubeconfig
Dmitry
не, в /usr/bin/ почему того нету бинаря
M
может оно только на воркере?
Dmitry
не, там тоже нет
Dmitry
вижу, что в скриптах вызывается функция рестарта, но нифига не рестартится
Dmitry
туплю
Dmitry
# ps aux | grep proxy
root 10120 0.1 1.6 30340 8256 ? Ssl 01:18 0:00 /usr/bin/kube-proxy —logtostderr=true —v=0 —master=http://127.0.0.1:8080 —kubeconfig=/etc/kubernetes/proxy.kubeconfig
root 11494 0.0 0.1 15736 960 pts/0 S+ 01:22 0:00 grep —color=auto proxy
M
в кубере ничего не бывает без напильника
Dmitry
на ноде есть
Dmitry
M
на ноде iptables-save что говорит?
Dmitry
# iptables-save
# Generated by iptables-save v1.6.0 on Sun Oct 16 01:23:32 2016
*nat
:PREROUTING ACCEPT [2652:264222]
:INPUT ACCEPT [1262:125453]
:OUTPUT ACCEPT [22969:1378140]
:POSTROUTING ACCEPT [22969:1378140]
:DOCKER - [0:0]
-A PREROUTING -m addrtype —dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype —dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A DOCKER -i docker0 -j RETURN
COMMIT
# Completed on Sun Oct 16 01:23:32 2016
# Generated by iptables-save v1.6.0 on Sun Oct 16 01:23:32 2016
*filter
:INPUT ACCEPT [244126:673495622]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [187425:16103197]
:DOCKER - [0:0]
:DOCKER-ISOLATION - [0:0]
-A FORWARD -j DOCKER-ISOLATION
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -o docker0 -m conntrack —ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A DOCKER-ISOLATION -j RETURN
COMMIT
# Completed on Sun Oct 16 01:23:32 2016
M
видимо в юзерспейсе все
Dmitry
в неймспейсе?)
# kubectl get namespaces
NAME STATUS AGE
default Active 2h
kube-system Active 2h
M
нет, я про правила куб-прокси
M
запусти c —proxy-mode=iptables
Dmitry
понял, сейчас попробую
M
и посмотри в иптейблс
Anonymous
там в энсибле фланнел, оч не при чем же)
Anonymous
ос
Dmitry
пофиксил настройку, перезапускаю ансибл
Dmitry
Dmitry
там идет выбор из 3х сервисов
Dmitry
есть настройки какието
Dmitry
чегото не хочет применяться
Dmitry
в системд походу гдето файл сохранился
Anonymous
daemon-reload?
Anonymous
systemctl daemon-reload там где-то в плейбуке есть?
Anonymous
в аутпуте энсибла нигде не видно "запустите systemctl daemon-reload"?
Dmitry
есть
Dmitry
- shell: systemctl daemon-reload
changed_when: False
M
у тебя на воркере какой адрес у докер0 м у фланнел интерфейса?
Dmitry
а как это лучше глянуть?
через ps aux | grep kube
вывод такой:
# ps aux | grep kube
root 8115 0.2 0.3 11588 1996 ? Ssl 01:15 0:03 /exechealthz -cmd=nslookup kubernetes.default.svc.cluster.local 127.0.0.1 >/dev/null -port=8080
root 18707 0.1 0.4 29456 2312 ? Ssl 01:41 0:00 /kube2sky —domain=cluster.local
root 19576 8.5 3.2 390172 16228 ? Ssl 01:42 0:04 /usr/bin/kubelet —logtostderr=true —v=0 —api-servers=https://95.213.236.248:6443 —address=0.0.0.0 —hostname-override=95.213.236.162 —allow-privileged=false —kubeconfig=/etc/kubernetes/kubelet.kubeconfig —config=/etc/kubernetes/manifests —cluster-dns=10.254.0.10 —cluster-domain=cluster.local
root 19613 1.5 0.5 29252 2672 ? Ssl 01:42 0:00 /usr/bin/kube-proxy —logtostderr=true —v=0 —master=http://127.0.0.1:8080 —kubeconfig=/etc/kubernetes/proxy.kubeconfig
M
ip addr sh
Dmitry
https://gist.github.com/dkostenko/94f536a79fcb3854a842ff454e9e1265
Dmitry
4: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default
link/ether 7a:d1:db:8b:db:9c brd ff:ff:ff:ff:ff:ff
inet 172.16.30.0/12 scope global flannel.1
valid_lft forever preferred_lft forever
inet6 fe80::78d1:dbff:fe8b:db9c/64 scope link
valid_lft forever preferred_lft forever
5: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:35:70:02:5c brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:35ff:fe70:25c/64 scope link
valid_lft forever preferred_lft forever
Dmitry
на мастере так:
3: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default
link/ether 16:20:a5:6c:a0:3a brd ff:ff:ff:ff:ff:ff
inet 172.16.94.0/12 scope global flannel.1
valid_lft forever preferred_lft forever
inet6 fe80::1420:a5ff:fe6c:a03a/64 scope link
valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:f1:c7:ce:11 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 scope global docker0
valid_lft forever preferred_lft forever
M
у меня адреса докера на нодах тоже разные как и фланнел
M
и они должны друг друга пинговать
Dmitry
хм, странно, что такая лажа в этих плейбуках
M
существует мальнькая вероятность что на убунте как то по-другому , но похоже что также все
M
докер должен брать подсеть от фланнел и маршрутизироваться через него
M
для этого он стартует позже чем фланнел
Dmitry
понял
Dmitry
значит копать в сторону того, как стартует докер?
Dmitry
и результатом копаний должно быть то, что докер на нодах запускается с разными адресами?
Anonymous
там в плейбуке есть момент, где интерфейс удаляется
Anonymous
ip link del dev docker0
Anonymous
вот там надо посмотреть что дальше происходит
M
https://github.com/coreos/flannel#flannel
M
как то так должно быть
Dmitry
ip link del dev docker0
оно?
- name: delete docker0
command: ip link delete docker0
when: '"docker0" in ansible_interfaces'
Anonymous
вот это не просто так, я понимаю
M
Dmitry
да вообще просто установить кубернетс)))
Anonymous
вообще как по мне, то энсибл не должен этим заниматься
Anonymous
ходить от рута сеть настраивать, сервисы
Dmitry
вообще так то я не против) но нет нормального мануала
Dmitry
дока у них очень разразненная
M
есть подробный hard way
Dmitry
https://github.com/kelseyhightower/kubernetes-the-hard-way/tree/master/docs
Dmitry
этот?)
M
но помоему первые несколько раз как ни крути сами превращаются в хард вей
M
ага
Dmitry
там же начало только для амазона или гугл енжин))
Dmitry
Kubernetes can be installed just about anywhere physical or virtual machines can be run. In this lab we are going to focus on Google Cloud Platform and Amazon Web Services.
Dmitry
норм мануал))
Anonymous
ну, ты прост овыкидый часть про настройку aws/gcloud
Anonymous
кстати, etcd3 в k8s ок?