Если вам нужно запустить Kubernetes, сегодня очень часто вы просто выбираете одного управляемого в некоторых облачных провайдере. Однако этот вариант часто дорогой. Более дешевый вариант — получить кучу виртуальных машин и установить в него Kubernetes.
Создание кластера Kubernetes на самом деле сегодня довольно просто, используя такие инструменты, как Microk8s Но есть еще несколько ручных действий.
Чтобы упростить здание кластера, вы можете использовать, например, Cloud-init , Стандарт для инициализации изображения облачного изображения. Поэтому я решил написать облачный инициатор, который может автоматически создать для вас кластер.
Результат здесь , вы можете скачать его с этой командой:
curl -sL bit.ly/microk8s-init >microk8s-init.yaml
Чтобы полностью автоматизировать генерацию кластеров, мне пришлось использовать пару трюков.
Сначала я назначил статически IP -адрес виртуальным машинам. Я назначаю IPS виртуальным машинам, используя число, которое, как ожидается, будет включено в имя хоста. Во -вторых, я генерирую «программно» токен, чтобы присоединиться к кластеру.
Следовательно, есть пара параметров, которые вам может потребоваться настраивать перед его использованием. Вам может потребоваться изменить СЕТЬ параметр. Все виртуальные машины получат IP в этой сети в соответствии с именем хоста. Например, виртуальная машина Kube1 получит адрес 10.0.0.1 . Также обратите внимание, что 1 Виртуальная машина всегда используется для присоединения к кластеру
Также для безопасности вы можете изменить ПРОХОДИТЬ Параметр, который является паролем, используемым для генерации уникального токена для присоединения к кластеру.
Сценарий можно использовать во многих различных средах. Низко висящий фрукт, чтобы использовать его WTH Многооснащение , еще один удобный инструмент от Ubuntu для запуска виртуальных машин в нескольких средах.
Microk8s требует не менее 2 ГБ памяти для запуска и 2 VCPU. Поэтому вы можете проверить скрипт со следующими командами, чтобы создать первый узел локального кластера:
multipass launch -nkube1 -m3g -c2 --cloud-init microk8s-init.yaml
Иногда во время инициализации уйдет время, поэтому вам может потребоваться ждать ее
multipass exec kube1 -- sudo cloud-init status --wait
Затем вы можете запустить больше случаев и подождать их:
multipass launch -nkube2 -m2g -c2 --cloud-init microk8s-init.yaml multipass exec kube2 -- sudo cloud-init status --wait multipass launch -nkube3 -m2g -c2 --cloud-init microk8s-init.yaml multipass exec kube3 -- sudo cloud-init status --wait
Наконец, вы можете извлечь файл конфигурации и проверить статус кластера с помощью:
multipass transfer kube1:/etc/kubeconfig ~/.kube/config kubectl get nodes
Оригинал: «https://dev.to/sciabarracom/deploy-a-microk8s-cluster-with-cloud-init-45l7»