Kubernetes - это бесплатная система управления контейнерами с открытым исходным кодом что обеспечивает платформа для автоматизации развертывания, масштабирования и работы контейнеров приложений в группах хост-компьютеров.
С Kubernetes они могут свободно использовать локальную, общедоступную и гибридную облачную инфраструктуру для выполнения задач развертывания своей организации.
Установка Kubernetes на Ubuntu и производных
Для практической установки мы собираемся использовать двухузловой кластер, который мы сформируем в этой статье, будет состоять из главного узла и подчиненного узла.
На обоих узлах должен быть установлен Kubernetes. Первое, что мы собираемся сделать, это установить докер на них обоих, для этого нам просто нужно выполнить на них следующую команду:
sudo apt install docker.io
Чтобы убедиться, что докер установлен, вы можете запустить следующую команду на обоих узлах:
docker --version
Сейчас перейдем к включению докера на обоих узлах:
sudo systemctl enable docker
Теперь следующий шаг - добавить ключ Kubernetes к обоим узлам, мы делаем это с помощью следующей команды:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
Следующим шагом будет добавление следующего репозитория в обе системы:
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
Последним шагом в процессе установки является установка Kubeadm на обоих узлах с помощью следующей команды:
sudo apt install kubeadm
Они могут проверить номер версии Kubeadm, а также проверить установку с помощью следующей команды:
kubeadm version
Развертывание Kubernetes
Теперь, чтобы реализовать развертывание Kubernetes в системе, мы должны отключить память подкачки (если она запущена) на обоих узлах.
Они должны отключить память подкачки на обоих узлахпоскольку Kubernetes не работает должным образом в системе, использующей память подкачки.
Для этого просто запустите:
sudo swapoff -a
Теперь следующий шаг выполните следующую команду на главном узле, чтобы присвоить ему уникальное имя хоста:
sudo hostnamectl set-hostname master-node
В то время как для подчиненного узла мы должны ввести:
sudo hostnamectl set-hostname slave-node
Сделано сейчас vПриступим к инициализации главного узла следующей командой:
sudo kubeadm init --pod-network-cidr = 10.244.0.0/16
Этот процесс может занять минуту или больше в зависимости от вашего подключения к Интернету. Вывод этой команды очень важен, поэтому вы должны записать информацию в выводе, так как она содержит ip, токен и другие.
Чтобы начать использовать ваш кластер, им необходимо запустить от имени обычного пользователя следующее:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
Сейчас они могут присоединиться к любому количеству машин, запустив на каждом узле в качестве пользователей root следующее:
kubeadm join tuip --token tutoken --discovery-token-ca-cert-hash sha256:tuhash
Где они заменят информацию о tutoken, tuip и вашем хэше на информацию, которая была сказано несколько минут назад, которую они запишут.
Получение списка узлов
Вы увидите, что статус главного узла еще не готов. Это связано с тем, что на главном узле еще не развернут ни один модуль, и поэтому сетевой интерфейс контейнера пуст.
Чтобы увидеть список, нам нужно только выполнить:
kubectl get nodes
Развертывание сети контейнеров через главный узел
Сеть контейнеров - это средство связи между узлами сети. В этом руководстве мы реализуем сеть модулей Flannel в нашем кластере с помощью следующей команды:
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Чтобы узнать статус сети, просто введите:
kubectl get pods --all-namespaces sudo kubectl get nodes
Как только это будет сделано, пришло время добавить подчиненный узел в сеть, чтобы сформировать кластер, так же, как они должны дополнять информацию, как в главном узле.
sudo kubeadm join tuip --token tutoken --discovery-token-ca-cert-hash sha256:tuhash
Теперь, когда вы запустите следующую команду на главном узле, она подтвердит, что в вашей системе работают два узла, главный узел и серверные узлы.
sudo kubectl get nodes
Это показывает, что двухузловой кластер теперь запущен и работает через систему управления контейнерами Kubernetes.