Как установить и настроить Kubernetes K8s в Ubuntu 18.04 LTS

12 set 2022 4 min di lettura
Как установить и настроить Kubernetes K8s в Ubuntu 18.04 LTS
Indice dei contenuti

Введение

Kubernetes — это бесплатный инструмент управления контейнерами с открытым исходным кодом. Он используется для автоматического развертывания приложений на основе контейнеров в среде кластера, а также для управления контейнерами Docker на узлах кластера kubernetes. Kubernetes также известен как K8s.

В этом руководстве мы настроим максимально простой двухузловой кластер Kubernetes. Первый узел с именем хоста kubernetes-master будет выступать в качестве главного узла.

Второй узел с именем хоста kubernetes-slave также будет работать под управлением Ubuntu 18.04 и будет подчиненным узлом, который просто присоединится к кластеру Kuberneets. Как только кластер Kubernetes будет запущен и запущен, будет реализован контейнер сервера Nginx.

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

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется пароль для аутентификации.

Чтобы подключиться к серверу как root, введите эту команду:

ssh root@IP_DEL_SERVER

Далее вам будет предложено ввести пароль пользователя root.

Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить первый параметр:

ssh VOSTRO_UTENTE@IP_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Теперь вы подключены к своему серверу и готовы начать установку Kubernetes на Ubuntu 18.04 LTS.

Установить Докер

Установите Docker на оба сервера Ubuntu, затем на kubernetes-master и kubernetes-slave. Docker присутствует в официальных репозиториях Ubuntu.

Обновите список пакетов Ubuntu:

sudo apt-get update

Чтобы установить Docker, просто введите в терминале:

sudo apt install docker.io

После установки убедитесь, что автоматический запуск включен после перезагрузки сервера:

sudo systemctl enable docker

Установите Кубернетес

Нам снова нужно установить Kubernetes на все ноды. Затем выполните следующие команды на обоих серверах (ведущем и подчиненном), чтобы установить Kubernetes:

Добавьте ключ подписи Kubernetes:

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

Добавьте репозиторий, необходимый для загрузки Kubernetes:

sudo apt-add-repository "deb http://apt.kubernetes.io/kubernetes-xenial main"

Установите кудаадм:

sudo apt install kubeadm

Kubernetes не будет работать, если ваша система использует память подкачки, поэтому вам нужно отключить память подкачки на всех ваших узлах (ведущих и подчиненных):

sudo swapoff -a

Убедитесь, что все узлы имеют уникальное имя хоста. Затем установите имя хоста для обоих узлов. Основная нода с именем хоста kubernetes-master:

sudo hostnamectl set-hostname kubernetes-master

Вторичный узел с именем хоста kubernetes-slave

sudo hostnamectl set-hostname kubernetes-slave

Баш Обновление:

exec bash

Важно правильно установить дату и время на всех нодах, иначе могут быть проблемы с TLS-сертификатами.

Настроить Kubernetes-мастер

Теперь мы готовы инициализировать главный узел Kubernetes. Для этого выполните следующую команду на своем основном узле:

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

Предупреждение: для инициализации основного узла требуется как минимум 2 ЦП, если у вас нет 2 ЦП, вы можете добавить флаг --ignore-preflight-errors = NumCPU, чтобы продолжить работу без ошибок. Не использовать на рабочем сервере, только для тестирования.

Следовательно:

sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=NumCPU

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

Запустите эти команды, предложенные при инициализации Kubernetes, используя пользователя без полномочий root с привилегиями sudo:

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

Следующим шагом является реализация сети pod. Сеть pod используется для связи между узлами в кластере Kubernetes. Для этого мы будем использовать сеть Flannel pod:

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

Используйте следующую команду для подтверждения статуса:

kubectl get pods --all-namespaces

Настроить Kubernetes-ведомое устройство

Теперь мы можем подключить подчиненный узел к кластеру Kubernetes. Используйте команду соединения kubeadm, скопированную ранее из выходных данных инициализации kubernetes-master: Предупреждение: не копируйте следующий код примера, он не будет работать на вашем сервере.

sudo kubeadm join 10.1.1.9:6443 --token qdjnpd.5glu39uxr92xarsj --discovery-token-ca-cert-hash sha256:ed0684156c718caf425ceae6c85a56c05f7b49037cde3a2f1fd57430a4f58f89

Это может занять несколько минут.

На главном узле Kubernetes-master введите следующую команду, чтобы подтвердить соединение с узлом kubernetes-slave:

kubectl get nodes

Разверните сервис в кластере Kubernetes

Для проверки реализации вы можете использовать Nginx в кластере Kubernetes. Запустите эти команды с основного узла kubernetes-master:

kubectl run nginx --image=nginx --port 80
kubectl expose deploy nginx --port 80 --target-port 80 --type NodePort

Теперь вы должны увидеть новый док-контейнер Nginx на вторичном узле, ведомом:

sudo docker ps

Чтобы убедиться, что служба Nginx запущена и работает, перечислите все службы, доступные на главном узле, и используйте команду curl для выполнения HTTP-запроса на IP-адресе кластера:

kubectl get svc

Вы должны получить выходное сообщение, подобное следующему:


NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
 kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 5m52s
 nginx NodePort 10.103.44.31 <none> 80:new_nginx_port/TCP 2m50s

Чтобы убедиться, что все работает, подключитесь к IP-адресу вторичного узла, kubernetes-slave, используя порт, показанный в предыдущем выводе. Вы должны увидеть страницу приветствия Nginx:


http://INDIRIZZO_IP_NODO_SLAVE:new_nginx_port

Если вы хотите удалить приложение Nginx, сначала удалите службу Nginx с корневого узла:

kubectl delete service nginx

Чтобы обеспечить удаление службы, введите следующую команду:

kubectl get services

Вы должны получить выходное сообщение, подобное следующему:


NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
 kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 9m59s

Затем, чтобы удалить дистрибутив Nginx:

kubectl delete deployment nginx

Команда подтверждения:

kubectl get deployments

Вы должны получить выходное сообщение, подобное следующему:


No resources found.

Установка и настройка Kubernetes на Ubuntu 18.04 LTS завершена

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.