Rancher это платформа управления контейнерами с открытым исходным кодом, предназначенная для облегчения развертывания, управления и руководства кластерами Kubernetes. В отличие от дистрибутива Kubernetes, который заменяет сам Kubernetes, Rancher выступает в качестве решения для управления, которое располагается над одним или несколькими кластерами Kubernetes, обеспечивая централизованную платформу, с которой администраторы могут контролировать всю свою контейнерную инфраструктуру.
В этом руководстве вы узнаете, как установить Rancher на сервер Debian 12. Вы установите Rancher как отдельный узел с помощью Docker, который также развернет поверх него отдельный узел Kubernetes.
Установка Docker
Перед установкой Rancher необходимо убедиться, что Docker установлен в вашей системе. В этом разделе вы установите Docker Engine через официальный репозиторий Docker на систему Debian.
Сначала выполните приведённую ниже команду, чтобы обновить индекс пакетов и установить такие пакеты, как ‘ca-certificates’ и ‘curl’.
sudo apt update && sudo apt install ca-certificates curl -y
Теперь выполните следующую команду, чтобы добавить ключ GPG для репозитория Docker.
sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc
Далее выполните следующую команду, чтобы добавить репозиторий Docker в систему Debian. Это автоматически определит вашу версию Debian.
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Теперь, когда вы добавили репозиторий Docker и ключ GPG, выполните приведенную ниже команду, чтобы обновить индекс пакетов и установить Docker Engine на вашу систему. В этом примере вы установите Docker Engine вместе с дополнительными пакетами, такими как Docker Compose и плагин Docker Buildx.
sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Введите ‘Y’, чтобы продолжить установку.
После завершения установки проверьте статус службы Docker с помощью команды ‘systemctl’, приведенной ниже. Вы увидите, что Docker запущен и включен на вашей машине Debian.
sudo systemctl is-enabled docker sudo systemctl status docker
Наконец, вы можете выполнить приведенную ниже команду ‘docker’, чтобы запустить контейнер ‘hello-word’.
sudo docker run hello-world
В случае успеха вы получите следующее сообщение ‘Hello World‘ сообщение от Docker.
Установка Rancher
Теперь, когда Docker установлен, вы готовы к установке Rancher. В этом разделе вы загрузите образ Rancher, а затем запустите контейнер Rancher через Docker. В этом примере мы будем использовать самоподписанные сертификаты, которые автоматически генерируются контейнером Rancher. Мы также будем использовать последнюю версию образа Rancher.
Загрузите образ Rancher с помощью команды ‘docker pull’, приведенной ниже. В этом примере мы будем использовать последнюю версию Rancher.
sudo docker pull rancher/rancher:latest
После загрузки образа Rancher выполните команду ‘docker run’, чтобы запустить Rancher. При этом контейнер Rancher будет работать в фоновом режиме и экспортировать порты 80 и 443 на главном сервере Debian.
sudo docker run -d --restart=unless-stopped \ -p 80:80 -p 443:443 \ --privileged \ rancher/rancher:latest
Проверьте состояние контейнера с помощью следующей команды.
sudo docker ps
В приведенном ниже выводе видно, что Rancher работает на порту 443. Также можно увидеть идентификатор контейнера и его названия.
Кроме того, если у вас возникла ошибка, вы можете проверить журнал Racher с помощью следующей команды ‘docker’.
docker ps -a docker log container-name or container id
Опция ‘ps -a’ покажет запущенные и вышедшие контейнеры, а команда ‘docker log’ используется для проверки журналов контейнера.
Настройка Rancher
На данный момент Rancher запущен на вашей системе Debian в виде контейнера. На следующем этапе вы войдете в панель управления Rancher, чтобы увидеть единый узел Kubernetes, запущенный поверх вашей установки Rancher.
Откройте веб-браузер и зайдите на IP-адрес вашего сервера Debian, за которым следует порт 8080 такие как https://192.168.10.41:8080/. Если установка прошла успешно, вы получите следующую страницу входа в Rancher.
Вернитесь в терминал и выполните приведенную ниже команду, чтобы получить пароль Rancher. Не забудьте изменить идентификатор контейнера в соответствии с вашей установкой и скопировать пароль.
sudo docker logs CONTAINER ID 2>&1 | grep "Bootstrap Password:"
Теперь введите свой пароль и нажмите кнопку Вход в систему с помощью локального пользователя.
Далее скопируйте сгенерированный пароль для Rancher и обязательно примите условия и лицензию.
Теперь вы увидите следующую панель Rancher Dashboard. В примере ниже вы видите одноузловой кластер Kubernetes, созданный с помощью K3s.
Нажмите на локальный кластер Kubernetes, и вы получите дополнительную информацию о вашем кластере Kubernetes.
Доступ к кластеру Kubernetes с помощью kubectl
Сначала загрузите KubeConfig на свой локальный компьютер. На приборной панели Rancher щелкните меню файлов ниже.
Установите ‘kubectl’ в вашу систему с помощью команды ниже. На Debian 12 вы можете установить ‘kubernetes-client‘ пакет через APT.
sudo apt install kubernetes-client -y
Установите значение по умолчанию KUBECONFIG в ваш файл. В этом примере файл KubeConfig – это ‘kubeconfig.yaml’.
export KUBECONFIG=~/kubeconfig.yaml
Наконец, выполните приведенную ниже команду ‘kubectl’, чтобы получить список подсистем во всех пространствах имен Kubernetes.
kubectl get pods --all-namespaces
Вы увидите, что каждый стручок для кластера Kubernetes под Rancher запущен.
Заключение
Поздравляем! Вы завершили установку Rancher с Docker на сервер Debian 12. Вы узнали, как настроить Rancher и создать на его основе кластер Kubernetes. Наконец, вы также узнали, как взаимодействовать с кластером Kubernetes с помощью клиента Kubernetes ‘kubectl’. Кроме того, с помощью ‘kubectl’ вы сможете развертывать свои контейнерные приложения на кластере Kubernetes.