Rainbow
В kubernetes только stateless, делайте рядом install нового кластера и обновляйтесь таким переездом. 100% вариант. 0 приколов с update, его нет.
Yerlan
Откуда у вас кубернетисы тогда?
Начинаем внедрение только... На лабе попробовал - всё ок. Пока монолит распиливают на микросервисы.
Andor
Вангую что это будет тот же самый монолит
Andor
И падение одного сервиса будет класть всю систему
Andor
Бестпрэктис
Vadim
Да и с таким доморощенным blue-green все равно нужно как-то балансить нагрузку во время переезда
Валентин
Тогда уж NoCode, чего мелочиться
Ну уж если программисты будут там nocode гонять - их дело. Собственно нафига тащить в куб то, что в нем работает не лучше, чем в виртуалках (я про всякие бд и чему там еще данные понадобится могут)?
Anton
подскажите пожауйста как запретить pod запускать вместе на одной ноде? что то ищу не могу найти в инете
Alex
Это не про affinity?
Yerlan
И падение одного сервиса будет класть всю систему
Думал также, но уже сейчас добились что можно выключить половину и всё работает...
Aleksey
Это не про affinity?
да конечно же оно https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
Anton
affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - es-node
Aleksey
хотя это про ноды
Anton
это получается привязка к ноде
Anton
а вот чтобы pod не запускался на ноде, если такой же под уже там есть - такое есть в кубере?
Andor
Анти-аффинити надо
Aleksey
ну у меня для эластика вот так spec: serviceAccountName: {{ $serviceAccountName }} affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: release_group operator: In values: - {{ $envAll.Values.release_group | default $envAll.Release.Name }} - key: application operator: In values: - "elasticsearch" - key: component operator: In values: - "client» topologyKey: "kubernetes.io/hostname»
Vadim
https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#always-co-located-in-the-same-node
Andor
Там было кодовое слово "запретить"
𝚔𝚟𝚊𝚙𝚜
podAffinity
Anton
спасибо. посмотрю
Игорь
ах..нный ник
Etki
ох, да что ж я такой токсичный-то
Сергей
всем привет
Сергей
подскажите по dns
Сергей
хотя даже по самому кубернетису
Сергей
разворачивал через kubeadm
Сергей
сеть calico
Сергей
192.168.0.0/16
Сергей
простите, привычка дурацкая
Сергей
так вот. pod-range и service-range это сильно разные вещи? у меня получается, что поды это 192.168.0.0/16 и это calico, а сервисы 10.96.0.0/12 и сервисы не маршрутизируемые
Сергей
в моей голове было, что настраиваю pod-range и всё окей, но надо видимо отдавать часть под поды, а часть под сервисы?
Etki
так вот. pod-range и service-range это сильно разные вещи? у меня получается, что поды это 192.168.0.0/16 и это calico, а сервисы 10.96.0.0/12 и сервисы не маршрутизируемые
Айпишники сервисов не существуют, по ним никто никогда не стучится, iptables и прочее занимаются преобразованием этого в реальный айпишники подов
Vladimir
Подскажите плз, имея доступ к консоли могу ли я получить токен биарер? Если да то ткните носом, не найти инфо
Rainbow
@Andorka papertrail, alert на "test failed" и через webhook в телеграм. Настроил себе.
Andor
чо?
Rainbow
А, чет я не с того конца. Вчера обсуждали как детектить фэйлы ingess конфига
Andor
ааа
Andor
ну ты из логов алертишь
Andor
там понятный подходы
Andor
мне было бы интересно получать это метрикой из контроллера
G72K
Сервисы откусываются из pod range (если пересекаются ), но можно и не пересекать. Сервисы обычно не маршрутизируются , так что любая незанятая непубличная подсеть подойдет
Rainbow
а смысл делать по другому? Это общие рельсы для всего кластера.
Andor
экспортировать метрики в прометея - общие рельсы для всего кластера
Сергей
Сервисы откусываются из pod range (если пересекаются ), но можно и не пересекать. Сервисы обычно не маршрутизируются , так что любая незанятая непубличная подсеть подойдет
в общем меня интересует другой вопрос. я дошёл до момента, когда хочу попробовать хотя бы руками хоть как-то завести наш проект в кубернетис. допустим в докер-композе можно использовать вместо реальных IP - хосты сервисов. в кубернетисе вроде как тоже существует dns и он даже работает, но отдает мне service-ip. кейс: допустим у меня есть пхп контейнер и база, я хочу из пхп контейнера сходить в базу по хосту сервиса. как мне это реализовать?
Etki
указать хостнейм, привязанный к сервису
Сергей
указать хостнейм, привязанный к сервису
а он по-дефолту в длинно-страшном виде разве не привязывается? что-то типа "webapp1-svc.default.svc.cluster.local"
Etki
И что мешает его указать? Не говоря уж о том, что webapp1-svc тоже будет резолвиться в том же неймспейсе.
Сергей
ну вот этот домен резолвится в немаршрутизируемую сеть 10.96
Etki
А проблема в чем? Не достучаться по нему?
Сергей
когда я пытаюсь его пинговать, то получается следующее: [root@amun ~]# ping 10.110.113.20 PING 10.110.113.20 (10.110.113.20) 56(84) bytes of data. From 10.0.0.2 icmp_seq=1 Destination Host Unreachable From 10.0.0.2 icmp_seq=2 Destination Host Unreachable From 10.0.0.2 icmp_seq=3 Destination Host Unreachable From 10.0.0.2 icmp_seq=4 Destination Host Unreachable
Сергей
он преобразовывается в адрес моего хоста
Сергей
причём мастера
Сергей
а, я кажется понял
Etki
он не должен пинговаться
Etki
Он должен быть доступен по тем портам, которые ты указал в сервисе. Это не физическая машина и не полноценный интерфейс же.
Vladimir
Тебе нужна oidc/webhook авторизация
У меня уже есть авторизация, но я не помню где мой токен, думаю как его взять с консоли, может из kubectl как-то его взять
Сергей
[root@amun ~]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE webapp1-svc ClusterIP 10.110.113.20 <none> 80/TCP 6d22h в идеале если я выполню curl 10.110.113.20:80 с хоста, то я должен получить ответ от сервиса или нет?
Etki
да
Сергей
а ответа я не получаю из-за криво настроеного кубернетиса или кривого маршрута: 10.0.0.0/8 dev eth0 proto kernel scope link src 10.0.0.2
G72K
Ответ получите только из пода внутри кубернетеса
Сергей
то есть если я разверну под и зайду внутрь через kubetl exec ... ?
G72K
Ага
G72K
Если хотите извне к сервису, то есть варианты: сервис типа NodePort (или Loadbalancer если в облаке), externalIP на сервисе или через Ingress
Grisha
Ребзя, какой type должен быть у хедлес сервиса?
Mr.
Никакой. Вроде просто clusterip:none
Grisha
# * spec.clusterIP: Invalid value: "None": field is immutable
Grisha
# * spec.clusterIP: Invalid value: "None": field is immutable # * spec.ports[0].nodePort: Forbidden: may not be used when type is 'ClusterIP'
Grisha
даже вот так
Grisha
это если я не указываю тип
Mr.
Nodeport там как затесался?
Grisha
воу) точно
Grisha
# services "vss-depl" was not valid: # * spec.clusterIP: Invalid value: "None": field is immutable # apiVersion: v1 kind: Service metadata: creationTimestamp: 2018-11-06T14:49:02Z labels: app.kubernetes.io/instance: vss app.kubernetes.io/managed-by: Tiller app.kubernetes.io/name: depl helm.sh/chart: depl-0.1.4 name: vss-depl namespace: default resourceVersion: "17062" selfLink: /api/v1/namespaces/default/services/vss-depl uid: 19ea944e-e1d3-11e8-8209-52540045383d spec: clusterIP: None externalName: vss-deploy externalTrafficPolicy: Cluster selector: app.kubernetes.io/instance: vss app.kubernetes.io/name: depl sessionAffinity: None