Anton
нельзя через --values yaml с override значениями подсовывать?
Anton
имхо, шаблонизатору не нужна ваша логика внешняя, прод это или дев
Anton
снаружи решаешь какой это стенд и подсовываешь нужный yaml с опциями через --values
Terry
Rancher 2.0 now in Beta Hi Denis! Today we officially froze feature development on Rancher 2.0 and have released it into Beta testing. We’ve been working on this new version of Rancher for almost a year, and we're excited to get your feedback on the latest release. Built on Kubernetes, Rancher 2.0 provides a single point of management for any Kubernetes cluster running regardless of where it runs. You can deploy new clusters with Rancher on any host, launch cloud-hosted clusters on Google, Azure and AWS, and easily import existing clusters. Perhaps most excitingly, we've brought Rancher's intuitive UI and ease of use to Kubernetes.
bama^boy
некоторые люди настолько не любят helm, что пилят свои напилки: https://github.com/olx-global/rubiks
Khramov
нельзя через --values yaml с override значениями подсовывать?
Там переменных 20+ и для 3 окружениий описывать это в команде запуска не хочется, очень длинно это все получается
Khramov
Я хотел так изначально подсовывать
Anton
ну, делаешь yaml для стенда. все
Khramov
О, а можно же подключать несколько Values файлов, сделать отдельно с этими переменными для разных окружений, и если они меняются то просто инклюдить другой файл
Anton
да. просто логика со стейджами в шаблоне это пздц
Alexander
При join ноды к матеру сыпится вот такая шляпа: 06 11:08:21 k8s-node1 kubelet[13085]: I0406 11:08:21.566080 13085 feature_gate.go:226] feature gates: &{{} map[]} апр 06 11:08:21 k8s-node1 kubelet[13085]: W0406 11:08:21.587840 13085 cni.go:171] Unable to update cni config: No networks found in /etc/cni/net.d апр 06 11:08:21 k8s-node1 kubelet[13085]: W0406 11:08:21.594225 13085 hostport_manager.go:68] The binary conntrack is not installed, this can cause failures in network connection cleanup. апр 06 11:08:21 k8s-node1 kubelet[13085]: I0406 11:08:21.594281 13085 server.go:376] Version: v1.10.0 апр 06 11:08:21 k8s-node1 kubelet[13085]: I0406 11:08:21.594332 13085 feature_gate.go:226] feature gates: &{{} map[]} апр 06 11:08:21 k8s-node1 kubelet[13085]: I0406 11:08:21.594500 13085 plugins.go:89] No cloud provider specified. апр 06 11:08:21 k8s-node1 kubelet[13085]: F0406 11:08:21.655850 13085 server.go:233] failed to run Kubelet: cannot create certificate signing request: Unauthorized апр 06 11:08:21 k8s-node1 systemd[1]: kubelet.service: Main process exited, code=exited, status=255/n/a апр 06 11:08:21 k8s-node1 systemd[1]: kubelet.service: Unit entered failed state. апр 06 11:08:21 k8s-node1 systemd[1]: kubelet.service: Failed with result 'exit-code'.
Anton
failed to run Kubelet: cannot create certificate signing request: Unauthorized
Anton
написано ж
Alexander
Куда рыть то?
Alexander
24ef255e3f119 [preflight] Running pre-flight checks. [WARNING FileExisting-crictl]: crictl not found in system path Suggestion: go get github.com/kubernetes-incubator/cri-tools/cmd/crictl [preflight] Starting the kubelet service [discovery] Trying to connect to API Server "192.168.1.18:6443" [discovery] Created cluster-info discovery client, requesting info from "https://192.168.1.18:6443" [discovery] Requesting info from "https://192.168.1.18:6443" again to validate TLS against the pinned public key [discovery] Cluster info signature and contents are valid and TLS certificate validates against pinned roots, will use API Server "192.168.1.18:6443" [discovery] Successfully established connection with API Server "192.168.1.18:6443" This node has joined the cluster: * Certificate signing request was sent to master and a response was received. * The Kubelet was informed of the new secure connection details. Run 'kubectl get nodes' on the master to see this node join the cluster.
G72K
Куда рыть то?
bootstrap token который использует kubelet не рабочий? Так же смущает пустые feature gates
Alexander
токен рабочий
G72K
Включите audit log на apiserver и посмотрите, что он думает на этот счет
Ivan
Да, уже вроде нашел даже baremetal гайд, попозже скину линк
Может кому пригодится ссылочка https://github.com/Praqma/LearnKubernetes/blob/master/kamran/Kubernetes-The-Hard-Way-on-BareMetal.md
Alexander
Ребята, dashboard из вне по токину не работает, можно как-то исправить?
bebebe
да, давай доступ до env'a
Dmytro
Там переменных 20+ и для 3 окружениий описывать это в команде запуска не хочется, очень длинно это все получается
так надо просто values.yaml генерировать каким-то шаблонизатором и там решать для какого env какую переменную передать в чарт. Мы юзаем руби темплейты .erb для этого
AB 🇨🇾 🍉
Команда kubectl create secret docker-registry $SECRET_NAME \ --docker-server=https://${ACCOUNT}.dkr.ecr.${REGION}.amazonaws.com \ --docker-username=AWS \ --docker-password="${TOKEN64}" \ --docker-email="${EMAIL}" \ --namespace=${NS}
AB 🇨🇾 🍉
Создает secret data dockerconfigjson вместо dockercfg . Это нормально?
AB 🇨🇾 🍉
AB 🇨🇾 🍉
каккой-то странный type
Dmytro
так оно ж не будет так работать
Dmytro
если ECR в том же датацентре что и кластер то надо инстанс роли с которой запущены воркеры права пулить из ECR
Dmytro
если ECR в другом регионе то вроде бы вообще никак, по крайней мере года полтора назад когда мне нужно было это сделать - это было невозможно
Igor
какая разница, если ECR в том же акке?
Igor
если в другом, то AssumeRole вам в помощь
Igor
https://github.com/kubernetes/kubernetes/pull/24369 если вы об этом, пофиксили давненько
Dmytro
а, пофиксили - отлично
Stas
кто-нибудь читал https://linkerd.io/getting-started/k8s/ вот это?
AB 🇨🇾 🍉
так оно ж не будет так работать
работает. только тип другой нужно ставить . Не могу понять почему одна и таже команда генерит разные (dockerconfigjson вместо dockercfg )
bama^boy
ну и если iam роль сделана правильная, то ecs agent будет тащить все без авторизации
bama^boy
там проблема с аккаунтами есть, для каждой репы нужно разрешать доступ из другого аккаунта, мы для этого дела запедалили lambda, которую cloudtrail тригерит при создании ECR репы
Dmytro
там авторизуется просто aws ecr get-login ...
да но куб не умеет (умел) такое делать - авторизоваться используя IAM credentials
Dmytro
для докера есть логин хелпер https://github.com/awslabs/amazon-ecr-credential-helper
Dmytro
а вот почему куб не осилил подобное - я бы хотел знать. с instance role не всегда можно и удобно (особенно если это мультитенант кластер где деплоятся проекты разных команд)
AB 🇨🇾 🍉
Залогиниься можно с хелпером или с aws cli aws ecr --region=$REGION get-authorization-token --output text --query 'authorizationData[].authorizationToken'
AB 🇨🇾 🍉
и это работает если сервер даже не в aws
Alexandr
Всем привет. Пожскажите, а как лучше просаживать файлики сертификатов и ключи для клиентов в контейнеры?
Alexander
Ребята, а как вы чистите выполненные Jobs?
Alexandr
А оно и файлики умеет тоже?
Aleksandr
Ребята, а как вы чистите выполненные Jobs?
Анотация в темплейте хельма с джобой есть annotations: "helm.sh/hook": pre-install,pre-upgrade "helm.sh/hook-delete-policy": hook-succeeded
A
А оно и файлики умеет тоже?
Это просто key/value хранилище. Содердимое файла кладется в один key, в соседние метаданные:имя, куда класть, владелец, пермишены. Инит-контейнер запускает минимальное приложение, которое знает, что с этим делать и кладет секреты в volume, доступный другим контейнерам из пода
A
Plaintext можно класть просто так, бинарники кодируются в base64
Alexandr
Спасибо! Этот ответ сделал мне вечер пятницы! )
Alexandr
И файлики? Просто @gotmad описал выше подход. А вот с Secretes я как-то не придумал как такое реализовать...
A
Secrets
Кубернетсовские секреты?
Dmytro
говорят куб в последней версии научился секреты в шифрованном виде держать в etcd
Dmytro
сам еще не смотрел
Vladyslav
Vault
Я вот попробовал однажды, ощущения не самые приятные. Из вкусностей оценил только динамическую генерацию юзеров для бд. Может посоветуете качественные рецепты, как готовить, как употреблять?
A
Я вот попробовал однажды, ощущения не самые приятные. Из вкусностей оценил только динамическую генерацию юзеров для бд. Может посоветуете качественные рецепты, как готовить, как употреблять?
В vault хорошо решена проблема курицы и яйца - "первого секрета", чтобы получить доступ в vault из пода. Поды аутентифицируются на kubernetes auth backend с помощью jwt сервис аккаунта (а сервис аккаунт в неймспейсе есть всегда), который vault проверяет у api сервера куба и выдает токен поду для похода в vault. В этом случае границей безопасности является неймспейс куба. В vault секреты раскладываются так же по неймспейсам. За секретами в vault ходит инит-контейнер, кладет их в volume, этот volume подмаунчивается в контейрены пода по одному и тому же пути. Можно написать приложение на go с клиентскими либами от vault, но можно делать простым скриптом на баше с curl. Всю мишуру с инит-контейнером, волюмами и т.д. удобно оформить в сабчарт helm, чтобы люди не копипастили одно и тоже и не запаривались как оно работает.
A
https://youtu.be/IulNdGlQR3A понравилось но сам не пробовал
Это уже неактуально с появлением kubernetes auth backend в vault, все гораздо проще
Alexandr
В vault хорошо решена проблема курицы и яйца - "первого секрета", чтобы получить доступ в vault из пода. Поды аутентифицируются на kubernetes auth backend с помощью jwt сервис аккаунта (а сервис аккаунт в неймспейсе есть всегда), который vault проверяет у api сервера куба и выдает токен поду для похода в vault. В этом случае границей безопасности является неймспейс куба. В vault секреты раскладываются так же по неймспейсам. За секретами в vault ходит инит-контейнер, кладет их в volume, этот volume подмаунчивается в контейрены пода по одному и тому же пути. Можно написать приложение на go с клиентскими либами от vault, но можно делать простым скриптом на баше с curl. Всю мишуру с инит-контейнером, волюмами и т.д. удобно оформить в сабчарт helm, чтобы люди не копипастили одно и тоже и не запаривались как оно работает.
Прям добиваешь пятницу решением всех вопросов! Спасибо! Пошел спать со спокойной совестью
Dmytro
А .erb файлы чем шаблонизируете?
или это была шутка или я не понял вопрос
Alexander
коллеги, кому-нибудь надо в компанию/команду человека с 16-ти летним опытом? проект в котором я работаю закрывается и с будущего понедельника я готов подключиться (удалённо) к новому проекту имею большой опыт rubyonrails, devops, неплохо умею фротенд, но душа лежит к devops-у и потому пишу сюда тем более в текущем проекте в основном девопсом занимался если кому интересно - пишите, пришлю резюме в личку
Anonymous
Тебе сюда больше https://t.me/devops_jobs
Alexander
Спасибо
Kirill
Всем привет, подскажите им имеет ли смысл redis в кластере( мастер+ слэйды) в кубер запихивать?. Слышал там все не так просто с ним.
Kirill
Есть ли у кого успешно работает или даже пытаться не стоит