Anton
но если файлов много, то задача не из простых
в helm кстати как то так делаю в deployment volumes: - name: projected-config-mount projected: sources: - configMap: name: {{ .Release.Name }}-static {{- range $path, $bytes := .Files.Glob "ssl/*" }} - secret: name: {{ $root.Release.Name }}-ssl items: - key: {{ $path | base }} path: {{ $path }} {{- end }} {{- range $path, $bytes := .Files.Glob "static/some/*" }} - configMap: name: {{ $root.Release.Name }}-static-some items: - key: {{ $path | base }} path: some/{{ $path | base }} {{- end }} и аналогично набиваю configmap \ secret
Anton
сколько бы много файлов не было, уже не моя забота становится
Maksim
Вопрос как смонтировать и секрет и конфиг в Одну папку
Anton
и можно подкидывать файлы, если вдруг
Maksim
твой шаблон нифига не отвечает)
Anton
отвечает ;)
Anton
описание projected volume же
Maksim
и как они встанут в один моунт поинт?
Anton
уже встали с этим описанием
Maksim
плкажи mountPath
Anton
spec: containers: - name: some volumeMounts: - name: projected-config-mount mountPath: {{ .Values.nginx.configPath }} readOnly: false
Anton
https://kubernetes.io/docs/concepts/storage/volumes/#projected
Logan
коллеги, я правильно понимаю, что сайдкар имеет доступ к диску основного контейнера? или нет?
Alexey
коллеги, я правильно понимаю, что сайдкар имеет доступ к диску основного контейнера? или нет?
смотря как ты его настроишь, у них сетевой интерфейс один, а файловые системы разные, но ты можешь один и тотже волюм примонтировать обоим контейнерам
Logan
ceph можно монтировать в оба контейнера, я правильно помню?
Alexey
цеф можно монтировать кому угодно
Artemiy
Помимо цефа read write many что поддерживает?
Artemiy
В гугл облаке их диски только readwriteonce поддерживают, думаю как обойти
Vitalii
NFS:)
Maksim
NFS:)
Плохая мысль
Vitalii
Поделитесь болью
Khramov
Народ, с помощью чего вы деплоили кластер куба в продакшене? Нужно развернуть на виртуалках. Я посмотреть kops/kubespray, они вроде в основном для cloud решений. Посоветуйте с помощью чего лучше
Maksim
Поделитесь болью
Если оно падает, то всему становится плохо.....вплоть до падения нод.
Khramov
Я просто раньше через kubeadm делал, вроде нормально, но сейчас нужно поднять еще пару кластеров, и смотрю на альтернативы, как лучше.
Knyage
ну так оказалось намного проще понять, что, куда и зачем, чем пытаться понять, как переделать текущие скрипты\установщики под твои нужды
Anton
kubespray точно лучше kubeadm
Knyage
а нужда стояла построить кластер с несколькими мастерами
Khramov
Ну я просто через kubeadm поднимал ноды, а потом дополнительно несколько слейвов в мастера переделал
Khramov
Сейчас 3 мастера и 24 слейва стоят на одном из кластеров
Anton
а как же tls auth?
Khramov
Все это имеется
Knyage
У меня кластер через паппет накатывается, пара моментов руками (все никак в паппет не запихну) , сам икомпоненты кубера работают через бинарники, через systemd. Единственное, пока приходится руками обновлять дебиан до 4.9+ ядра, т.к. пока 8-я версия стоит
Aleksandra
Народ, с помощью чего вы деплоили кластер куба в продакшене? Нужно развернуть на виртуалках. Я посмотреть kops/kubespray, они вроде в основном для cloud решений. Посоветуйте с помощью чего лучше
kubespray отлично все ставит на виртуалки, облака там опциональны. Только лучше его как набор ansible playbooks применять. а не черех cli-утилиту которая там все только захламляет
Aleksey
или править много в group_vars?
Anton
все делает =)
Anton
недавно фиксы были
Aleksandra
я с calico ставила, calico с RBAC не дружит вроде, поэтому не пробовала, но это было три месяца назад
Aleksey
недавно фиксы были
ок, спасибо - будем посмотреть!
Khramov
failover в kubespray есть?
Aleksandra
как эт?
не могу сейчас найти. но где-то в доках было написано "не поддерживается" и я просто не стала разбираться дальше. Возможно речь шла о том что network policy в calico не были синтегрированы с rbac в kubernetes. и возможно это уже исправлено.
Anton
failover в kubespray есть?
apiserver знает всех etcd. kubelet и остальные через nginx подключаются, который знает о всех api. не помню только как kubernetes.svc выглядит внутри, сколько там endpoints
Knyage
Не понял про модуль. Для чего?
Mikhail [azalio]
Не понял про модуль. Для чего?
Как вы настраиваете через паппет?
Knyage
Написал классы под мастер-воркер, в манифесте хоста подключаю его
Oleg
пост на тему задания конфигурации nginx через ConfigMap https://medium.com/@olegsmetanin/kubernetes-receipt-reverse-proxy-to-your-github-page-using-configmap-1b81ec31cbd1
Ihor
Ребята, хочу поднять кластер на хетзнер(да,да, знаю что говно) и следовательно нет возможности засетапить отказоустойчивый лоад балансер. Собственно какие есть способы чтобы в случае смерти мастера или etcd, можно было быстро восстановить работу кластера?
Ihor
@not_logan каким образом можно использовать балансер локально на каждом мастере?
Logan
В каждый балансёр прописать ip всех etcd. В kube-apiserver прописать 127.0.0.1 и порт балансера
Logan
Как вариант - прописать в балансёр апи-сервера а в каждый апи прописать свой локальный етцд. Посмотрите кукбук от ЗлыхМарсиан, это хороший пример
Ihor
Какой балансер можно так использовать? И кто такие марсиане?
Logan
https://github.com/evilmartians/chef-kubernetes марсиане используют haproxy. Он вполне эффективен
Ihor
А разве haproxy не нужно ставить на отдельную машину и с нее уже балансить на мастера?
G72K
А разве haproxy не нужно ставить на отдельную машину и с нее уже балансить на мастера?
ничего не мешает его запускать на каждой машине, откуда необходим доступ к api server, жрет он всего ничего
Anton
В каждый балансёр прописать ip всех etcd. В kube-apiserver прописать 127.0.0.1 и порт балансера
kube-apiserver может знать сразу о всех etcd серверах, тоесть можно прописать списком ему и клиент сам будет управлять куда подключаться
Ihor
Правильно ли я понял что вы имеете ввиду поставить пару независимых haproxy?
Anton
предлагают поставить балансер на каждую из нод для локальных клиентов
G72K
предлагают поставить балансер на каждую из нод для локальных клиентов
я тут тоже своим железом занялся. хочу попробывать ipvs на каждой ноде для хождения к apiserver прикрутить
G72K
но вообще по хорошему, go-client должен бы уметь ходить на несколько apiserver сам
Anton
так apiserver умеет же --etcd-servers stringSlice List of etcd servers to connect with (scheme://ip:port), comma separated.
G72K
kubelet использует client-go для этого дела
G72K
если бы client-go научился знать о нескольких apiservers было б круто и костыли не нужны
Anton
чет не думаю что там будет меняться что то, недавно вроде на --kubeconfig переехали для указания контекста для подключения. может он сможет когда нить контексты перебирать?
Volodymyr
привет! не отрабатывает cronjob: Unable to mount volumes for pod "name-microservice-cronjob-1509696000-ls346_stage(fda5f04b-c06c-11e7-9813-021930a0ab96)": timeout expired waiting for volumes to attach/mount for pod "stage"/"name-microservice-cronjob-1509696000-ls346". list of unattached/unmounted volumes=[default-token-rxx06] никто не сталкивался?
Alexey
ну тут не в кроне дело, а в конфиге пода, диск указанный не может примонтироваться
Maksim
default-token-rxx06
Maksim
Нет ответа от api сервера
Maksim
который должен поду выдать токен
Maksim
скорее всего косяк в настройке апи сервера и/или сети
Maksim
так же стоит смотреть на kube-proxy/kube-router
Anton
а кто нить сравнивал https://github.com/nginxinc/kubernetes-ingress и https://github.com/kubernetes/ingress-nginx pros\cons?