Как установить и настроить K3s Rancher (kubernetes) на МСВСфера 9 Сервер
Ниже представлена инструкция для установки K3s Rancher (kubernetes) на МСВСфера 9 Сервер. В приведённом примере система состоит из главного узла (master-нода) и рабочего узла (worker-нода).
Окружение
МСВСфера 9 Сервер
Установка и настройка
Обновите систему и перезагрузите сервер:
$ sudo dnf update -y && reboot
Загрузите необходимые модули ядра:
$ sudo modprobe overlay $ sudo modprobe br_netfilter
Чтобы модули загружались автоматически после перезагрузки сервера необходимо создать конфигурационный файл:
$ sudo cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf overlay br_netfilter EOF
Включите дополнительные настройки системы:
$ sudo cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 EOF
$ sudo sysctl --system
Установите docker следующими командами:
$ sudo yum install -y yum-utils $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo $ sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin $ sudo systemctl enable docker --now $ sudo systemctl enable containerd --now
Откройте файл
/etc/containerd/config.toml
для редактирования, найдите секцию[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
и под ней поменяйте значение «SystemdCgroup» наtrue
. В результате содержимое файла должно выглядеть следующим образом:[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] BinaryName = "" CriuImagePath = "" CriuPath = "" CriuWorkPath = "" IoGid = 0 IoUid = 0 NoNewKeyring = false NoPivotRoot = false Root = "" ShimCgroup = "" SystemdCgroup = true
Перезапустите
containerd
:$ sudo systemctl restart containerd
Отключите SELinux и swap:
$ sudo setenforce 0 $ sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config $ sudo swapoff -a $ sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
Добавьте файл
/etc/yum.repos.d/kubernetes.repo
со следующим содержимым:[kubernetes] name=Kubernetes baseurl=https://pkgs.k8s.io/core:/stable:/v1.30/rpm/ enabled=1 gpgcheck=1 gpgkey=https://pkgs.k8s.io/core:/stable:/v1.30/rpm/repodata/repomd.xml.key
Установите
kubectl
,kubeadm
иkubelet
:$ sudo dnf install kubectl kubeadm kubelet
Установите
helm
:
$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 $ chmod 0700 get_helm.sh $ ./get_helm.sh
Установите имя хоста на обоих узлах:
Master:
$ sudo hostnamectl set-hostname k3s-master && exec bashWorker:
$ sudo hostnamectl set-hostname k3s-worker && exec bash
Добавьте необходимые правила в файервол на обоих узлах:
Master:
$ sudo firewall-cmd --permanent --add-port=6443/tcp $ sudo firewall-cmd --permanent --add-port=8472/udp $ sudo firewall-cmd --permanent --add-port=10250/tcp $ sudo firewall-cmd --permanent --add-port=51820/udp $ sudo firewall-cmd --permanent --add-port=51821/udp $ sudo firewall-cmd --permanent --zone=trusted --add-source=10.42.0.0/16 $ sudo firewall-cmd --permanent --zone=trusted --add-source=10.43.0.0/16 $ sudo firewall-cmd –reloadWorker:
$ sudo firewall-cmd --permanent --add-port=8472/udp $ sudo firewall-cmd --permanent --add-port=10250/tcp $ sudo firewall-cmd --permanent --add-port=51820/udp $ sudo firewall-cmd --permanent --add-port=51821/udp $ sudo firewall-cmd --permanent --zone=trusted --add-source=10.42.0.0/16 $ sudo firewall-cmd --permanent --zone=trusted --add-source=10.43.0.0/16 $ sudo firewall-cmd --reload
Установите
wget
на главном узле (master) следующей командой:
$ sudo dnf install wget -y
Установите
k3s
на главном узле (master) следующей командой:
$ sudo curl -sfL https://get.k3s.io | sh -
Настройте
k3s
на главном узле (master):
$ mkdir ~/.kube $ sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config $ sudo chown $USER ~/.kube/config $ sudo chmod 600 ~/.kube/config $ export KUBECONFIG=~/.kube/config
Выполните следующую команду на главном узле, чтобы вывести на экран токен доступа:
$ sudo cat /var/lib/rancher/k3s/server/node-token
На рабочем узле (worker) добавьте следующую строку в файл
/etc/hosts
:
MASTER_IP k3s-master
где
MASTER_IP
— IP-адрес главного узла (master-ноды).
На рабочем узле (worker) выполните следующую команду:
$ curl -sfL https://get.k3s.io | K3S_URL=https://k3s-master:6443 K3S_TOKEN=<token> sh -где
<token>
— токен доступа из п. 16.
На данном этапе кластер K3s готов к работе. Дополнительно можно установить панель управления кластером Rancher. Для этого выполните следующие команды:
$ sudo kubectl create namespace cattle-system
$ sudo helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
$ sudo kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.15.3/cert-manager.crds.yaml
$ sudo helm repo add jetstack https://charts.jetstack.io
$ sudo helm repo update
$ sudo helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace
$ sudo helm install rancher rancher-latest/rancher --namespace cattle-system --set hostname=MASTER_IP.sslip.io --set replicas=1 --set bootstrapPassword=admin
где MASTER_IP — IP-адрес главного узла (master).
Более подробную инструкцию и детали установки вы можете найти в официальной документации Rancher.