Установка Kubernetes при помощи Kubespray
Вставка
- Опубліковано 29 лис 2024
- Установка кластера kubernetes при помощи kubespray.
Быстро, три мастера.
Update: Новое видео, на ту же тему, но с учётом новых особенностей на начало 21-го года. • k8s mini cluster step ...
Update: вместо flanel рекомендую ставить calico. В последних реализациях flanel были обнаружены глюки, при добавлении новых серверов в кластер.
Видео Флант: • Наш опыт с Kubernetes ...
Про книгу Маркелова: www.kryukov.bi...
Спасибо. Храни тебя господь.
Артур ты капитальный красавчик))
@@faridakbarov4532 да, я знаю :)
Вот прочему нельзя такой гайд сделать в офф документации?)) Спасибо автору.
Молодец очень толково, было приятно слушать
Очень хорошая подача, прям как я люблю. Спасибо за труд! Отличное видео!
Спасибо
Артур, а если надо развернуть кластер kubspray -ем в инфраструктуре, где нет доступа в internet, поможет ли мне такой план 1. ставлю в другом месте (онлайн сегмент) кластер требуемой конфигурации kubespray-ем, далее определяю какие пакеты и images он установил на узлы - скачиваю их в архивчик. 2. переношу архивчик и закачиваю (устанавливаю) на оффлайн сегмент на сервера где буду ставить 3. запускаю установку оффлайн - доступа ни к каким репозиториям нет, но kubespray проверяет что пакеты/образы уже есть и отрабатывает нормально(?). Прокатит так? я подобным образом успешно ставил кластер kubeadm-ом (правда одномастерной конфигурации), но хочется HA cluster kubespray-ем поставить
Подняли у себя любую хранилку контейнеров. Эскпорт контейнера в файл. Импорт из файла в свою хранилку.
Дальше смотрим в сторону:
kubespray / inventory / sample / group_vars / all / offline.yml
@@OldPythonKAA спасибо, попробую!
Отлично, спасибо! Лайк, подписка
Мне помогло развертывание используя команды с гита кубспрея, затем установка ансибл 2.10.4 (не понимаю почему в тхт у них прописано 2.7, если потом они хотят условие 2.9
Спасибо за видео! У меня несколько вопросов по установке. Для реальной установки какие ресурсы нужны для master? Какое должно быть соотношение ядер и памяти для node? Можно ли делать установку на ubuntu? Могу ли удалить namespace для для default (на работе загнулся кубернетес, предположительно из за того, что количество подов превысило максимальное допустимое количество на каждой ноде, у нас две нод то есть максимум 220 может быть, а у нас их 267)?
По пунктам:
1,2. ua-cam.com/video/vycrJTvyk98/v-deo.html
3. да.
4. В этом нейспейсе есть важный сервис, который система автоматически восстанавливает, если вы его удалите. Он нужен для корректной работы системы. Что будет если удалить немспейс default - не пробовал, не вижу в этом никакого смысла.
Последний вопрос, см. ответ на 1,2.
@@OldPythonKAA Спасибо, Артур, за оперативный ответ. Проблема, в том, что кубернетес используется для тестирования ci/cd из gitlab. Удалить default я хочу да бы избавиться от лишних подов, может после этого система оживет (нужные проды потом заново появятся при запуске job), а потом уже попробовать спокойно установить другой кубернетес кластер.
интересно было бы узнать, чем обусловлен выбор версии релиза
Релиза кубеспрея? Он проверен, у меня он используется в нескольких проектах. Если, например нужен куб 1.18, можно ведь и руками поставить. Просто руками новичку отказоустойчивый кластер ставить сложнее, чем руками. Особенно первый раз. Ну мне так кажется.
@@OldPythonKAA спасибо за ответ. Да, релиз именно kuberspray. Интересно почему взят релиз 2.12, а например не последний релиз или мастер ветка. Про то, что он проверен - я понял, интересно вы обновляете релизы только когда в них появляются киллер-фичи или есть ещё критерии?
@@alsh7450 "Работает - не трогай. Не сломалось - не чини" как то так :)
Приветствую, возникло пару вопросов. Etcd сертификаты обновляются вместе с кластером при kubeadm certs renew all или отдельно нужно обновлять? Можно ли потом обновить версию кластера вручную или через kuberspray можно?
Зависит от того как ставили.
А в инвентарном файле, имена ноды, это точно имя задаваемое ноде а не fqdn? Зачем тогда локальный dns если нигде больше доменные имена не указываются?
Это древнее видео, я вобще не помню что там конкретно было. Тем более, что сейчас я от кубеспрея отказался.
@@OldPythonKAA А почему отказались? Есть что-то поудобнее?
Смотрите последние видео, буквально пару недель назад выложил на канале. Там все есть.
Делаю все по вашему видео, но на Ubuntu 18. До 28:42 минуты все ок, потом же при развертывании уже на машины, возникает ошибка [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'. Хотя командой ansible all --list-hosts все хосты видит. В чем может быть проблема подскажите?
Разобрался - путь в моем случае нужно было писать полностью - /home/...../kubespray/inventory/myclaster/inventory.ini Процесс начинается, но возникает теперь другая ошибка fatal: [node1]: FAILED! => {"changed": false, "msg": "groupadd: Permission denied.
groupadd: \ /etc/group; n", "name": "kube-cert"}
Добрый день. Вы точно с правами рута это делаете (каким пользователем вы сгенерили ключи для доступа к машинам ssh-keygen и какому пользователю его скопировали)?
Попробуйте при запуске плейбука добавить --become --become-user=root
@@OldPythonKAA Да спс, все заработало)
@@OldPythonKAA Здравствуйте, пытаюсь развернуть кубспрей и выпадает такая ошибка при запуске плейбука:
TASK [bootstrap-os : Install dbus for the hostname module] *********************
Saturday 11 September 2021 20:28:14 +0700 (0:00:00.061) 0:00:01.966 ****
fatal: [node1]: FAILED! => {"changed": false, "msg": "Could not detect which package manager to use. Try gathering facts or setting the \"use\" option."}
fatal: [node2]: FAILED! => {"changed": false, "msg": "Could not detect which package manager to use. Try gathering facts or setting the \"use\" option."}
Подскажите пожалуйста в чем может быть проблема/ошибка?
скажите пожалуйсто как можно спомощью Kubespray добавить еще Windows Nodes, мне нужно иметь 4 нода Линукс и 2 виндовс?
С Windows nodes дела не имел, и думаю что это редкостное извращение, сорри.
@@OldPythonKAA вообше то это не извращение, очень странный ответ,апликация-сервис написана на виндовс и линукс, то тут извените выбора нет, я это все сделал ( AWS EKS, EC2, Cloud formation) но мне нужно через kubespray
Подскажите, что за ПО используется для одновременной работы с виртуальными машинами и cli у Вас?
Не понял вопрос. Вы про клиент ssh? Если про него, то mRemoteNG
@@OldPythonKAA Именно, спасибо! Пользую mobaxterm, не использовали, как оно в сравнении с ним?
Не знаю. Не пользовался.
так просто?))) и еще, я думал будет как docker -sworm, т.е без всех этих служебных контейнеров...
здравствуйте, нужно обязательно на виртуальную машину устанавливать kubespray. без vm не обойтись?
Не обязательно. Kubesparay - это ansible playbook. Он будет работать везде, где вы сможете запустить ansible.
@@OldPythonKAA kubespray работает только с python 2.7? 3.8 не подойдет?
Подойдет любой питон, который может запустить ansible, заявленный в requirements.txt
круто, но я на столько лентяй делать ssh-copy-id хочу через vagrant, не пробовали ставить?
у мене набор виртуалок один. Дальше снапшоты рулят :)
Попробовал vagrant. Не понравилось. Только я не понял про ssh-copy-id. В вагранте тоже скриптик для этого нужен. Кто мешает этот скриптик руками без вагранта запустить? :)
@@OldPythonKAA нормально, запустил через vagrant, жизнь налаживается. Только почему-то vagrant c centos os работает, у остальных OS в их списке отвал DNS происходить на стадии установки ansible, что-то с NetworkManager. Да ладно, мне только протестировать все равно все будет собираться не у меня на компе.
Я AlmaLinux 8.4 в вагранте пользовал. Нормально поставилось. Правда до ансибла не дошел. Мне не понравилось что обязательный nat интерфейс и жестко все на него завязано. Второй интерфейс, смена клиента DNS в /etc/resolv.conf все тупо скриптами. Или я чего то не понимаю в вгранте или надо в торону терраформа смотреть.
@@OldPythonKAA не нашел у них такую OS в Vagrantfile переменная SUPPORTED_OS, может раньше была
добрый день
у меня выскакивает ошибка
Traceback (most recent call last):
File "/usr/local/bin/ansible-playbook", line 40, in
from ansible.errors import AnsibleError, AnsibleOptionsError, AnsibleParserError
File "/usr/local/lib/python3.10/dist-packages/ansible/errors/__init__.py", line 22, in
from collections import Sequence
ImportError: cannot import name 'Sequence' from 'collections' (/usr/lib/python3.10/collections/__init__.py)
В чем может быть проблема подскажите?
Добрый день. Я это видео снимал три года назад. Более года назад отказался от использования кубеспрея как такового. Совсем не использую. Вобще. Даже рядом не стою ;)
Рекомендую перейти например на kubeadm. Видео об установке кластера при помощи kubeadm есть на канале.