Categories: linux

kubernetes-single-node-cluster/

В рамках поста Быстрое введение в Kubernetes мы познакомились с основами использования кубера, однако для его развертывания было предложено использовать либо Docker Desktop, либо облака. Давайте попробуем заполнить этот пробел, подняв простейший однонодовый кластер Kubernetes на машине под управлением Ubuntu Linux 18.04 LTS.

Сразу отмечу, что по умолчанию Kubernetes торчит наружу. Если вы поднимаете ноду Kubernetes где-то на VDS просто для экспериментов, то скорее всего хотите закрыть на машине все порты кроме 22-го:

sudo ufw allow ssh
sudo ufw default deny incoming
sudo ufw enable

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

Далее ставим Docker . В стандартных пакетах дистрибутива оказалась достаточно свежая на данный момент версия 18.09.2, поэтому этими пакетами и воспользуемся:

sudo apt install docker.io
sudo systemctl enable docker
sudo systemctl start docker

# Для доступа к /var/run/docker.sock говорим:
sudo usermod -a -G docker eax
# где `eax` — имя вашего пользователя.
# После выполнения команды понадобится перелогиниться.

Затем создаем /etc/apt/sources.list.d/kubernetes.list:

deb http://apt.kubernetes.io/ kubernetes-xenial main

Здесь были использованы пакеты для Ubuntu 16.04 Xenial, поскольку пакетов для 18.04 Bionic еще не занесли. Возможно, они появятся к моменту, когда вы будете читать эти строки. В этом случае, конечно же, предпочтительнее использовать пакеты для Bionic.

Далее говорим:

# под рутом
curl -s https: // packages.cloud.google.com / apt / doc / apt-key.gpg |
apt-key add

# Если в системе включен swap, k8s откажется стартовать.
# Swap отключается командой `swapoff -a` и последующим
# редактированием /etc/fstab.

# под обычным пользователем
sudo apt update
# смотрим список доступных версий
apt-cache madison kubeadm
# самые последние версии кубера не обязательно самые стабильные
sudo apt install kubeadm =1.14.9-00 kubelet =1.14.9-00 kubectl =1.14.9-00
sudo kubeadm init —pod-network-cidr =10.244.0.0 / 16
—apiserver-advertise-address =YOUR_EXTERNAL_IP
—kubernetes-version stable- 1.14
mkdir ~ / .kube
sudo cp / etc / kubernetes / admin.conf ~ / .kube / config
sudo chown eax:eax ~ / .kube / config

За сетевое взаимодействие между контейнерами в Kubernetes отвечает специальный компонент, плагин Container Network Interface (CNI). Существует множество реализаций плагинов CNI. Здесь мы остановимся на установке лишь двух вариантов — Flannel , являющегося плагином L2 (канальный уровень, это на котором работает Ethernet ), и Calico , являющегося плагином L3 (сетевой уровень, IP, ICMP, BGP и другие).

Для установки Flannel говорим:

kubectl apply -f https: // raw.githubusercontent.com / coreos / flannel /
master / Documentation / kube-flannel.yml
kubectl apply -f https: // raw.githubusercontent.com / coreos / flannel /
master / Documentation / k8s-manifests / kube-flannel-rbac.yml

Если же в это время суток вы предпочитаете Calico:

# В kubeadmin init можно было просто указать:
# —pod-network-cidr=192.168.0.0/16
# Но поскольку мы указали другую подсеть (для Flannel),
# обновим параметр таким образом:
kubeadm config upload from-flags —pod-network-cidr =192.168.0.0 / 16
kubectl apply -f https: // docs.projectcalico.org / v3.6 / getting-started /
kubernetes / installation / hosted / kubernetes-datastore /
calico-networking / 1.7 / calico.yaml

Наконец, разрешим запуск подов на мастер-ноде, а то по умолчанию оно запрещено, для секьюрности:

kubectl taint nodes —all node-role.kubernetes.io / master-

Ну вот, кластер из одной ноды поднят, можно пользоваться. По большому счету, мы получили то же самое, что дает Docker Desktop пользователям Windows и MacOS, только под Linux.

admin

Share
Published by
admin
Tags: Linux

Recent Posts

После включения диагностического запуска не удается войти в Windows — как исправить?

Некоторые пользователи, экспериментируя с конфигурацией системы в окне msconfig могут столкнуться с ситуацией, когда после…

1 неделя ago

WinScript — очистка и настройка Windows 11 и 10

На сайте не раз публиковались обзоры программ, предназначенных для очистки или настройки последних версий Windows.…

1 неделя ago

Предварительный просмотр накопительного обновления не устанавливается — решение

При установке некоторых обновлений Windows 11, имеющих в названии «Предварительный просмотр накопительного обновления», многие пользователи…

1 неделя ago

FixExec — восстановление ассоциаций .exe, .bat и .com файлов

Некоторые пользователи Windows 11, 10 и предыдущих версий системы могут столкнуться с ситуацией, когда исполняемые…

1 неделя ago

Ошибка 0x800705b4 при обновлении Windows 11 и 10 — как исправить?

При установке обновлений Windows 11/10 некоторые пользователи могут столкнуться с ошибкой с кодом 0x800705b4 и…

1 неделя ago

Обслуживание вашей версии Windows 11 окончено — что делать?

Пользователи Windows 11 могут столкнуться с сообщением «Обслуживание вашей версии Windows окончено» (Your version of…

1 неделя ago