Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ FreeBSD and Nix ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

Общая

WEB Разработка

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


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


 

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


По мотивам данной статьи
 

Kubernetes - платформа с открытым исходным кодом для управления контейнерными приложениями
Позволяет управлять, масштабировать, автоматически развертывать контейнерные приложения в кластерной среде
Kubernetes разработан Google


В этом уроке я покажу вам шаг за шагом, как установить и настроить Kubernetes в Ubuntu 18.04
Мы будем использовать 1 сервер 'k8s-master' в качестве хоста Kubernetes Host Master
2 сервера в качестве рабочих Kubernetes, 'worker01' и 'worker02'


Дано:
3 сервера с Ubuntu 18.04
192.168.0.128 - k8s-master
192.168.0.129 - worker01
192.168.0.130 - worker02


Задачи:
Установка Kubeadm 
Настройка хостов
Установить докер
Отключить своп
Установить пакеты Kubeadm
Инициализация кластера Kubernetes
Добавление рабочих узлов в кластер Kubernetes
Тестирование


Шаг 1 - установка Kubeadm
На этом первом шаге мы подготовим эти 3 сервера для установки Kubernetes
Выполните все команды на главном и рабочем узлах

Настройка хостов
Отредактируйте файл hosts на всех серверах


sudo vi /etc/hosts

Вставьте конфигурацию хостов ниже:
192.168.0.128 k8s-master
192.168.0.129 worker01
192.168.0.130 worker02


Теперь проверьте пинг всех серверов с именем хоста:
ping -c 3 k8s-master
ping -c 3 worker01
ping -c 3 worker02

Убедитесь, что все IP-адреса разрешены как имя хоста.


Установим докер
В этом уроке мы установим Docker из репозитория Ubuntu

Установите Docker, используя команду apt ниже

sudo apt install docker.io -y


После завершения установки запустите службу Docker
Разрешите ей каждый раз запускаться при загрузке системы

sudo systemctl start docker
sudo systemctl enable docker

Установка докера завершена


Отключить SWAP

Чтобы настроить серверы Kubernetes Linux, нужно отключить SWAP

Проверьте список подкачки и отключите его

sudo swapon -s
sudo swapoff -a

Чтобы навсегда отключить SWAP, нужно отредактировать файл /etc/fstab

sudo vi /etc/fstab

Сделайте комментарий о типе раздела SWAP:
#/dev/mapper/hakase--labs--vg-swap_1 none swap sw 0 0

Сохраните и выйдите, затем перезагрузите систему:
sudo reboot


Установите пакеты Kubeadm

Будем использовать пакеты Kubeadm для настройки кластера Kubernetes
Установим пакеты Kubeadm из официального репозитория Kubernetes

Установите apt-transport-https:
sudo apt install -y apt-transport-https

Добавьте ключ Kubernetes:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -


Добавьте репозиторий Kubernetes, создав файл /etc/apt/sources.list.d

cd /etc/apt/
sudo vi sources.list.d/kubernetes.list

Вставьте текст для kubernetes ниже:
deb http://apt.kubernetes.io/ kubernetes-xenial main

Замечания:

Мы все еще используем репозиторий Xenial Ubuntu 16.04 для нашей установки Kubeadm

Теперь обновите репозиторий, установите пакеты kubeadm, используя команды ниже:
sudo apt update
sudo apt install -y kubeadm kubelet kubectl


Шаг 2 - Инициализация кластера Kubernetes

На этом этапе мы инициализируем Kubernetes на узле «k8s-master»

На этом этапе запускайте все команды только на сервере «k8s-master»

Инициализируйте кластер Kubernetes, используя команду kubeadm ниже:
sudo kubeadm init --pod-network-cidr=10.244.10.0/16 --apiserver-advertise-address=192.168.0.128 --kubernetes-version "1.11.0"

--apiserver-advertise-address - определяет, на каком IP-адресе Kubernetes должен расшарить свой сервер API

--pod-network-cidr - диапазон IP-адресов для сети pod 'flannel' виртуальную сеть


Если вы хотите использовать другую сеть pod, такую как weave-net или calico, измените диапазон IP-адресов


Инициализируем кластер Kubernetes

Когда инициализация Kubernetes будет завершена, вы получите результат с выводом на экран

Скопируйте команду "kubeadm join ... ... ..." в ваш текстовый редактор
Команда будет использоваться для регистрации новых рабочих узлов в кластере kubernetes

Теперь, чтобы использовать Kubernetes, нам нужно выполнить несколько команд, как показано в результате:

