Как установить Kubernetes на VDS
1. Kubernetes введение
Проект Kubernetes был начат Google и теперь поддерживается многими компаниями, среди которых Microsoft, RedHat, IBM и Docker.
Для установки мы будем использовать облачный VDS с 2Гб оперативной памяти и 2 ядрами CPU (тариф Tiny на хостинге NetAngels).
Зайдите через SSH на сервер от имени пользователя root. Можно подключиться через SSH по нашей статье.
Не смотря на то, что контейнеры в kubernetes поддерживаются разные (CRI-O, Containerd, frakti), мы будем использовать Docker. Установите Docker по статье
2. Kubernetes установка
После установки Docker выполните команды:
apt-get update && apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl
Утилиты kubelet, kubeadm и kubectl установлены на ваш сервер. Kubernetes будет использовать Docker для размещения контейнеров.
3. Управление кластером с компьютера
Теперь нужно на компьютере или ноутбуке, с которого вы будете управлять кластером, установить утилиту kubectl
. Мы приведем пример для ситуации, когда на этом компьютере установлен Linux Mint 17.
Скачайте kubectl
curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
Установите флаг исполнения на этот файл
chmod +x ./kubectl
Переместите kubectl в системный каталог
sudo mv ./kubectl /usr/local/bin/kubectl
Проверьте, что все запускается
kubectl version
Создайте каталог для конфигурации
mkdir ~/.kube
Скачайте с VDS файл с ключами, которые позволят управлять Kubernetes
scp root@ip-vds:/etc/kubernetes/admin.conf ~/.kube/config
Замените ip-vds
на IP адрес вашего VDS.
4. Kubernetes настройка
Если бы мы размещали полноценные приложения в Kubernetes, то на этом этапе нужно было бы создать еще несколько VDS и их пометить как узлы Kubernetes (Nodes). А настроенный нами VDS использовался бы только как мастер узел (Master node).
Поскольку мы размещаем все на одном VDS, то нужно сказать Kubernetes, что на нашем единственном VDS тоже можно размещать приложения.
Выполните с вашего компьютера:
kubectl taint nodes --all node-role.kubernetes.io/master-
Далее настроим сеть для работы Kubernetes.
На VDS выполните:
sudo sysctl net.bridge.bridge-nf-call-iptables=1
Также на VDS
mcedit /etc/sysctl.conf
В самый конец файла добавьте строку
net.bridge.bridge-nf-call-iptables=1
Для сохранения нажмите на клавиатуре F2.
Теперь выполните с вашего компьютера:
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
5. Установка веб-интерфейса
Выполните с вашего компьютера:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
Создайте файл admin-user.yaml:
mcedit admin-user.yaml
Скопируйте в него содержимое ниже:
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kube-system
Для сохранения нажмите на клавиатуре F2.
Создайте файл clusterRoleBinding.yaml:
mcedit clusterRoleBinding.yaml
Скопируйте в него содержимое ниже:
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kube-system
Для сохранения нажмите на клавиатуре F2.
Выполните с вашего компьютера:
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
В выводе будет уникальный ключ, которая начинается с token:
. Скопируйте этот ключ. Ключ должен быть в одну строку, без пробелов.
Выполните с вашего компьютера:
kubectl proxy
Осталось открыть в браузере на вашем компьютере:
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
Появится окно:
Выберите “Token” и вставьте в поле “Enter token” скопированный ранее ключ.
Если все прошло успешно, то вы увидите веб интерфейс для Kubernetes.
Готово! Kubernetes install завершен.
Ответы на вопросы по Kubernetes можно найти в документации.