Поиск по сайту:

Настройте кластер Kubernetes на экземпляре AWS EC2 с Ubuntu, используя kubeadm


На этой странице

  1. Предварительные условия
  2. Что мы будем делать
  3. Настройка кластера Kubernetes с помощью kubeadm
  4. Вывод:

В этой статье мы увидим, как настроить кластер Kubernetes с 2 рабочими узлами и 1 главным узлом на серверах Ubuntu 18.04 LTS. Мы будем использовать инструмент \kubeadm\ для настройки кластера. Kubeadm – это инструмент, созданный для обеспечения \kubeadm init\ и \kubeadm join\ для создания кластеров Kubernetes. Прежде чем мы приступим к созданию кластера, давайте кратко разберемся в нескольких терминах.

    1. Docker.
      Docker – это открытая платформа для разработки, доставки и запуска приложений. Docker позволяет вам отделить ваши приложения от вашей инфраструктуры, чтобы вы могли быстро доставлять программное обеспечение. С помощью Docker вы можете управлять своей инфраструктурой так же, как вы управляете своими приложениями.
    2. Изображение.
      Изображение – это доступный только для чтения шаблон с инструкциями по созданию контейнера Docker. Часто изображение основано на другом изображении с некоторой дополнительной настройкой.
    3. Контейнер.
      Контейнер – это исполняемый экземпляр образа. Вы можете создавать, запускать, останавливать, перемещать или удалять контейнеры с помощью Docker API или CLI. Вы можете подключить контейнер к одной или нескольким сетям, подключить к нему хранилище или даже создать новый образ на основе его текущего состояния.
    4. Kubernetes.
      Kubernetes — это система оркестровки контейнеров с открытым исходным кодом для автоматизации развертывания, масштабирования и управления приложениями.
    5. Узлы.
      Узел представляет собой один компьютер в кластере.
    6. Поды.
      А – это группа контейнеров, развернутых вместе на одном хосте. Это основная исполнительная единица приложения Kubernetes.
    7. Развертывания.
      При развертывании выполняется несколько копий вашего приложения и автоматически заменяются все экземпляры, которые вышли из строя или перестают отвечать на запросы. Он предоставляет декларативные обновления для модулей и наборов реплик.
    8. Набор реплик.
      Определяет, сколько реплик модуля должно быть запущено. Его можно рассматривать как замену контроллеру репликации.

    • Контроллер репликации:
      это супервизор длительно работающих модулей. Он запустит определенное количество модулей, называемых репликами, и обеспечит их постоянную работу.

    1. Сервис.
      Это абстракция, определяющая логический набор модулей и политику доступа к ним.

    API Server и т. д., Controller Manager и Scheduler — это компоненты Master, а Docker, Kubelet Service и Kubernetes Proxy Service — это компоненты Worker Node. Мы не будем обсуждать эти компоненты в этом документе. Если вы хотите узнать об этих компонентах, вы можете посетить официальную страницу Kubernetes здесь.

    Предпосылки

    1. 3 сервера Ubuntu 18.04 с минимум 2 ГБ ОЗУ и 2 ЦП.
    2. Системный пользователь с доступом \sudo\ на каждом сервере.

    Что мы будем делать

    1. Настройка кластера Kubernetes с помощью kubeadm

    Настройте кластер Kubernetes с помощью kubeadm

    Здесь,

    У нас есть 3 сервера Ubuntu 18.04 LTS.

    Сервер 1= узел 1
    Сервер 2= узел 2
    Сервер 3= главный

    Прежде чем мы приступим к фактической установке, давайте изменим имя хоста серверов.

    Вы можете использовать следующие команды, чтобы задать имя хоста на каждом сервере. После выполнения следующих команд на каждом сервере повторно войдите на серверы, чтобы они получили новое имя хоста.

    sudo hostnamectl set-hostname "master"
    sudo hostnamectl set-hostname "node1"
    sudo hostnamectl set-hostname "node2"

    Выполните указанные ниже действия, чтобы запустить работающий кластер Kubernets.

    Получите ключ Docker gpg (выполните следующую команду на всех узлах):

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

    Добавьте репозиторий Docker(Выполните следующую команду на всех узлах):

    sudo add-apt-repository    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
       $(lsb_release -cs) \
      stable"

    Получите ключ Kubernetes gpg(Выполните следующую команду на всех узлах):

    curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

    Добавьте репозиторий Kubernetes(Выполните следующую команду на всех узлах):

    cat << EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
    deb https://apt.kubernetes.io/ kubernetes-xenial main
    EOF

    Обновите свои пакеты(Выполните следующую команду на всех узлах):

    sudo apt-get update

    Установите Docker, kubelet, kubeadm и kubectl(Выполните следующую команду на всех узлах):

    sudo apt-get install -y docker-ce=18.06.1~ce~3-0~ubuntu kubelet=1.15.7-00 kubeadm=1.15.7-00 kubectl=1.15.7-00

    Оставьте их в текущей версии(Выполните следующую команду на всех узлах):

    sudo apt-mark hold docker-ce kubelet kubeadm kubectl

    Добавьте правило iptables в sysctl.conf (Выполните следующую команду на всех узлах):

    echo "net.bridge.bridge-nf-call-iptables=1" | sudo tee -a /etc/sysctl.conf

    Немедленно включите iptables(Выполните следующую команду на всех узлах:

    sudo sysctl -p

    На Мастере:

    Инициализируйте кластер (выполните следующую команду только на главном узле):

    sudo kubeadm init --pod-network-cidr=10.244.0.0/16

    Настройте локальный kubeconfig(Выполните следующую команду только на главном узле):

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config

    Примените сетевое наложение Flannel CNI(Выполните следующую команду только на главном узле):

    sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

    На узле 1 и узле 2:

    Присоедините рабочие узлы к кластеру (Выполните следующую команду только на узлах Node1 и Node2):

    sudo kubeadm join 172.31.4.161:6443 --token 0y52t6.ffsj8jkjfcl1sq8h \
       --discovery-token-ca-cert-hash sha256:7aa1825042d19d3e567f7e4b447634e942fe9ed7f18f78464a9c05f451551ed5

    Убедитесь, что рабочие узлы успешно присоединились к кластеру.Выполните следующую команду на главном узле):

    kubectl get nodes

    Заключение:

    В этой статье мы научились настраивать кластер Kubernetes с помощью инструмента kubeadm. Мы увидели, как легко можно создать кластер, если не пропустить шаги и выполнить правильную установку.