English version is also available.
Набор скриптов для того, чтобы быстро поднять простенький кластер Kubernetes. Cеть может быть Flannel или Calico, на выбор.
Окружение:
- виртуальная машина (VirtualBox, но сойдет любой способ)
- Ubuntu 20.04
Подразумевается, что у каждой виртуальной машины есть два сетевых интерфейса:
- NAT (для доступа в Internet)
- Host-only (для общения с другими машинами и нашей хостовой машиной)
Можно использовать и один интерфейс, если машины могут видеть на нем друг друга и иметь доступ в интернет (NAT Network в Virtual Box).
Кластер можно запустить на Linux как указано ниже, либо воспользоваться Vagrant для запуска.
vagrant/single
- однонодовый кластер kubernetes в Vagrantvagrant/twin
- двухнодовый кластер kubernetes в Vagrant (master + worker)
- Устанавливаем необходимые пакеты и закрепляем их версии
sudo ./install
- Создаем кластер. В качестве аргумента нужно передать имя интерфейса (обычно это Host-only):
- на нем будет слушать Kubernetes API server
- он будет использоваться для общения между нодами
Чтобы посмотреть работающие интерфейсы, просто запускаем без параметров
sudo ./init
Чтобы инициализировать кластер, запускаем с параметром:
sudo ./init enp0s8
На этой стадии конфигурационный файл для kubectl будет скопирован в ~/.kube/config
, поэтому если в этом файле есть что-то важное, сохраните его.
- Предыдущая стадия подготовит манифесты сетевых плагинов, нужно просто выбрать, какой из них установить.
kubectl apply -f network/flannel.yml
kubectl apply -f network/calico.yml
- Устанавливаем необходимые пакеты и закрепляем их версии
sudo ./install
- Чтобы присоединить ноду к кластеру нужно вызвать скрипт
./join
и передать ему два параметра:
- имя интерфейса для общения между нодами
- endpoint, на котором слушает Kubernetes API server
Чтобы посмотреть работающие интерфейсы, просто запускаем без параметров
sudo ./join
Чтобы присоединиться, запускаем с параметрами:
sudo ./join enp0s8 192.168.56.110:6443