Создайте новый каталог конфигурации '.kube'
Скопируйте файл конфигурации 'admin.conf' из каталога '/etc/kubernetes'

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


Затем разверните фланелевую сеть в кластере kubernetes с помощью команды kubectl:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Фланелевая сеть была развернута в кластере Kubernetes

Подождите минуту, а затем проверьте узел и модули kubernetes, используя команды ниже:
kubectl get nodes
kubectl get pods --all-namespaces


Получили:
"k8s-master", работающий как кластер "master" со статусом "ready"
Все модули "kube-system", необходимые для кластера, запущены и работают

Инициализация и настройка мастера кластера Kubernetes завершена


Шаг 3 - Добавление рабочих узлов в кластер Kubernetes

На этом шаге мы добавим двух узловых работников "worker01" и "worker02" в кластер Kubernetes


Подключитесь к серверу worker01, выполните kubeadm join, полученную при инициализации кластера:
kubeadm join 192.168.0.128:6443 --token daync8.5dcgj6c6xc7l8hay --discovery-token-ca-cert-hash sha256:65a3e69531d323c335613dea1e498656236bba22e6cf3d5c54b21d744ef97dcd


Подключитесь к серверу worker02, выполните kubeadm join, полученную из инициализации кластера:
kubeadm join 192.168.0.128:6443 --token daync8.5dcgj6c6xc7l8hay --discovery-token-ca-cert-hash sha256:65a3e69531d323c335613dea1e498656236bba22e6cf3d5c54b21d744ef97dcd


Подождите несколько минут и вернитесь к мастеру узла «k8s-master» и проверьте состояние узла.

kubectl get nodes

Вы увидите, что эти рабочие узлы 'worker01' и 'worker02' являются частью кластера Kubernetes.


Шаг 4 - Тестирование

На этом этапе мы развернем веб-сервер Nginx внутри кластера
Мы развернем веб-сервер Nginx с использованием шаблона YAML

Создайте новый каталог с именем 'nginx' и перейдите в этот каталог:
mkdir -p nginx/
cd nginx/


Теперь создайте YAML-файл Nginx Deployment 'nginx-deployment.yaml' с помощью редактора vi:
sudo vi nginx-deploymentment.yaml

Вставьте конфигурации ниже:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deploymentment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.0
        ports:
        - containerPort: 80


Сохранить и выйти

Замечания:
Мы создаем новый "Deployment" под названием "nginx-deploymentment"

Установите ярлык приложения как "nginx" с "3" репликами

"nginx-deploymentment" будет иметь контейнеры с именем "nginx" на основе образа докера "nginx: 1.14.0"
Будет предоставлять HTTP-порт по умолчанию 80

Теперь создайте развертывание, выполнив команду kubectl ниже:
kubectl create -f nginx-deploymentment.yaml


После создания нового nginx-deployment, проверьте список развертываний внутри кластера:
kubectl get deployments
kubectl describe deployment nginx-deploymentment

Теперь проверьте Kubernetes Pods, и вы увидите модуль 'nginx-deployment-xxx', проверьте детали модуля:
kubectl get pods
kubectl describe pods nginx-deploymentment-6cb5f7bf4f-t5xfh

Вы получите модули nginx для развертывания с 3 репликами на рабочих узлах


Далее нам нужно создать новый сервис для нашего 'nginx-deploymentment'

Создайте новый файл YAML с именем 'nginx-service.yaml':
vi nginx-service.yaml


Вставьте конфигурацию ниже:
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
  labels:
    run: nginx-service
spec:
  type: NodePort
  ports:
  - port: 80
    protocol: TCP
  selector:
    app: nginx


Сохранить и выйти


Замечания:
Мы создаем новый сервис kubernetes с именем 'nginx-service'

Тип службы - 'NodePort' с портом по умолчанию TargetPort HTTP 80

Служба принадлежит приложению с именем 'nginx' на основе нашего развертывания 'nginx-deployment'

Создайте сервис kubernetes, используя команду kubectl ниже:
kubectl create -f nginx-service.yaml


Теперь проверьте все доступные сервисы в кластере

Вы получите 'nginx-service' в списке, затем проверьте детали сервиса:
kubectl get service
kubectl describe service nginx-service


Вы увидите, что NodePort 'nginx-service' работает на порту '32649'

Проверьте, используя команду curl для всех рабочих узлов

На worker01:
curl worker01:32649

На worker02:
curl worker02:32649


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

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект