Kubeadm позволяет создавать кластеры на любом компьютере с Docker.
Это руководство поможет вам создать свой первый кластер с 1 главным и 1 рабочим узлами. (Это основано на Debian)
Выполните следующую команду на всех 2 машинах:
Установка Docker из официального репозитория
$ sudo apt-get update
$ sudo apt-get -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common
$ curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") $(lsb_release -cs) stable"
$ sudo apt-get update
$ sudo apt-get install -y docker-ce docker-ce-cli containerd.io
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
Установить kubeadm, kubectl и kubelet из официального репозитория
$ sudo apt-get update && sudo apt-get install -y apt-transport-https curl
$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
$ sudo su -c "cat > /etc/apt/sources.list.d/kubernetes.list <<EOF
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF"
$ sudo apt-get update
$ sudo apt-get install -y kubelet kubeadm kubectl
$ sudo apt-mark hold kubelet kubeadm kubectl
Выполнить следующую команду только на вашем главном узле
Инициализировать ваш кластер
$ sudo kubeadm init
Когда инициализация завершится, kubeadm даст вам команду добавить ваших работников в ваш кластер. Сохраните эту команду для дальнейшего использования.
EXAMPLE :
kubeadm join 10.128.0.17:6443 --token 27evky.hoel95h16poqici6 \
--discovery-token-ca-cert-hash sha256:521f69cb935951bbfee142432108caeaeaf1682d8647208ba2f558624890ab63
После завершения команды kubeadm init выполните следующие команды, чтобы начать использовать новый кластер
$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
Ваш мастер еще не готов, нам нужно создать сеть cni ( Вы можете выбрать различные CNI )
$ kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml
Проверьте, готов ли ваш главный узел. Требуется время, чтобы запустить все зависимости. $ Kubectl get node
EXAMPLE :
user@kubemaster:~$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
kubemaster NotReady master 32s v1.16.2
Чтобы проверить более подробную информацию о вашем узле:
$ kubectl describe node <NODENAME>
Когда ваш мастер-узел готов, вы можете продолжить и выполнить команду kubectl join (сохраненную ранее) на ваших рабочих узлах:
$ sudo kubeadm join 10.128.0.17:6443 --token 27evky.hoel95h16poqici6 --discovery-token-ca-cert-hash sha256:521f69cb935951bbfee142432108caeaeaf1682d8647208ba2f558624890ab63
Проверьте, готов ли ваш рабочий узел (команда должна быть выполнена на главном узле))
$ kubectl get nodes
Если вы хотите иметь больше рабочих, просто повторите команду kubectl join для новых рабочих.