Быстрая установка Kubernetes с админкой на RHEL
Инструкция для установки кубернетиса на одной мастер-ноде, с возможностью запуска на ней pod’ов.
Первым дело обновляем пакеты и репозитории:
sudo su
yum upgrade -y
Устанавливаем docker
yum install -y docker
Добавляем докер в автозапуск:
systemctl enable docker
Cgroups у докера и кубернетиса должны совпадать. Кубернетис по умолчанию запукается из под cgroupsfs, а докер из под systemd. Меняем у докера, для этого в файле /usr/lib/systemd/system/docker.service ищем строку:
--exec-opt native.cgroupdriver=systemd \
и заменяем systemd на cgroupfs.
Проверяем, что изменения применились:
docker info
В выводе должна быть строчка:
Cgroup Driver: cgroupfs
Для работы кубернетиса необходимо выключить своп:
swapoff -a
И не забываем удалить строчку с подключением свопа из /etc/fstab
Отлично! Начинаем ставим кубик:
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
setenforce 0
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet
У меня установились следующие версии: Installed: kubeadm.x86_64 0:1.14.0-0 kubectl.x86_64 0:1.14.0-0 kubelet.x86_64 0:1.14.0-0
Проверяем, смогла запуститься служба kubelet systemctl status kubelet
Если нет, то запускаем вручную и смотрим, какие ошибки:
kubelet
Далее необходимо выйти из под рута, и под обычным пользователем выполнить:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Этой командой конфиг кубика копируется в личную папку пользователя в файл config.
Разрешаем подам запускаться на мастер-ноде:
kubectl taint nodes --all node-role.kubernetes.io/master-
Установка админки
Скачиваем файл:
wget https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml
Редактируем секцию args, добавляя строки в файл kubernetes-dashboard.yaml:
- --enable-skip-login
- --enable-insecure-login
Запускаем pod:
kubectl create -f kubernetes-dashboard.yaml
Меняем тип pod’a, как это сделать - читаем здесь https://github.com/kubernetes/dashboard/wiki/Accessing-Dashboard—1.7.X-and-above
И запускаем прокси, чтобы можно было снаружи зайти в админку (вместо 172.30.179.137 подставляем свой ip-адрес):
kubectl proxy --accept-hosts='^.*' --address=172.30.179.137
Теперь админка доступна по адресу: http://172.30.179.137:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login
Чтобы зайти внутрь, нажимаем кнопку SKIP.