Способы установки Kubernetes в Ubuntu: пошаговое руководство

Чтобы установить Kubernetes в Ubuntu, существует несколько способов. Вот несколько часто используемых:

Метод 1: использование kubeadm (рекомендуется)

  1. Обновить систему:
    sudo apt-get update
    sudo apt-get upgrade
  2. Установить Docker:
    sudo apt-get install docker.io
  3. Установите kubeadm, kubelet и kubectl:
    sudo apt-get install kubeadm kubelet kubectl
  4. Отключить подкачку памяти:
    sudo swapoff -a
  5. Инициализируйте Kubernetes с помощью kubeadm:
    sudo kubeadm init
  6. Настройте файл kubeconfig:
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
  7. Применить сетевой плагин (например, Flannel):
    sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  8. Разрешить главному узлу планировать модули:
    kubectl taint nodes --all node-role.kubernetes.io/master-

    Теперь ваш кластер Kubernetes должен быть запущен и работать.

Метод 2: использование MicroK8

  1. Обновите систему:
    sudo apt-get update
    sudo apt-get upgrade
  2. Установить MicroK8s:
    sudo snap install microk8s --classic
  3. Добавьте пользователя в группу microk8s:
    sudo usermod -aG microk8s your_username
    sudo chown -f -R your_username ~/.kube
  4. Включите необходимые надстройки (например, DNS, хранилище, панель управления):
    microk8s enable dns storage dashboard
  5. Начните использовать MicroK8:
    microk8s kubectl get nodes

Метод 3. Использование kubespray (для кластеров с несколькими узлами)

  1. Установить Python и зависимости:
    sudo apt-get update
    sudo apt-get install -y python3-pip
    sudo pip3 install --upgrade pip
    sudo pip3 install ansible
  2. Клонировать репозиторий kubespray:
    git clone https://github.com/kubernetes-sigs/kubespray.git
    cd kubespray
  3. Установите необходимые библиотеки Python:
    sudo pip3 install -r requirements.txt
  4. Скопируйте шаблон инвентаря:
    cp -rfp inventory/sample inventory/mycluster
  5. Обновите файл инвентаризации, указав сведения о своем кластере:
    declare -a IPS=(10.10.10.1 10.10.10.2 10.10.10.3)
    CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}
  6. Развертывание кластера:
    ansible-playbook -i inventory/mycluster/hosts.yaml cluster.yml