Darkwing
А какая цель?
Изобретаю велосипед. Описываю в terraform кластер и думаю над тем, как джоинить ноды. Не очень понимаю, как можно захватить токен в переменную терраформа и отдать её ноде, поэтому и ищу другой способ
𝚔𝚟𝚊𝚙𝚜
Как вариант можно сгенерить вечный токен
Darkwing
Как вариант можно сгенерить вечный токен
Ну можно, да, но такой вариант мне не очень нравится. Хотелось бы динамически
Rainbow
В начале не хватает ништяков вроде секретов для registry, нужно писать прямо в манифест. А потом начинаешь думать и находишь всякие deploy tokens у github, что круче чем креды на каждый нс. jsonnet можно и тп
Darkwing
https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping/ ?
Вот наверное то что нужно, спасибо!
𝚔𝚟𝚊𝚙𝚜
https://github.com/kelseyhightower/kubernetes-the-hard-way/blob/master/docs/04-certificate-authority.md#the-kubelet-client-certificates
Артем
Добрый день. Пишет ошибка в ямл файле, подскажите что не так.
Sergey
notepadd++ + kubernetes? =)
Артем
Artyom
а volume mounts в spec разве оборачивается?
Artyom
кажется там spec лишний
Nikolay
да, спек лишний в 21ой строке
Nikolay
а начиная с 25ой строки все на два уровня выше
Артем
Вот так, конечно работает, но монтирует не ту папку. Он мотирует в докер контейнер в папку var/www, корень apline, а должен папку с проектом
Артем
Уже несколько дней с этим рзбираюсь
Rainbow
Вот так, конечно работает, но монтирует не ту папку. Он мотирует в докер контейнер в папку var/www, корень apline, а должен папку с проектом
Достаточно сделать копипаст из доки. Тут конкретно volumes должно быть в спеце пода, а не контейнера
Nikolay
вынести его на один уровень с контейнером.
Nikolay
или вместо скринов скопипастить сюда текст и кто-нибудь сделает
Артем
apiVersion: extensions/v1beta1 kind: Deployment metadata: labels: app: app name: app spec: replicas: 1 selector: matchLabels: app: app template: metadata: labels: app: app spec: volumes: - name: volume-app hostPath: path: ./ containers: - image: app imagePullPolicy: Never name: app ports: - containerPort: 11080 volumeMounts: - mountPath: /var/www name: volume-app volumes: - name: volume-app hostPath: path: ./
Nikolay
apiVersion: extensions/v1beta1 kind: Deployment metadata: labels: app: app name: app spec: replicas: 1 selector: matchLabels: app: app template: metadata: labels: app: app spec: containers: - image: app imagePullPolicy: Never name: app ports: - containerPort: 11080 volumeMounts: - mountPath: /var/www name: volume-app volumes: - name: volume-app hostPath: path: ./ как-то так
Артем
Вот что получилось, тоже самое
Vadim
А что означает path: ./?
Артем
Путь такой /.
Nikolay
так /. или ./? это две большие разницы
Nikolay
а ошибка связана с тем, что в контейнере или нет баша, или его расположение не добавлено в $PATH
Артем
так /. или ./? это две большие разницы
Нет, я не про эту ошибку файлы не те. Должны быть вот эти
Rainbow
🙀
Nikolay
не надо указывать относительные пути. поменять на абсолютный и должно работать
Rainbow
Не, тут проблема что он не собирает image, а монтирует код
Rainbow
Это не будет работать. Адекватно точно не будет
Артем
Программисты хоотят чтобы код монтировался
Rainbow
В деве
Rainbow
В деве куб не нужен
Артем
В тесте
Rainbow
В тесте должен быть собранный image с кодом. Без вариантов
Rainbow
Который в прод поедет
Артем
Так после изменения кода, нужно пересобирать image, это же время и не очень удобно
Andor
В деве куб не нужен
Если есть хардкорная завязка на кубеня, то лучше таки их же в деве иметь
Andor
Так после изменения кода, нужно пересобирать image, это же время и не очень удобно
Конечно нужно, иначе как ты протестируешь что имдж для прода ок
Rainbow
Если есть хардкорная завязка на кубеня, то лучше таки их же в деве иметь
Не хочу в такую компанию попасть 🤬 поэтому так говорю. Имхо контейнер должен быть гибким. Один способ запуска не мотивирует так делать.
Andor
Для чего?
Rainbow
Для чего гибкий?
Rainbow
Чтобы не писали dns базы в коде, потому что всегда одинаково, а делали через env. Самое банальное
Артем
А почему через докер compose такая конструкция работает?
Andor
Ну вот например приложение может требовать доступ в апи кубера для каких-то целей
Rainbow
А почему через докер compose такая конструкция работает?
Потому что сервер один, а куб это про 1+
Rainbow
Ну вот например приложение может требовать доступ в апи кубера для каких-то целей
Это крайне редкий кейс. Не думаю что тут больше 1% писало хоть что-то такое. Там люди сами думаю разберутся
Артем
Так у него тоже есть варианты для работы на одной ноде, minikub например
Rainbow
Minikube is a tool that makes it easy to run Kubernetes locally. Minikube runs a single-node Kubernetes cluster inside a VM on your laptop for users looking to try out Kubernetes or develop with it day-to-day.
Vadim
Кстати, дорогие студенты, не пропустите шанс познакомится с разработкой k8s поближе - https://github.com/cncf/soc#kubernetes. Срок подачи заявок - 9 апреля
Артем
Спасибо, что доходчиво объяснили
Rainbow
У тула написано в первом абзаце, что это для дева. Как и vagrant, как и другие подобные тулы.
Vadim
А почему через докер compose такая конструкция работает?
в docker compose тулза вызывается из текущего каталога и передает докердемону абсолютный путь. В k8s кубелет монтирует этот путь - и не знает о текущей директории
Евгений
Это крайне редкий кейс. Не думаю что тут больше 1% писало хоть что-то такое. Там люди сами думаю разберутся
Юзать куб апи -- редкий кейс, а вот завязываться на etcd это очень частый кейс. К тому же если ваша инфраструктура на самом деле микросервисная, а не пара монолитов, то дев окружение несомненно потребует сложной инфраструктуры, которую вы локально не поднимите. Странно поднимать половину дева в кубе, а один разрабатываемый сервис докер-композом
Vadim
ты преподаешь?
В этом году нет, но надо бы, да
Grigorii
Привет, хочу PV для nfs шары создать. В pv этом, похоже, нельзя добавить опции монтирования? А самое главное, как логин с паролем к шаре указать? Гуглю, но примеров то и нет
Sergey
Привет, хочу PV для nfs шары создать. В pv этом, похоже, нельзя добавить опции монтирования? А самое главное, как логин с паролем к шаре указать? Гуглю, но примеров то и нет
apiVersion: v1 kind: PersistentVolume metadata: name: pv01 spec: capacity: storage: 5Mi volumeMode: Filesystem accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Recycle storageClassName: any mountOptions: - hard - nfsvers=4.1 - intr nfs: path: /mnt/nginx server: <ip.addr> насчет акков хз
Sergey
Семён
а разве не правильнее использовать pvc и провиженер ?
Sergey
а разве не правильнее использовать pvc и провиженер ?
дык я так понял что все равно через pvc пойдет дело
Sergey
он просто думает как pv с параметрами сделать
Семён
я к тому что самому монтировать шару на ноды и юзать в подах hostpath - такое себе )
Семён
во всяком случае уж явно не в ручную
Александр
Я для теста запихивал Прометей в цеф. И благополучно проебал данные. Нет, сделав бы лишние движения все бы восстановил. Но... это такое.
Я хуй знает как можно проебать данные в цепхе, если только целенаправленно их не убивать..
Oleg
Я хуй знает как можно проебать данные в цепхе, если только целенаправленно их не убивать..
Тут не про цеф, его то мы плотно используем как объектное хранилище, так и под вм через рбд. Тут про все эти pvc, провиженеры и прочие связки.
Александр
Oleg
угу, было дело
Freddy
Здравствуйте коллеги, я начинающий девопс инженер. Я хочу установить и протестировать кубернетес(1 мастер, 2 воркер), но что то идет не так..) Пожалуйста, подскажите какой нибудь проверенный гайд для установки куби Заранее спасибо :)
Семён
Какая платформа?
Семён
вообще если у тебя просто сферические виртуалки в вакууме без всяких клауд-провайдеров - то попробуй вот эту официальную доку: https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/
Andor
The Hard Way?