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

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 месяца ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 месяца ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 месяца ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 месяца ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 месяца ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 месяца ago