@kubernetes_ru

Страница 233 из 958
Alisa
10.08.2017
08:56:33
ну блин, опять запустил, написал типа clonning и давай дальше пустыми строками вайпать консоль, это нормально вообще?

Роман
10.08.2017
08:58:02
inventory.cfg покажи

И, кстати, я kubespray ставил: pip2 install kubespray

Alisa
10.08.2017
09:14:56
inventory.cfg покажи
а я его должен сам до запуска составить?

Google
Alisa
10.08.2017
09:15:47
блин я думал там one-liner, в котором всё что нужно

Generate inventory for a baremetal cluster

вот тут же надо генерить его, а не составлять, то есть я не могу inventory.cfg показать, потому что у меня он не генерится

bebebe
10.08.2017
09:17:03
пушо там расставляются группы и подгруппы

на которые ориентируется ansible

Alisa
10.08.2017
09:17:27
kubespray prepare —nodes node1[ansible_ssh_host=${MASTER}] node2[ansible_ssh_host=${NODE1}] node3[ansible_ssh_host=${NODE2}] —nodes 2 —masters 1 вот так я правильно же всё делаю?

bebebe
10.08.2017
09:17:44
хм

секунду

Alisa
10.08.2017
09:17:48
в переменных айпишники указаны

bebebe
10.08.2017
09:19:47
тебе нужно запустить contrib/inventory_builder/inventory.py следующим образом:

Роман
10.08.2017
09:19:52
kubespray prepare —nodes node1[ansible_ssh_host=${MASTER}] node2[ansible_ssh_host=${NODE1}] node3[ansible_ssh_host=${NODE2}] —nodes 2 —masters 1 вот так я правильно же всё делаю?
Нет. В —masters надо тоже указать в таком же формате, как и для —nodes. И —etcds аналогично.

—nodes 2 —masters 1 - не правильно и не нужно для baremetal

Google
bebebe
10.08.2017
09:20:51
export CONFIG_FILE=/tmp/kubespray_inventory.cfg python contrib/inventory_builder/inventory.py IP1 IP2 IP3 IP4после чего в /tmp/kubespray_inventory.cfg сгенерируется inventory против которого надо запускать плейбуку

руками инветори не очень желательно делать

Роман
10.08.2017
09:22:35
bebebe
10.08.2017
09:22:39
этот inventory.py типа LCM'а типа можно потом добавить еще одну ноду, и он сам разберется что и как по бест-практис туда нужно совать

Роман
10.08.2017
09:22:40
kubespray prepare —nodes node1[ansible_ssh_host=${MASTER}] node2[ansible_ssh_host=${NODE1}] node3[ansible_ssh_host=${NODE2}] —nodes 2 —masters 1 вот так я правильно же всё делаю?
kubespray prepare —nodes node1[ansible_ssh_host=${MASTER}] node2[ansible_ssh_host=${NODE1}] node3[ansible_ssh_host=${NODE2}] —masters node1[ansible_ssh_host=${MASTER}] —etcds node1[ansible_ssh_host=${MASTER}] node2[ansible_ssh_host=${NODE1}] node3[ansible_ssh_host=${NODE2}]

Alisa
10.08.2017
09:23:34
а можно мне etcd и master на одну ноду указать? ??

Роман
10.08.2017
09:24:04
а можно мне etcd и master на одну ноду указать? ??
Можно. Он ругнётся на то, что для кластера etcd хочет 3 ноды.

Но всё равно поставит.

Alisa
10.08.2017
09:24:27
хех, спасибо большое! c:

Роман
10.08.2017
09:28:47
Вот, хочу свой ингресс-контроллер сделать. В частности хочу свой шаблон запилить с новыми переменными. Не пойму никак, как их обрабатывать. Хотел по аналогии сделать, но аналогии нет). Не могу в коде найти. Например, хотел найти, как это: ingress.kubernetes.io/configuration-snippet превращается в это: {{ $location.ConfigurationSnippet }} Может есть литература какая-то?

Роман
10.08.2017
09:36:02
Alisa
10.08.2017
09:41:29
у меня есть pdfка всей книги, можешь посмотреть, если найдешь то что нужно, то заплатишь за нее автору, если нет, то удали потом, а то так нечестно x)

Let Eat
10.08.2017
09:44:54
а кто-нибудь может объяснить зачем сервисам типа nodePort вообще нужен параметр clusterIP?
потому что оно реализовано как надстройка над ClusterIP. Трафик приходящий в NodePort перенаправляется в ClusterIP, который уже сам раскидывает под подам.

Maksim
10.08.2017
09:49:02
А сам ClusterIP адрес где-то физически висит или это тупо правила в iptables?
Если не вешать то не висит. В доке написано, что CIDR для ClusterIP обязан быть не маршрутизируемым

Но ни кто не запрещает тебе повесить его на интерфейс какого либо сервера)))

и сделать маршрутизируемым) Тогда можно избваться от NodePort и Ing

Google
kvaps
10.08.2017
09:51:16
так-так-так, обо всем по порядку, пожалуйста, с чем может быть связанно то что я не могу попинговать сервис по ClusterIP

ни с ноды ни из пода

Maksim
10.08.2017
09:51:38
либо задать реальну сеть L2 в качестве ClusterIP и маршрутизацию к ней)

ну потому что изначально ClusterIP это l3 DNAT по TCP/UDP

там нету icmp как класса)

kvaps
10.08.2017
09:52:22
то есть так и должно быть

Maksim
10.08.2017
09:52:25
да

ты можешь телнетнуться на порт сервиса

и что-то получить

или сделать wget/curl если это http

kvaps
10.08.2017
09:53:35
а почему тогда я поды с ноды могу попинговать?

