Установка и настройка Kubernetes на linux opensuse leap-15.5
Подробное руководство по установке, настройке и оптимизации Kubernetes для linux opensuse leap-15.5
Введение
Kubernetes (k8s) – ведущая платформа для оркестрации контейнеров. В этом руководстве мы установим production-ready кластер Kubernetes на openSUSE Leap 15.5, используя официальные репозитории и стандартные инструменты.
Требования
Перед началом убедитесь что:
- 2+ ядра CPU на хосте
- 2+ GB RAM
- 20+ GB свободного места
- Статический IP-адрес
- Отключен SELinux
- Доступ sudo/root
- Сеть между узлами (если кластер)
Минимальная версия ОС: opensuse-leap 15.5 (kernel 5.3+)
Установка
Подготовка
1# Обновить систему 2sudo zypper refresh 3sudo zypper update -y 4 5# Установить базовые пакеты 6sudo zypper install -y curl ca-certificates 7 8# Отключить swap 9sudo swapoff -a 10sudo sed -i '/ swap / s/^/#/' /etc/fstab 11 12# Настроить hostname 13sudo hostnamectl set-hostname k8s-master 14 15# Добавить записи в /etc/hosts 16echo '192.168.1.10 k8s-master' | sudo tee -a /etc/hosts
Проверка:
1hostnamectl 2free -h
Процесс установки
1# Добавить репозиторий Kubernetes 2sudo zypper addrepo -fcg https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 kubernetes 3 4# Установить компоненты 5sudo zypper install -y kubelet kubeadm kubectl cri-o 6 7# Включить автозагрузку 8sudo systemctl enable kubelet && sudo systemctl enable crio 9 10# Инициализировать кластер 11sudo kubeadm init --pod-network-cidr=10.244.0.0/16 12 13# Настроить конфиг 14mkdir -p $HOME/.kube 15sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 16sudo chown $(id -u):$(id -g) $HOME/.kube/config
Настройка
Установка сетевого плагина (Calico):
1kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
Проверка кластера:
1kubectl get nodes 2kubectl get pods --all-namespaces
Настройка firewall:
1sudo firewall-cmd --permanent --add-port={6443,2379-2380,10250,10251,10252}/tcp 2sudo firewall-cmd --reload
Типичные ошибки и их решения
Ошибка: 'kubelet не запускается' Решение:
1sudo systemctl restart containerd 2sudo systemctl daemon-reload
Ошибка: 'cgroup driver mismatch' Изменить в /etc/crio/crio.conf:
cgroup_manager = "systemd"
Заключение
Вы успешно развернули Kubernetes кластер. Для добавления worker-узлов используйте команду kubeadm join
из вывода инициализации. Рекомендуется настроить:
- RBAC-политики
- Persistent Volume
- Мониторинг через Prometheus
Команды
Установка основных компонентов
1sudo zypper install -y kubelet kubeadm kubectl cri-o
Сброс конфигурации
sudo kubeadm reset --force
Решение проблем
Ошибка 'Port 6443 is in use'
Остановить службы использующие порт: sudo netstat -tulpn | grep 6443
sudo systemctl stop apiserver
Нода в статусе NotReady
Проверить работу сетевого плагина и доступность CNI
1journalctl -u kubelet -f