Установка и настройка Kubernetes на linux centos 8
Подробное руководство по установке, настройке и оптимизации Kubernetes для linux centos 8
Введение
Kubernetes (k8s) - популярная платформа для оркестрации контейнеров. В этом руководстве мы установим production-ready кластер Kubernetes на CentOS 8 с использованием Docker в качестве container runtime.
Требования
Перед началом убедитесь, что:
- Минимум 2 ГБ RAM и 2 CPU
- Стабильное интернет-соединение
- root-доступ или права sudo
- Отключен SELinux или настроен в permissive mode
- Все узлы в одной сети
- Уникальные hostnames на всех узлах
Установка
Подготовка
1# Отключить swap 2sudo swapoff -a 3sudo sed -i '/ swap / s/^/#/' /etc/fstab 4 5# Настройка сети 6cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf 7br_netfilter 8EOF 9 10cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf 11net.bridge.bridge-nf-call-ip6tables = 1 12net.bridge.bridge-nf-call-iptables = 1 13EOF 14sudo sysctl --system 15 16# Установить firewalld 17sudo dnf install -y firewalld 18sudo systemctl enable --now firewalld
Процесс установки
1# Установка Docker 2sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo 3sudo dnf install -y docker-ce docker-ce-cli containerd.io 4sudo systemctl enable --now docker 5 6# Добавить репозиторий Kubernetes 7cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo 8[kubernetes] 9name=Kubernetes 10baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 11enabled=1 12gpgcheck=1 13repo_gpgcheck=1 14gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg 15EOF 16 17# Установить компоненты k8s 18sudo dnf install -y kubelet kubeadm kubectl --disableexcludes=kubernetes 19sudo systemctl enable --now kubelet
Настройка
1# Инициализация control-plane 2sudo kubeadm init --pod-network-cidr=10.244.0.0/16 3 4# Настройка пользователя 5mkdir -p $HOME/.kube 6sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 7sudo chown $(id -u):$(id -g) $HOME/.kube/config 8 9# Установка сетевого плагина (Calico) 10kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml 11 12# Проверка статуса 13kubectl get nodes 14kubectl get pods --all-namespaces
Типичные ошибки и их решения
Ошибка: kubelet не запускается
Решение: Проверьте журналы: journalctl -xeu kubelet
Ошибка связи между узлами
Решение: Откройте порты в firewalld:
1sudo firewall-cmd --permanent --add-port={6443,2379-2380,10250,10251,10252}/tcp 2sudo firewall-cmd --reload
Заключение
Вы успешно установили Kubernetes кластер на CentOS 8. Для добавления worker-узлов используйте команду kubeadm join
из вывода инициализации control-plane. Регулярно обновляйте компоненты и следите за журналами системы.
Команды
Обновление системы
1sudo dnf update -y
Проверка версии kubeadm
1kubeadm version
Сброс конфигурации kubeadm
sudo kubeadm reset -f
Решение проблем
Ошибка cgroup driver
Совместите драйверы Docker и kubelet:
1sudo mkdir /etc/docker 2cat <<EOF | sudo tee /etc/docker/daemon.json 3{ 4 "exec-opts": ["native.cgroupdriver=systemd"] 5} 6EOF 7sudo systemctl restart docker
systemctl restart docker
Сеть не работает после установки
Переустановите сетевой плагин и проверьте CIDR
1kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml