Как установить Kubernetes на сервер Ubuntu без Docker-а

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
image
Kubernetes прекращает поддержку Docker-а. Теперь, вся тяжелая работа, которую вы вложили в изучение оркестратора контейнеров, скоро изменится. Даже с самого начала пути использование Kubernetes не будет прежним.

Я говорю о самой установке инструмента управления контейнерами. Вы, конечно, не можете развернуть Kubernetes так же, как когда-то — установив Docker в качестве среды выполнения.

Вместе мы сейчас попробуем установить  Kubernetes на Ubuntu Server 20.04 без Docker-а.



Что вам понадобится



  • Пользователь с привилегиями sudo
  • Экземпляр Ubuntu Server 20.04 (он будет служить Контроллером — вам понадобятся другие экземпляры для работы в качестве узлов, но я собираюсь продемонстрировать только на Контроллере, так как установка будет одинаковой на всех машинах)


Как установить среду выполнения containerd



Первое, что мы сделаем, это установим среду выполнения containerd, которая займет место Docker. Войдите в свой экземпляр Ubuntu Server и обязательно обновите apt с помощью команды:

sudo apt-get update

После этого вы должны запустить обновление с помощью команды:

sudo apt-get upgrade -y

Если ядро ​​обновляется, вам нужно перезагрузить сервер (если у вас не установлен и не запущен Live Patch).
 
Установите containerd с помощью команды:

sudo apt-get install containerd -y

Настройте containerd и запустите службу с помощью команд:

sudo mkdir -p /etc/containerd
sudo su -
containerd config default /etc/containerd/config.toml

 

Как установить Kubernetes



Далее мы установим Kubernetes. Сначала нужно добавить ключ GPG репозитория с помощью команды:

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add

Добавьте репозиторий Kubernetes с помощью команды:
 
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"

Теперь вы можете установить все необходимые компоненты Kubernetes с помощью команды:

sudo apt-get install kubeadm kubelet kubectl –y

Как решить несколько проблем, возникших с containerd



Здесь все становится немного сложнее. В Docker было решено множество внутренних вещей. Когда вы переходите на containerd, вам нужно внести некоторые изменения в конфигурацию вручную. 

Первое изменение — добавить строку в /etc/sysctl.conf. Откройте файл командой:

sudo nano /etc/sysctl.conf

Открыв этот файл, добавьте снизу следующее:

net.bridge.bridge-nf-call-iptables = 1

Сохраните и закройте файл. 

Затем введите команды:

sudo -s

sudo echo '1' > /proc/sys/net/ipv4/ip_forward

exit


Перезагрузите конфигурации с помощью команды:

sudo sysctl --system

Вам также потребуется загрузить пару необходимых модулей с помощью команд:

sudo modprobe overlay

sudo modprobe br_netfilter


Как только вы позаботитесь об этом, то сможете инициализировать Kubernetes.

Как завершить настройку



Вам нужно будет отобразить все ваши узлы в / etc / hosts. Убедитесь, что отображение имеет форму:

IP Address hostname

Следующим шагом является установка имени хоста вашего контроллера (убедитесь, что оно соответствует имени хоста, которое вы использовали в / etc / hosts) с помощью команды:

sudo hostnamectl set-hostname HOSTNAME

Где HOSTNAME — это имя хоста, которое вы хотите использовать.

Отключите свопинг, открыв файл fstab для редактирования командой:

sudo nano /etc/fstab

В этом файле закомментируйте (добавив символ # в начало строки) запись, которая начинается с:

/swap.img

Эта строка теперь будет начинаться с:

# / swap.img

Сохраните и закройте файл. 

Отключите своп командой:

sudo swapoff -a

Вытащите необходимые контейнеры командой:

sudo kubeadm config images pull

На контроллере инициализируйте Kubernetes с помощью команды:

sudo kubeadm init --pod-network-cidr=IPADDRESS/24

Где IPADDRESS — это IP-адрес вашего контроллера.

В конечном итоге вы вернетесь к команде, которую нужно запустить на ваших узлах, чтобы они могли подключиться к кластеру. Скопируйте эту команду. 

Прежде чем вы сможете присоединить узлы к кластеру, вам нужно позаботиться о еще нескольких битах в кластере.

На контроллере создайте каталог кластера с помощью команды:

mkdir -p $ HOME / .kube

Скопируйте файл конфигурации в этот каталог с помощью команды:

sudo cp -i /etc/kubernetes/admin.conf $ HOME / .kube / config

Дайте конфигурационному файлу соответствующие разрешения с помощью команды:

sudo chown $(id -u):$(id -g) $HOME/.kube/config

Разверните сеть контейнеров (в данном случае мы будем использовать weave-net) в кластере с помощью команды:

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

Теперь вы можете запустить команду соединения на каждом из узлов, чтобы завершить работу кластера.

Процесс не так прост, как раньше. Надеюсь, что в будущем развертывание кластера Kubernetes будет таким же простым, как и при использовании Docker. 

 
Источник: https://habr.com/ru/post/542042/


Интересные статьи

Интересные статьи

Продолжаем нашу серию материалов, посвященную тестированию производительности серверов. Сегодня поговорим о паре проверенных временем бенчмарках, которые до сих пор поддерживают и обновляют — Net...
Что бы вы почувствовали, если в один прекрасный летний день дата-центр с вашим оборудованием стал бы выглядеть вот так? Всем привет! Меня зовут Дмитрий Самсонов, я работаю ведущим системны...
Когда я разговариваю с Linux инженерами и говорю им о проблемах Kubernetes кластера на Windows, на меня смотрят очень подозрительно. Некоторые даже не верят что это законно такое бывает. Конт...
Автор материала, перевод которого мы публикуем, является одним из основателей проекта Webiny — бессерверной CMS, основанной на React, GraphQL и Node.js. Он говорит, что поддержка многоарендной бе...
В нашем блоге уже были статьи, рассказывающие про возможности операторов в Kubernetes и о том, как написать простой оператор самому. На этот раз хотим представить вашему вниманию наше Open Source...