
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
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.
