Продолжаю переносить свои сервисы в кластер Kubernetes в Cloud.ru и естественно мне нужен локальный тестовый кластер для проработки миграции идентичный кластеру в Cloud.ru.
Установка Docker Desktop в Ubuntu Linux
Убедитесь, что у вас установлена Ubuntu (рекомендуются версии 20.04 LTS или новее) и есть права суперпользователя (sudo).
Обновите список пакетов:
# apt update
# apt upgrade -y
Установка зависимостей
Установите пакеты, необходимые для работы с репозитория Normally:
# apt install apt-transport-https ca-certificates curl gnupg lsb-release -y
Добавление официального GPG‑ключа Docker
Импортируйте GPG‑ключ для проверки подлинности пакетов:
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Добавление репозитория Docker
Добавьте репозиторий Docker в список источников APT:
# echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Установка Docker Engine
Обновите список пакетов и установите Docker Engine:
# apt update
# apt install docker-ce docker-ce-cli containerd.io -y
Запуск и включение Docker
Запустите службу Docker и настройте её автозапуск при загрузке системы:
# systemctl start docker
# systemctl enable docker
Проверьте статус службы:
# systemctl status docker
Добавление пользователя в группу docker
Чтобы не вводить sudo перед каждой командой Docker, добавьте своего пользователя в группу docker:
# usermod -aG docker $USER
Важно: выйдите из системы и войдите заново (или выполните newgrp docker), чтобы изменения вступили в силу.
Создайте кластер на одноименной вкладке GUI Docker Desktop

Классы хранения апалогичные Cloud.ru
Создаем классы хранения как они объявлены в Cloud.ru:
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"storage.k8s.io/v1","kind":"StorageClass","metadata":{"annotations":{"storageclass.kubernetes.io/is-default-class":"true"},"name":"hostpath"},"provisioner":"docker.io/hostpath","reclaimPolicy":"Delete","volumeBindingMode":"Immediate"}
storageclass.kubernetes.io/is-default-class: "true"
name: cloudru-hdd
provisioner: docker.io/hostpath
reclaimPolicy: Delete
volumeBindingMode: Immediate
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"storage.k8s.io/v1","kind":"StorageClass","metadata":{"annotations":{"storageclass.kubernetes.io/is-default-class":"true"},"name":"hostpath"},"provisioner":"docker.io/hostpath","reclaimPolicy":"Delete","volumeBindingMode":"Immediate"}
name: cloudru-ssd
provisioner: docker.io/hostpath
reclaimPolicy: Delete
volumeBindingMode: Immediate
Установка Ingress Nginx
И финильным этапом установим плагин Ingress Nginx (в кластере Cloud.ru его можно установить из web-интерфейса управления):
# helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
# helm repo update
# helm install ingress-nginx ingress-nginx/ingress-nginx \
--namespace ingress-nginx \
--create-namespace




