Alexander
Спасибо, попробую
Сергей
подскажите как в файле values.yml правильно написать эту запись? affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: team operator: In values: - "4" topologyKey: kubernetes.io/hostname
Сергей
вот сам файл https://github.com/helm/charts/blob/master/stable/nfs-server-provisioner/values.yaml
R2
Привет. Не создаются войлумы. Клаудпровайдер vsphere в логах кублета такая дичь: Mar 5 10:01:35 kw03md kubelet[84254]: E0305 10:01:35.834257 84254 plugin_watcher.go:115] error dial failed at socket /var/lib/kubelet/plugins/kubernetes.io/vsphere-volume/mounts/[esx02_hdd] kubevols/kubernetes-dynamic-pvc-98761ea0-0e6b-11e9-bfc0-0050569bed37.vmdk/elk-data/nodes/0/indices/NZjszkt9Sn--AjzX-PEbhg/4/index/_577p.fdx, err: failed to dial socket /var/lib/kubelet/plugins/kubernetes.io/vsphere-volume/mounts/[esx02_hdd] kubevols/kubernetes-dynamic-pvc-98761ea0-0e6b-11e9-bfc0-0050569bed37.vmdk/elk-data/nodes/0/indices/NZjszkt9Sn--AjzX-PEbhg/4/index/_577p.fdx, err: context deadline exceeded when handling create event: "/var/lib/kubelet/plugins/kubernetes.io/vsphere-volume/mounts/[esx02_hdd] kubevols/kubernetes-dynamic-pvc-98761ea0-0e6b-11e9-bfc0-0050569bed37.vmdk/elk-data/nodes/0/indices/NZjszkt9Sn--AjzX-PEbhg/4/index/_577p.fdx": CREATE
R2
хелп, кто сталкивался.
Aleksandr
Всем привет. Собираюсь переносить своё приложение в k8s, стоит ли описывать конфиг с помощью helm или достаточно yaml файлов kubernetes?
Antlar
если планируешь потом менят ьи допиливать апликуху, то лучше хелм темплейты юзать ) не придется по файлам рыться потом, чтобы найти где и что поменять
Antlar
ну и ставиться в разных окружениях с хельмом все-таки удобнее )
Сергей
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.13/ незачто)
я хотел пример, я не разберусь ни как
Antlar
я хотел пример, я не разберусь ни как
сейчас дам более точный линк, сек
Сергей
сейчас дам более точный линк, сек
я не найду как в values.yaml это написать
Aleksandr
Antlar
я не найду как в values.yaml это написать
так же, как и в обычном куб манифесте же
Antlar
у тебя эта штука идет сюда https://github.com/helm/charts/blob/19a77c3346f8b409ec88ac9c212128b30dab7e1c/stable/nfs-server-provisioner/templates/statefulset.yaml#L77
Antlar
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.13/#affinity-v1-core
Antlar
вот тут потыкай
Сергей
у меня просто стоит rancher и я при редактировании answer.yaml когда пишу affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: "thisnode" operator: In values: ["TheChosenOne"] то он парсит и после создания пишет ошибку)
Antlar
https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#an-example-of-a-pod-that-uses-pod-affinity офф дока
Andor
а как же команда fix-cluster в ранчере?
Andor
она должна же всё сама сделать
Aleksandr
есть ещё пару альтернатив вроде ksonnet или kustomize
Просто непонятно, стоит ли заниматься этим сразу вместо манифестов или можно перейти на helm-подобное потом.
Andor
ну как же ты, если юзаешь ранчер, там это основная команда
Antlar
слишком непонятно )
Antlar
ksonnet так точно
Rainbow
рокетсаенс для меня )))
kustomize простой. Как минимум на 20% сокращает yaml просто за счет того, что label сам проставляет
Сергей
а как же команда fix-cluster в ранчере?
вот так же правильно? affinity: nodeAffinity: {requiredDuringSchedulingIgnoredDuringExecution: {nodeSelectorTerms: [{matchExpressions: [{key: app, operator: In, values: [storage]}]}]}} он сам так объект отпарсил
Сергей
https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#an-example-of-a-pod-that-uses-pod-affinity офф дока
выдаёт ошибку Failed to install app nfs-provisioner-xmymf. Error: release nfs-provisioner-xmymf failed: StatefulSet in version "v1beta2" cannot be handled as a StatefulSet: v1beta2.StatefulSet.Spec: v1beta2.StatefulSetSpec.Template: v1.PodTemplateSpec.Spec: v1.PodSpec.Affinity: readObjectStart: expect { or n, but found ", error found in #10 byte of ...|ffinity":"[object Ob|..., bigger context ...|se":"nfs-provisioner-xmymf"}},"spec":{"affinity":"[object Object]","containers":[{"args":["-provisio|…
Denis
Просто непонятно, стоит ли заниматься этим сразу вместо манифестов или можно перейти на helm-подобное потом.
Мне в Helm нравится возможность темлейтинга шаблонов из единого файла конфигурации values.yaml. В других проектах такого не видел. Может плохо смотрел. Может кто опытом поделится
Сергей
а как же команда fix-cluster в ранчере?
где она пишется, не могу нагуглить
Antlar
v1.11
перепиши apiVersion: apps/v1beta2 в стейтфул сете на apps/v1
Antlar
возможно поможет
Antlar
v1.11 уже v1 апишку поддерживает, если верить апи рефу
Сергей
перепиши apiVersion: apps/v1beta2 в стейтфул сете на apps/v1
тогда придётся кланировать репу и свою запускать) тогда я могу и руками в репе уже написать спеку)
Denis
export $(egrep -v '^#' values | xargs) cat k8s.yml | envsubst | kubectl apply -f -
А как же типичные ветвления по типу if else и тому подобные реализации? У меня часто такие кейсы встречаются в сервисах. Или что то упускаю?
Antlar
ну так пиши
ее мейнтейнить надо потом )
Antlar
мне бы ленно было
Andor
у тебя настолько вариативный деплой?
Antlar
ты можешь пул реквест им запилить кстати
Rainbow
Мой пример самый простой. У меня большую часть деплоев покрывает. из вариативности - база другая, другое количество реплик и может ещё пару разных env, тут не нужны if
Antlar
и мейнтейнить не придется
Denis
у тебя настолько вариативный деплой?
Ага. Есть небольшая специфика у сервисов, и ногда env окружение может динамически менятся, в зависимости от значений в файле values.yaml, поэтому приходится стоит различные ветвления. Хэлм мне показался отличным для этого инструментов. Но я к слову не helm использую, а helm template chart_name | kubectl apply -f -
Andor
появляются-не-появляются переменные?
Andor
@alexesDev ты кстати в гуглоклауд-то поехал?
Rainbow
@alexesDev ты кстати в гуглоклауд-то поехал?
не, я в яндекс и с куба уезжаю.
Andor
zbs
Denis
появляются-не-появляются переменные?
Да. Если есть значение к примеру service: import: false Тогда добавляется переменная дополнительная в спецификацию или несколько.
engelbart
А как через kubectl посмотреть суммарно по нодам memory avail, memory assigned?
Andor
то есть нельзя import: true сделать, например?
Andor
чтобы переменная была, но с другим значением
engelbart
а по кластеру целиком?
Andor
я хз что это за строчки, но это всё ещё не выглядит для меня как ветвление
Rainbow
А как через kubectl посмотреть суммарно по нодам memory avail, memory assigned?
monitoring настроить, там это будет. kube-prometheus вроде этого
cent
А у кого-то calico ругался так [PANIC][9887] table.go 786: Failed to program iptables, giving up after retries error=exit status 2 ipVersion=0x4 table="filter ?
Denis
Там много разлчиных значений, в зависимости от которых будет темлейтится env: окружени. Ну х.з если service.import: [] , то тогда не вставляем этот env в спецификацию
Rainbow
Там много разлчиных значений, в зависимости от которых будет темлейтится env: окружени. Ну х.з если service.import: [] , то тогда не вставляем этот env в спецификацию
думаю он про то, что ничего не случится если будет написано MY_VAR= а в другом кейсе MY_VAR=my-data и тут нет if в шаблне просто env: name: MY_VAR value: $MY_VAR
Rainbow
в go, где все типизировано все равно проверки вроде if os.Getenv("MY_VAR") != "" { } там пофиг в общем. А во всяких node и подавно
Denis
в go, где все типизировано все равно проверки вроде if os.Getenv("MY_VAR") != "" { } там пофиг в общем. А во всяких node и подавно
Я пробовал на python что то подобное писать, но понял что берд полный получился https://github.com/xarg/kuku 😂😂😂
Denis
Но я понял что там еще похлеще портянки получаются чем helm-чарты
Rainbow
почему просто неписать print json.dumps({ "kind": "Deployment", }); ? =)
вот так работает jsonnet если прощенно, чуть менше кнопок нажимать только. ksonnet это jsonnet плюс куча хелперов.
Denis
почему просто неписать print json.dumps({ "kind": "Deployment", }); ? =)
Да мне честно не очень хочется в js лезти для этого дела. Да и девелоперы уже к этим хелм чартам привыкли уже.
Denis
это python...
Мне показалось что синтаксиси jsonnet)