Maksim
10.08.2017
09:53:54
потому что ip пода реален и работает по всем правила OSI

kvaps
10.08.2017
09:54:13
да, в целом логично

отлично, но по моему telnetom на kube-dns у меня тоже не работало, сейчас попробую еше раз

Maksim
10.08.2017
09:54:26
там же делается overlay сеть с маршрутизаций и всей другой мишурой

мм ну я лупил nslookup по kube-dns и всё работало

я получал резолвы

kvaps
10.08.2017
09:55:04
с ноды?

Maksim
10.08.2017
09:55:13
да

kvaps
10.08.2017
09:55:37
значит у меня что-то пошло не так :)

Google
Maksim
10.08.2017
09:55:47
nslookup kubernetes.default.svc.cluster.local <ip dns svc>

и получал ip этого самого сервиса

kvaps
10.08.2017
09:57:04
Но ни кто не запрещает тебе повесить его на интерфейс какого либо сервера)))
Я понял, так делать нехорошо, но можно сервису повесить ExternalIP и он будет работать точно так же. То есть его можно повесить на одну из нод и он будет маршрутизировать на поды

Maksim
10.08.2017
09:57:31
Именно для этого ExternalIP и существует

ты пишешь внешний ip ноды и с ней трафик начинает ходит в поды

kvaps
10.08.2017
09:59:29
отсюда еще вопрос, объясните в чем отличие типов сервисов NodePort от ClusterIP? Ведь и там и там можно присобачить ExternalIP и port/targetPort и получать ответ от подов при запросе на эти порты снаружи

читал что clusterip сервисы используются только для организации доступа внутри кластера, а NodePort что бы выкидывать наружу. Но ведь по сути оба типа работают одинаково

Sergey
10.08.2017
10:03:04
тупо DNAT ловящий dst = ClusterIP
почти, там еще веса и вероятности.

kvaps
10.08.2017
10:04:06
добавьте @ratememyfriendbot в чат, буду плюсики раздавать :)

Admin
ERROR: S client not available

kvaps
10.08.2017
10:29:47
или сделать wget/curl если это http
ты был прав, curl и правда работает, ping нет, но и не должен, но моя проблема оказалось в другом: # kubectl describe endpoints kube-dns -n kube-system Name: kube-dns Namespace: kube-system Labels: k8s-app=kube-dns kubernetes.io/cluster-service=true kubernetes.io/name=KubeDNS Annotations: <none> Subsets: Addresses: <none> NotReadyAddresses: 172.16.6.4 Ports: Name Port Protocol ---- ---- -------- dns 53 UDP dns-tcp 53 TCP Events: <none>

и оно никак не хочет этот адрес переводить из NotReadyAddresses в Addresses

разобрался, я какой-то кривой dns запустил и он не мог получить доступ к kubernetes-api-server. Развернул новый kubernetes и скопировал конфиг для dns оттуда, заработало :)

Alisa
10.08.2017
10:53:34
это нормально, что kubespray уже второй затыкается на каком-то шаге (сначала ectd, теперь мастер) из-за того, что нода не отвечает?

Let Eat
10.08.2017
10:54:10
это нормально, что у вас важная нода не отвечает? :)

Alisa
10.08.2017
10:54:58
а какой SDN плагин ? и на каких нодах
всё дефолтно, видимо flanneld? bare-metal от scaleway

это нормально, что у вас важная нода не отвечает? :)
ну может в процессе настройки все дела

bebebe
10.08.2017
10:55:32
всё дефолтно, видимо flanneld? bare-metal от scaleway
нет. помойму calico по дефолту

Google
bebebe
10.08.2017
10:55:36
ради эксперимента укажи flannel

kube_network_plugin: "flannel" dns_mode: kubedns

у меня с calico были проблемы на aws и на digital ocean

впрочем я их поборол, но на вскидку сейчас не вспомню как

Alisa
10.08.2017
10:59:20
kube_network_plugin: "flannel" dns_mode: kubedns
это в .kubespray.yml или cluster.yml ??

а нормально же просто перезапускать kubespray, он там откатит предыдущие изменения? в принципе он скипит некоторые шаги, что подсказывает, что скорее всего они это предусмотрели

bebebe
10.08.2017
11:00:52
Rustam
10.08.2017
12:08:01
Ещё есть репа с терраформом для поднятия кубера: https://github.com/hobby-kube/guide Поддерживаются scaleway и DO + ещё в днс умеет прописывать хосты

Там vpn между нодами поднимается, который в kernel space работает )

Alisa
10.08.2017
12:31:10
Ещё есть репа с терраформом для поднятия кубера: https://github.com/hobby-kube/guide Поддерживаются scaleway и DO + ещё в днс умеет прописывать хосты
ох еще ревьювить баш-скрипты на эксплоиты, хех, но спасибо выглядит очень привлекательно

к слову мастер-нода до сих пор не отвечает, прям хз что с этим делать мда сетка теперь flannel

Alisa
10.08.2017
12:33:08


bebebe
10.08.2017
12:34:57
Еба

Я знаю в чем проблема

Alisa
10.08.2017
12:35:16
ого!

bebebe
10.08.2017
12:38:38
Сек

вангую что у тебя на интерфейсах левые ойпи адреса которые твой клауд провайдер натит

покажи мне с одной ноды ip a show куда-нибудь в приват через hastebin.com

Роман
10.08.2017
14:36:01
Скажите, а конфигмап - это только ключ=значение? Можно как-то для ключа сделать значение, равное нескольким строкам?

Maksim
10.08.2017
14:39:15
мм я туда несколько файлов с конфигам запихивал)

Целую папку так сказать

Страница 233 из 958